blob: 92033d83a8c97b90f72370e4ed2c42c8e8ae02b9 [file] [log] [blame]
//
// 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 BackupServiceIface interface {
AddBackupRepository(p *AddBackupRepositoryParams) (*AddBackupRepositoryResponse, error)
NewAddBackupRepositoryParams(address string, name string, backupType string, zoneid string) *AddBackupRepositoryParams
CreateBackup(p *CreateBackupParams) (*CreateBackupResponse, error)
NewCreateBackupParams(virtualmachineid string) *CreateBackupParams
CreateBackupSchedule(p *CreateBackupScheduleParams) (*CreateBackupScheduleResponse, error)
NewCreateBackupScheduleParams(intervaltype string, schedule string, timezone string, virtualmachineid string) *CreateBackupScheduleParams
CreateVMFromBackup(p *CreateVMFromBackupParams) (*CreateVMFromBackupResponse, error)
NewCreateVMFromBackupParams(backupid string, zoneid string) *CreateVMFromBackupParams
DeleteBackup(p *DeleteBackupParams) (*DeleteBackupResponse, error)
NewDeleteBackupParams(id string) *DeleteBackupParams
DeleteBackupOffering(p *DeleteBackupOfferingParams) (*DeleteBackupOfferingResponse, error)
NewDeleteBackupOfferingParams(id string) *DeleteBackupOfferingParams
DeleteBackupRepository(p *DeleteBackupRepositoryParams) (*DeleteBackupRepositoryResponse, error)
NewDeleteBackupRepositoryParams(id string) *DeleteBackupRepositoryParams
DeleteBackupSchedule(p *DeleteBackupScheduleParams) (*DeleteBackupScheduleResponse, error)
NewDeleteBackupScheduleParams() *DeleteBackupScheduleParams
ImportBackupOffering(p *ImportBackupOfferingParams) (*ImportBackupOfferingResponse, error)
NewImportBackupOfferingParams(allowuserdrivenbackups bool, description string, externalid string, name string, zoneid string) *ImportBackupOfferingParams
ListBackupOfferings(p *ListBackupOfferingsParams) (*ListBackupOfferingsResponse, error)
NewListBackupOfferingsParams() *ListBackupOfferingsParams
GetBackupOfferingID(keyword string, opts ...OptionFunc) (string, int, error)
GetBackupOfferingByName(name string, opts ...OptionFunc) (*BackupOffering, int, error)
GetBackupOfferingByID(id string, opts ...OptionFunc) (*BackupOffering, int, error)
ListBackupProviderOfferings(p *ListBackupProviderOfferingsParams) (*ListBackupProviderOfferingsResponse, error)
NewListBackupProviderOfferingsParams(zoneid string) *ListBackupProviderOfferingsParams
GetBackupProviderOfferingID(keyword string, zoneid string, opts ...OptionFunc) (string, int, error)
ListBackupProviders(p *ListBackupProvidersParams) (*ListBackupProvidersResponse, error)
NewListBackupProvidersParams() *ListBackupProvidersParams
ListBackupRepositories(p *ListBackupRepositoriesParams) (*ListBackupRepositoriesResponse, error)
NewListBackupRepositoriesParams() *ListBackupRepositoriesParams
GetBackupRepositoryID(name string, opts ...OptionFunc) (string, int, error)
GetBackupRepositoryByName(name string, opts ...OptionFunc) (*BackupRepository, int, error)
GetBackupRepositoryByID(id string, opts ...OptionFunc) (*BackupRepository, int, error)
ListBackupSchedule(p *ListBackupScheduleParams) (*ListBackupScheduleResponse, error)
NewListBackupScheduleParams() *ListBackupScheduleParams
GetBackupScheduleByID(id string, opts ...OptionFunc) (*BackupSchedule, int, error)
ListBackups(p *ListBackupsParams) (*ListBackupsResponse, error)
NewListBackupsParams() *ListBackupsParams
GetBackupID(name string, opts ...OptionFunc) (string, int, error)
GetBackupByName(name string, opts ...OptionFunc) (*Backup, int, error)
GetBackupByID(id string, opts ...OptionFunc) (*Backup, int, error)
RestoreBackup(p *RestoreBackupParams) (*RestoreBackupResponse, error)
NewRestoreBackupParams(id string) *RestoreBackupParams
UpdateBackupRepository(p *UpdateBackupRepositoryParams) (*UpdateBackupRepositoryResponse, error)
NewUpdateBackupRepositoryParams(id string) *UpdateBackupRepositoryParams
UpdateBackupOffering(p *UpdateBackupOfferingParams) (*UpdateBackupOfferingResponse, error)
NewUpdateBackupOfferingParams(id string) *UpdateBackupOfferingParams
UpdateBackupSchedule(p *UpdateBackupScheduleParams) (*UpdateBackupScheduleResponse, error)
NewUpdateBackupScheduleParams(intervaltype string, schedule string, timezone string, virtualmachineid string) *UpdateBackupScheduleParams
}
type AddBackupRepositoryParams struct {
p map[string]interface{}
}
func (p *AddBackupRepositoryParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["address"]; found {
u.Set("address", v.(string))
}
if v, found := p.p["capacitybytes"]; found {
vv := strconv.FormatInt(v.(int64), 10)
u.Set("capacitybytes", vv)
}
if v, found := p.p["crosszoneinstancecreation"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("crosszoneinstancecreation", vv)
}
if v, found := p.p["mountopts"]; found {
u.Set("mountopts", v.(string))
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["provider"]; found {
u.Set("provider", v.(string))
}
if v, found := p.p["type"]; found {
u.Set("type", v.(string))
}
if v, found := p.p["zoneid"]; found {
u.Set("zoneid", v.(string))
}
return u
}
func (p *AddBackupRepositoryParams) SetAddress(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["address"] = v
}
func (p *AddBackupRepositoryParams) ResetAddress() {
if p.p != nil && p.p["address"] != nil {
delete(p.p, "address")
}
}
func (p *AddBackupRepositoryParams) GetAddress() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["address"].(string)
return value, ok
}
func (p *AddBackupRepositoryParams) SetCapacitybytes(v int64) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["capacitybytes"] = v
}
func (p *AddBackupRepositoryParams) ResetCapacitybytes() {
if p.p != nil && p.p["capacitybytes"] != nil {
delete(p.p, "capacitybytes")
}
}
func (p *AddBackupRepositoryParams) GetCapacitybytes() (int64, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["capacitybytes"].(int64)
return value, ok
}
func (p *AddBackupRepositoryParams) SetCrosszoneinstancecreation(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["crosszoneinstancecreation"] = v
}
func (p *AddBackupRepositoryParams) ResetCrosszoneinstancecreation() {
if p.p != nil && p.p["crosszoneinstancecreation"] != nil {
delete(p.p, "crosszoneinstancecreation")
}
}
func (p *AddBackupRepositoryParams) GetCrosszoneinstancecreation() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["crosszoneinstancecreation"].(bool)
return value, ok
}
func (p *AddBackupRepositoryParams) SetMountopts(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["mountopts"] = v
}
func (p *AddBackupRepositoryParams) ResetMountopts() {
if p.p != nil && p.p["mountopts"] != nil {
delete(p.p, "mountopts")
}
}
func (p *AddBackupRepositoryParams) GetMountopts() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["mountopts"].(string)
return value, ok
}
func (p *AddBackupRepositoryParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *AddBackupRepositoryParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *AddBackupRepositoryParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *AddBackupRepositoryParams) SetProvider(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["provider"] = v
}
func (p *AddBackupRepositoryParams) ResetProvider() {
if p.p != nil && p.p["provider"] != nil {
delete(p.p, "provider")
}
}
func (p *AddBackupRepositoryParams) GetProvider() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["provider"].(string)
return value, ok
}
func (p *AddBackupRepositoryParams) SetType(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["type"] = v
}
func (p *AddBackupRepositoryParams) ResetType() {
if p.p != nil && p.p["type"] != nil {
delete(p.p, "type")
}
}
func (p *AddBackupRepositoryParams) GetType() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["type"].(string)
return value, ok
}
func (p *AddBackupRepositoryParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *AddBackupRepositoryParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *AddBackupRepositoryParams) 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 AddBackupRepositoryParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewAddBackupRepositoryParams(address string, name string, backupType string, zoneid string) *AddBackupRepositoryParams {
p := &AddBackupRepositoryParams{}
p.p = make(map[string]interface{})
p.p["address"] = address
p.p["name"] = name
p.p["type"] = backupType
p.p["zoneid"] = zoneid
return p
}
// Adds a backup repository to store NAS backups
func (s *BackupService) AddBackupRepository(p *AddBackupRepositoryParams) (*AddBackupRepositoryResponse, error) {
resp, err := s.cs.newPostRequest("addBackupRepository", p.toURLValues())
if err != nil {
return nil, err
}
var r AddBackupRepositoryResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type AddBackupRepositoryResponse struct {
Address string `json:"address"`
Capacitybytes int64 `json:"capacitybytes"`
Created string `json:"created"`
Crosszoneinstancecreation bool `json:"crosszoneinstancecreation"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Provider string `json:"provider"`
Type string `json:"type"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type CreateBackupParams struct {
p map[string]interface{}
}
func (p *CreateBackupParams) 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))
}
if v, found := p.p["quiescevm"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("quiescevm", vv)
}
if v, found := p.p["virtualmachineid"]; found {
u.Set("virtualmachineid", v.(string))
}
return u
}
func (p *CreateBackupParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *CreateBackupParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *CreateBackupParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *CreateBackupParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *CreateBackupParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *CreateBackupParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *CreateBackupParams) SetQuiescevm(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["quiescevm"] = v
}
func (p *CreateBackupParams) ResetQuiescevm() {
if p.p != nil && p.p["quiescevm"] != nil {
delete(p.p, "quiescevm")
}
}
func (p *CreateBackupParams) GetQuiescevm() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["quiescevm"].(bool)
return value, ok
}
func (p *CreateBackupParams) SetVirtualmachineid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineid"] = v
}
func (p *CreateBackupParams) ResetVirtualmachineid() {
if p.p != nil && p.p["virtualmachineid"] != nil {
delete(p.p, "virtualmachineid")
}
}
func (p *CreateBackupParams) GetVirtualmachineid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineid"].(string)
return value, ok
}
// You should always use this function to get a new CreateBackupParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewCreateBackupParams(virtualmachineid string) *CreateBackupParams {
p := &CreateBackupParams{}
p.p = make(map[string]interface{})
p.p["virtualmachineid"] = virtualmachineid
return p
}
// Create VM backup
func (s *BackupService) CreateBackup(p *CreateBackupParams) (*CreateBackupResponse, error) {
resp, err := s.cs.newPostRequest("createBackup", p.toURLValues())
if err != nil {
return nil, err
}
var r CreateBackupResponse
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 CreateBackupResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type CreateBackupScheduleParams struct {
p map[string]interface{}
}
func (p *CreateBackupScheduleParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["intervaltype"]; found {
u.Set("intervaltype", v.(string))
}
if v, found := p.p["maxbackups"]; found {
vv := strconv.Itoa(v.(int))
u.Set("maxbackups", vv)
}
if v, found := p.p["quiescevm"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("quiescevm", vv)
}
if v, found := p.p["schedule"]; found {
u.Set("schedule", v.(string))
}
if v, found := p.p["timezone"]; found {
u.Set("timezone", v.(string))
}
if v, found := p.p["virtualmachineid"]; found {
u.Set("virtualmachineid", v.(string))
}
return u
}
func (p *CreateBackupScheduleParams) SetIntervaltype(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["intervaltype"] = v
}
func (p *CreateBackupScheduleParams) ResetIntervaltype() {
if p.p != nil && p.p["intervaltype"] != nil {
delete(p.p, "intervaltype")
}
}
func (p *CreateBackupScheduleParams) GetIntervaltype() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["intervaltype"].(string)
return value, ok
}
func (p *CreateBackupScheduleParams) SetMaxbackups(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["maxbackups"] = v
}
func (p *CreateBackupScheduleParams) ResetMaxbackups() {
if p.p != nil && p.p["maxbackups"] != nil {
delete(p.p, "maxbackups")
}
}
func (p *CreateBackupScheduleParams) GetMaxbackups() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["maxbackups"].(int)
return value, ok
}
func (p *CreateBackupScheduleParams) SetQuiescevm(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["quiescevm"] = v
}
func (p *CreateBackupScheduleParams) ResetQuiescevm() {
if p.p != nil && p.p["quiescevm"] != nil {
delete(p.p, "quiescevm")
}
}
func (p *CreateBackupScheduleParams) GetQuiescevm() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["quiescevm"].(bool)
return value, ok
}
func (p *CreateBackupScheduleParams) SetSchedule(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["schedule"] = v
}
func (p *CreateBackupScheduleParams) ResetSchedule() {
if p.p != nil && p.p["schedule"] != nil {
delete(p.p, "schedule")
}
}
func (p *CreateBackupScheduleParams) GetSchedule() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["schedule"].(string)
return value, ok
}
func (p *CreateBackupScheduleParams) SetTimezone(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["timezone"] = v
}
func (p *CreateBackupScheduleParams) ResetTimezone() {
if p.p != nil && p.p["timezone"] != nil {
delete(p.p, "timezone")
}
}
func (p *CreateBackupScheduleParams) GetTimezone() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["timezone"].(string)
return value, ok
}
func (p *CreateBackupScheduleParams) SetVirtualmachineid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineid"] = v
}
func (p *CreateBackupScheduleParams) ResetVirtualmachineid() {
if p.p != nil && p.p["virtualmachineid"] != nil {
delete(p.p, "virtualmachineid")
}
}
func (p *CreateBackupScheduleParams) GetVirtualmachineid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineid"].(string)
return value, ok
}
// You should always use this function to get a new CreateBackupScheduleParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewCreateBackupScheduleParams(intervaltype string, schedule string, timezone string, virtualmachineid string) *CreateBackupScheduleParams {
p := &CreateBackupScheduleParams{}
p.p = make(map[string]interface{})
p.p["intervaltype"] = intervaltype
p.p["schedule"] = schedule
p.p["timezone"] = timezone
p.p["virtualmachineid"] = virtualmachineid
return p
}
// Creates a user-defined VM backup schedule
func (s *BackupService) CreateBackupSchedule(p *CreateBackupScheduleParams) (*CreateBackupScheduleResponse, error) {
resp, err := s.cs.newPostRequest("createBackupSchedule", p.toURLValues())
if err != nil {
return nil, err
}
var r CreateBackupScheduleResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type CreateBackupScheduleResponse struct {
Account string `json:"account"`
Accountid string `json:"accountid"`
Backupofferingid string `json:"backupofferingid"`
Backupofferingname string `json:"backupofferingname"`
Created string `json:"created"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Id string `json:"id"`
Intervaltype string `json:"intervaltype"`
Isbackupvmexpunged bool `json:"isbackupvmexpunged"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Size int64 `json:"size"`
Status string `json:"status"`
Type string `json:"type"`
Virtualmachineid string `json:"virtualmachineid"`
Virtualmachinename string `json:"virtualmachinename"`
Virtualsize int64 `json:"virtualsize"`
Vmbackupofferingremoved bool `json:"vmbackupofferingremoved"`
Vmdetails map[string]string `json:"vmdetails"`
Volumes string `json:"volumes"`
Zone string `json:"zone"`
Zoneid string `json:"zoneid"`
}
type CreateVMFromBackupParams struct {
p map[string]interface{}
}
func (p *CreateVMFromBackupParams) 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["backupid"]; found {
u.Set("backupid", v.(string))
}
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["clusterid"]; found {
u.Set("clusterid", 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["datadisksdetails"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("datadisksdetails[%d].key", i), k)
u.Set(fmt.Sprintf("datadisksdetails[%d].value", 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["externaldetails"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("externaldetails[%d].key", i), k)
u.Set(fmt.Sprintf("externaldetails[%d].value", i), m[k])
}
}
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["leaseduration"]; found {
vv := strconv.Itoa(v.(int))
u.Set("leaseduration", vv)
}
if v, found := p.p["leaseexpiryaction"]; found {
u.Set("leaseexpiryaction", v.(string))
}
if v, found := p.p["macaddress"]; found {
u.Set("macaddress", v.(string))
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
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["podid"]; found {
u.Set("podid", v.(string))
}
if v, found := p.p["preserveip"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("preserveip", vv)
}
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].%s", i, k), m[k])
}
}
if v, found := p.p["userdataid"]; found {
u.Set("userdataid", v.(string))
}
if v, found := p.p["zoneid"]; found {
u.Set("zoneid", v.(string))
}
return u
}
func (p *CreateVMFromBackupParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *CreateVMFromBackupParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *CreateVMFromBackupParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetAffinitygroupids(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["affinitygroupids"] = v
}
func (p *CreateVMFromBackupParams) ResetAffinitygroupids() {
if p.p != nil && p.p["affinitygroupids"] != nil {
delete(p.p, "affinitygroupids")
}
}
func (p *CreateVMFromBackupParams) GetAffinitygroupids() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["affinitygroupids"].([]string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetAffinitygroupnames(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["affinitygroupnames"] = v
}
func (p *CreateVMFromBackupParams) ResetAffinitygroupnames() {
if p.p != nil && p.p["affinitygroupnames"] != nil {
delete(p.p, "affinitygroupnames")
}
}
func (p *CreateVMFromBackupParams) GetAffinitygroupnames() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["affinitygroupnames"].([]string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetBackupid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["backupid"] = v
}
func (p *CreateVMFromBackupParams) ResetBackupid() {
if p.p != nil && p.p["backupid"] != nil {
delete(p.p, "backupid")
}
}
func (p *CreateVMFromBackupParams) GetBackupid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["backupid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetBootintosetup(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["bootintosetup"] = v
}
func (p *CreateVMFromBackupParams) ResetBootintosetup() {
if p.p != nil && p.p["bootintosetup"] != nil {
delete(p.p, "bootintosetup")
}
}
func (p *CreateVMFromBackupParams) GetBootintosetup() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["bootintosetup"].(bool)
return value, ok
}
func (p *CreateVMFromBackupParams) SetBootmode(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["bootmode"] = v
}
func (p *CreateVMFromBackupParams) ResetBootmode() {
if p.p != nil && p.p["bootmode"] != nil {
delete(p.p, "bootmode")
}
}
func (p *CreateVMFromBackupParams) GetBootmode() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["bootmode"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetBoottype(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["boottype"] = v
}
func (p *CreateVMFromBackupParams) ResetBoottype() {
if p.p != nil && p.p["boottype"] != nil {
delete(p.p, "boottype")
}
}
func (p *CreateVMFromBackupParams) GetBoottype() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["boottype"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetClusterid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["clusterid"] = v
}
func (p *CreateVMFromBackupParams) ResetClusterid() {
if p.p != nil && p.p["clusterid"] != nil {
delete(p.p, "clusterid")
}
}
func (p *CreateVMFromBackupParams) GetClusterid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["clusterid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetCopyimagetags(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["copyimagetags"] = v
}
func (p *CreateVMFromBackupParams) ResetCopyimagetags() {
if p.p != nil && p.p["copyimagetags"] != nil {
delete(p.p, "copyimagetags")
}
}
func (p *CreateVMFromBackupParams) GetCopyimagetags() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["copyimagetags"].(bool)
return value, ok
}
func (p *CreateVMFromBackupParams) SetCustomid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["customid"] = v
}
func (p *CreateVMFromBackupParams) ResetCustomid() {
if p.p != nil && p.p["customid"] != nil {
delete(p.p, "customid")
}
}
func (p *CreateVMFromBackupParams) GetCustomid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["customid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetDatadiskofferinglist(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["datadiskofferinglist"] = v
}
func (p *CreateVMFromBackupParams) ResetDatadiskofferinglist() {
if p.p != nil && p.p["datadiskofferinglist"] != nil {
delete(p.p, "datadiskofferinglist")
}
}
func (p *CreateVMFromBackupParams) 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 *CreateVMFromBackupParams) SetDatadisksdetails(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["datadisksdetails"] = v
}
func (p *CreateVMFromBackupParams) ResetDatadisksdetails() {
if p.p != nil && p.p["datadisksdetails"] != nil {
delete(p.p, "datadisksdetails")
}
}
func (p *CreateVMFromBackupParams) GetDatadisksdetails() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["datadisksdetails"].(map[string]string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetDeploymentplanner(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["deploymentplanner"] = v
}
func (p *CreateVMFromBackupParams) ResetDeploymentplanner() {
if p.p != nil && p.p["deploymentplanner"] != nil {
delete(p.p, "deploymentplanner")
}
}
func (p *CreateVMFromBackupParams) GetDeploymentplanner() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["deploymentplanner"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetDetails(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["details"] = v
}
func (p *CreateVMFromBackupParams) ResetDetails() {
if p.p != nil && p.p["details"] != nil {
delete(p.p, "details")
}
}
func (p *CreateVMFromBackupParams) 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 *CreateVMFromBackupParams) SetDhcpoptionsnetworklist(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["dhcpoptionsnetworklist"] = v
}
func (p *CreateVMFromBackupParams) ResetDhcpoptionsnetworklist() {
if p.p != nil && p.p["dhcpoptionsnetworklist"] != nil {
delete(p.p, "dhcpoptionsnetworklist")
}
}
func (p *CreateVMFromBackupParams) 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 *CreateVMFromBackupParams) SetDiskofferingid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["diskofferingid"] = v
}
func (p *CreateVMFromBackupParams) ResetDiskofferingid() {
if p.p != nil && p.p["diskofferingid"] != nil {
delete(p.p, "diskofferingid")
}
}
func (p *CreateVMFromBackupParams) GetDiskofferingid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["diskofferingid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetDisplayname(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["displayname"] = v
}
func (p *CreateVMFromBackupParams) ResetDisplayname() {
if p.p != nil && p.p["displayname"] != nil {
delete(p.p, "displayname")
}
}
func (p *CreateVMFromBackupParams) GetDisplayname() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["displayname"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetDisplayvm(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["displayvm"] = v
}
func (p *CreateVMFromBackupParams) ResetDisplayvm() {
if p.p != nil && p.p["displayvm"] != nil {
delete(p.p, "displayvm")
}
}
func (p *CreateVMFromBackupParams) GetDisplayvm() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["displayvm"].(bool)
return value, ok
}
func (p *CreateVMFromBackupParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *CreateVMFromBackupParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *CreateVMFromBackupParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetDynamicscalingenabled(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["dynamicscalingenabled"] = v
}
func (p *CreateVMFromBackupParams) ResetDynamicscalingenabled() {
if p.p != nil && p.p["dynamicscalingenabled"] != nil {
delete(p.p, "dynamicscalingenabled")
}
}
func (p *CreateVMFromBackupParams) GetDynamicscalingenabled() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["dynamicscalingenabled"].(bool)
return value, ok
}
func (p *CreateVMFromBackupParams) SetExternaldetails(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["externaldetails"] = v
}
func (p *CreateVMFromBackupParams) ResetExternaldetails() {
if p.p != nil && p.p["externaldetails"] != nil {
delete(p.p, "externaldetails")
}
}
func (p *CreateVMFromBackupParams) GetExternaldetails() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["externaldetails"].(map[string]string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetExtraconfig(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["extraconfig"] = v
}
func (p *CreateVMFromBackupParams) ResetExtraconfig() {
if p.p != nil && p.p["extraconfig"] != nil {
delete(p.p, "extraconfig")
}
}
func (p *CreateVMFromBackupParams) GetExtraconfig() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["extraconfig"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetGroup(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["group"] = v
}
func (p *CreateVMFromBackupParams) ResetGroup() {
if p.p != nil && p.p["group"] != nil {
delete(p.p, "group")
}
}
func (p *CreateVMFromBackupParams) GetGroup() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["group"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetHostid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["hostid"] = v
}
func (p *CreateVMFromBackupParams) ResetHostid() {
if p.p != nil && p.p["hostid"] != nil {
delete(p.p, "hostid")
}
}
func (p *CreateVMFromBackupParams) GetHostid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["hostid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetHypervisor(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["hypervisor"] = v
}
func (p *CreateVMFromBackupParams) ResetHypervisor() {
if p.p != nil && p.p["hypervisor"] != nil {
delete(p.p, "hypervisor")
}
}
func (p *CreateVMFromBackupParams) GetHypervisor() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["hypervisor"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetIodriverpolicy(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["iodriverpolicy"] = v
}
func (p *CreateVMFromBackupParams) ResetIodriverpolicy() {
if p.p != nil && p.p["iodriverpolicy"] != nil {
delete(p.p, "iodriverpolicy")
}
}
func (p *CreateVMFromBackupParams) GetIodriverpolicy() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["iodriverpolicy"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetIothreadsenabled(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["iothreadsenabled"] = v
}
func (p *CreateVMFromBackupParams) ResetIothreadsenabled() {
if p.p != nil && p.p["iothreadsenabled"] != nil {
delete(p.p, "iothreadsenabled")
}
}
func (p *CreateVMFromBackupParams) GetIothreadsenabled() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["iothreadsenabled"].(bool)
return value, ok
}
func (p *CreateVMFromBackupParams) SetIp6address(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["ip6address"] = v
}
func (p *CreateVMFromBackupParams) ResetIp6address() {
if p.p != nil && p.p["ip6address"] != nil {
delete(p.p, "ip6address")
}
}
func (p *CreateVMFromBackupParams) GetIp6address() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["ip6address"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetIpaddress(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["ipaddress"] = v
}
func (p *CreateVMFromBackupParams) ResetIpaddress() {
if p.p != nil && p.p["ipaddress"] != nil {
delete(p.p, "ipaddress")
}
}
func (p *CreateVMFromBackupParams) GetIpaddress() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["ipaddress"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetIptonetworklist(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["iptonetworklist"] = v
}
func (p *CreateVMFromBackupParams) ResetIptonetworklist() {
if p.p != nil && p.p["iptonetworklist"] != nil {
delete(p.p, "iptonetworklist")
}
}
func (p *CreateVMFromBackupParams) 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 *CreateVMFromBackupParams) SetKeyboard(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyboard"] = v
}
func (p *CreateVMFromBackupParams) ResetKeyboard() {
if p.p != nil && p.p["keyboard"] != nil {
delete(p.p, "keyboard")
}
}
func (p *CreateVMFromBackupParams) GetKeyboard() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyboard"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetKeypair(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keypair"] = v
}
func (p *CreateVMFromBackupParams) ResetKeypair() {
if p.p != nil && p.p["keypair"] != nil {
delete(p.p, "keypair")
}
}
func (p *CreateVMFromBackupParams) GetKeypair() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keypair"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetKeypairs(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keypairs"] = v
}
func (p *CreateVMFromBackupParams) ResetKeypairs() {
if p.p != nil && p.p["keypairs"] != nil {
delete(p.p, "keypairs")
}
}
func (p *CreateVMFromBackupParams) GetKeypairs() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keypairs"].([]string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetLeaseduration(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["leaseduration"] = v
}
func (p *CreateVMFromBackupParams) ResetLeaseduration() {
if p.p != nil && p.p["leaseduration"] != nil {
delete(p.p, "leaseduration")
}
}
func (p *CreateVMFromBackupParams) GetLeaseduration() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["leaseduration"].(int)
return value, ok
}
func (p *CreateVMFromBackupParams) SetLeaseexpiryaction(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["leaseexpiryaction"] = v
}
func (p *CreateVMFromBackupParams) ResetLeaseexpiryaction() {
if p.p != nil && p.p["leaseexpiryaction"] != nil {
delete(p.p, "leaseexpiryaction")
}
}
func (p *CreateVMFromBackupParams) GetLeaseexpiryaction() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["leaseexpiryaction"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetMacaddress(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["macaddress"] = v
}
func (p *CreateVMFromBackupParams) ResetMacaddress() {
if p.p != nil && p.p["macaddress"] != nil {
delete(p.p, "macaddress")
}
}
func (p *CreateVMFromBackupParams) GetMacaddress() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["macaddress"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *CreateVMFromBackupParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *CreateVMFromBackupParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetNetworkids(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["networkids"] = v
}
func (p *CreateVMFromBackupParams) ResetNetworkids() {
if p.p != nil && p.p["networkids"] != nil {
delete(p.p, "networkids")
}
}
func (p *CreateVMFromBackupParams) GetNetworkids() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["networkids"].([]string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetNicmultiqueuenumber(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["nicmultiqueuenumber"] = v
}
func (p *CreateVMFromBackupParams) ResetNicmultiqueuenumber() {
if p.p != nil && p.p["nicmultiqueuenumber"] != nil {
delete(p.p, "nicmultiqueuenumber")
}
}
func (p *CreateVMFromBackupParams) GetNicmultiqueuenumber() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["nicmultiqueuenumber"].(int)
return value, ok
}
func (p *CreateVMFromBackupParams) SetNicnetworklist(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["nicnetworklist"] = v
}
func (p *CreateVMFromBackupParams) ResetNicnetworklist() {
if p.p != nil && p.p["nicnetworklist"] != nil {
delete(p.p, "nicnetworklist")
}
}
func (p *CreateVMFromBackupParams) 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 *CreateVMFromBackupParams) SetNicpackedvirtqueuesenabled(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["nicpackedvirtqueuesenabled"] = v
}
func (p *CreateVMFromBackupParams) ResetNicpackedvirtqueuesenabled() {
if p.p != nil && p.p["nicpackedvirtqueuesenabled"] != nil {
delete(p.p, "nicpackedvirtqueuesenabled")
}
}
func (p *CreateVMFromBackupParams) GetNicpackedvirtqueuesenabled() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["nicpackedvirtqueuesenabled"].(bool)
return value, ok
}
func (p *CreateVMFromBackupParams) SetOverridediskofferingid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["overridediskofferingid"] = v
}
func (p *CreateVMFromBackupParams) ResetOverridediskofferingid() {
if p.p != nil && p.p["overridediskofferingid"] != nil {
delete(p.p, "overridediskofferingid")
}
}
func (p *CreateVMFromBackupParams) GetOverridediskofferingid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["overridediskofferingid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetPassword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["password"] = v
}
func (p *CreateVMFromBackupParams) ResetPassword() {
if p.p != nil && p.p["password"] != nil {
delete(p.p, "password")
}
}
func (p *CreateVMFromBackupParams) GetPassword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["password"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetPodid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["podid"] = v
}
func (p *CreateVMFromBackupParams) ResetPodid() {
if p.p != nil && p.p["podid"] != nil {
delete(p.p, "podid")
}
}
func (p *CreateVMFromBackupParams) GetPodid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["podid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetPreserveip(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["preserveip"] = v
}
func (p *CreateVMFromBackupParams) ResetPreserveip() {
if p.p != nil && p.p["preserveip"] != nil {
delete(p.p, "preserveip")
}
}
func (p *CreateVMFromBackupParams) GetPreserveip() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["preserveip"].(bool)
return value, ok
}
func (p *CreateVMFromBackupParams) SetProjectid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["projectid"] = v
}
func (p *CreateVMFromBackupParams) ResetProjectid() {
if p.p != nil && p.p["projectid"] != nil {
delete(p.p, "projectid")
}
}
func (p *CreateVMFromBackupParams) GetProjectid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["projectid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetProperties(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["properties"] = v
}
func (p *CreateVMFromBackupParams) ResetProperties() {
if p.p != nil && p.p["properties"] != nil {
delete(p.p, "properties")
}
}
func (p *CreateVMFromBackupParams) 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 *CreateVMFromBackupParams) SetRootdisksize(v int64) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["rootdisksize"] = v
}
func (p *CreateVMFromBackupParams) ResetRootdisksize() {
if p.p != nil && p.p["rootdisksize"] != nil {
delete(p.p, "rootdisksize")
}
}
func (p *CreateVMFromBackupParams) GetRootdisksize() (int64, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["rootdisksize"].(int64)
return value, ok
}
func (p *CreateVMFromBackupParams) SetSecuritygroupids(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["securitygroupids"] = v
}
func (p *CreateVMFromBackupParams) ResetSecuritygroupids() {
if p.p != nil && p.p["securitygroupids"] != nil {
delete(p.p, "securitygroupids")
}
}
func (p *CreateVMFromBackupParams) GetSecuritygroupids() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["securitygroupids"].([]string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetSecuritygroupnames(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["securitygroupnames"] = v
}
func (p *CreateVMFromBackupParams) ResetSecuritygroupnames() {
if p.p != nil && p.p["securitygroupnames"] != nil {
delete(p.p, "securitygroupnames")
}
}
func (p *CreateVMFromBackupParams) GetSecuritygroupnames() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["securitygroupnames"].([]string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetServiceofferingid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["serviceofferingid"] = v
}
func (p *CreateVMFromBackupParams) ResetServiceofferingid() {
if p.p != nil && p.p["serviceofferingid"] != nil {
delete(p.p, "serviceofferingid")
}
}
func (p *CreateVMFromBackupParams) GetServiceofferingid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["serviceofferingid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetSize(v int64) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["size"] = v
}
func (p *CreateVMFromBackupParams) ResetSize() {
if p.p != nil && p.p["size"] != nil {
delete(p.p, "size")
}
}
func (p *CreateVMFromBackupParams) GetSize() (int64, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["size"].(int64)
return value, ok
}
func (p *CreateVMFromBackupParams) SetStartvm(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["startvm"] = v
}
func (p *CreateVMFromBackupParams) ResetStartvm() {
if p.p != nil && p.p["startvm"] != nil {
delete(p.p, "startvm")
}
}
func (p *CreateVMFromBackupParams) GetStartvm() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["startvm"].(bool)
return value, ok
}
func (p *CreateVMFromBackupParams) SetTemplateid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["templateid"] = v
}
func (p *CreateVMFromBackupParams) ResetTemplateid() {
if p.p != nil && p.p["templateid"] != nil {
delete(p.p, "templateid")
}
}
func (p *CreateVMFromBackupParams) GetTemplateid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["templateid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetUserdata(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["userdata"] = v
}
func (p *CreateVMFromBackupParams) ResetUserdata() {
if p.p != nil && p.p["userdata"] != nil {
delete(p.p, "userdata")
}
}
func (p *CreateVMFromBackupParams) GetUserdata() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["userdata"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetUserdatadetails(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["userdatadetails"] = v
}
func (p *CreateVMFromBackupParams) ResetUserdatadetails() {
if p.p != nil && p.p["userdatadetails"] != nil {
delete(p.p, "userdatadetails")
}
}
func (p *CreateVMFromBackupParams) 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 *CreateVMFromBackupParams) SetUserdataid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["userdataid"] = v
}
func (p *CreateVMFromBackupParams) ResetUserdataid() {
if p.p != nil && p.p["userdataid"] != nil {
delete(p.p, "userdataid")
}
}
func (p *CreateVMFromBackupParams) GetUserdataid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["userdataid"].(string)
return value, ok
}
func (p *CreateVMFromBackupParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *CreateVMFromBackupParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *CreateVMFromBackupParams) 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 CreateVMFromBackupParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewCreateVMFromBackupParams(backupid string, zoneid string) *CreateVMFromBackupParams {
p := &CreateVMFromBackupParams{}
p.p = make(map[string]interface{})
p.p["backupid"] = backupid
p.p["zoneid"] = zoneid
return p
}
// Creates and automatically starts a VM from a backup.
func (s *BackupService) CreateVMFromBackup(p *CreateVMFromBackupParams) (*CreateVMFromBackupResponse, error) {
resp, err := s.cs.newPostRequest("createVMFromBackup", p.toURLValues())
if err != nil {
return nil, err
}
var r CreateVMFromBackupResponse
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 CreateVMFromBackupResponse struct {
Account string `json:"account"`
Affinitygroup []CreateVMFromBackupResponseAffinitygroup `json:"affinitygroup"`
Arch string `json:"arch"`
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"`
Gpucardid string `json:"gpucardid"`
Gpucardname string `json:"gpucardname"`
Gpucount int `json:"gpucount"`
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"`
Leaseduration int `json:"leaseduration"`
Leaseexpiryaction string `json:"leaseexpiryaction"`
Leaseexpirydate string `json:"leaseexpirydate"`
Maxheads int64 `json:"maxheads"`
Maxresolutionx int64 `json:"maxresolutionx"`
Maxresolutiony int64 `json:"maxresolutiony"`
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 []CreateVMFromBackupResponseSecuritygroup `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"`
Vgpuprofileid string `json:"vgpuprofileid"`
Vgpuprofilename string `json:"vgpuprofilename"`
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
Vnfnics []string `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type CreateVMFromBackupResponseSecuritygroup struct {
Account string `json:"account"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Egressrule []CreateVMFromBackupResponseSecuritygroupRule `json:"egressrule"`
Id string `json:"id"`
Ingressrule []CreateVMFromBackupResponseSecuritygroupRule `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 CreateVMFromBackupResponseSecuritygroupRule 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 CreateVMFromBackupResponseAffinitygroup 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 *CreateVMFromBackupResponse) 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 CreateVMFromBackupResponse
return json.Unmarshal(b, (*alias)(r))
}
type DeleteBackupParams struct {
p map[string]interface{}
}
func (p *DeleteBackupParams) 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 *DeleteBackupParams) SetForced(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["forced"] = v
}
func (p *DeleteBackupParams) ResetForced() {
if p.p != nil && p.p["forced"] != nil {
delete(p.p, "forced")
}
}
func (p *DeleteBackupParams) GetForced() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["forced"].(bool)
return value, ok
}
func (p *DeleteBackupParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteBackupParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteBackupParams) 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 DeleteBackupParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewDeleteBackupParams(id string) *DeleteBackupParams {
p := &DeleteBackupParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Delete VM backup
func (s *BackupService) DeleteBackup(p *DeleteBackupParams) (*DeleteBackupResponse, error) {
resp, err := s.cs.newPostRequest("deleteBackup", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteBackupResponse
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 DeleteBackupResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type DeleteBackupOfferingParams struct {
p map[string]interface{}
}
func (p *DeleteBackupOfferingParams) 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 *DeleteBackupOfferingParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteBackupOfferingParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteBackupOfferingParams) 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 DeleteBackupOfferingParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewDeleteBackupOfferingParams(id string) *DeleteBackupOfferingParams {
p := &DeleteBackupOfferingParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Deletes a backup offering
func (s *BackupService) DeleteBackupOffering(p *DeleteBackupOfferingParams) (*DeleteBackupOfferingResponse, error) {
resp, err := s.cs.newPostRequest("deleteBackupOffering", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteBackupOfferingResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type DeleteBackupOfferingResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
func (r *DeleteBackupOfferingResponse) 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 DeleteBackupOfferingResponse
return json.Unmarshal(b, (*alias)(r))
}
type DeleteBackupRepositoryParams struct {
p map[string]interface{}
}
func (p *DeleteBackupRepositoryParams) 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 *DeleteBackupRepositoryParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteBackupRepositoryParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteBackupRepositoryParams) 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 DeleteBackupRepositoryParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewDeleteBackupRepositoryParams(id string) *DeleteBackupRepositoryParams {
p := &DeleteBackupRepositoryParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// delete a backup repository
func (s *BackupService) DeleteBackupRepository(p *DeleteBackupRepositoryParams) (*DeleteBackupRepositoryResponse, error) {
resp, err := s.cs.newPostRequest("deleteBackupRepository", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteBackupRepositoryResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type DeleteBackupRepositoryResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
func (r *DeleteBackupRepositoryResponse) 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 DeleteBackupRepositoryResponse
return json.Unmarshal(b, (*alias)(r))
}
type DeleteBackupScheduleParams struct {
p map[string]interface{}
}
func (p *DeleteBackupScheduleParams) 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["virtualmachineid"]; found {
u.Set("virtualmachineid", v.(string))
}
return u
}
func (p *DeleteBackupScheduleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteBackupScheduleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteBackupScheduleParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *DeleteBackupScheduleParams) SetVirtualmachineid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineid"] = v
}
func (p *DeleteBackupScheduleParams) ResetVirtualmachineid() {
if p.p != nil && p.p["virtualmachineid"] != nil {
delete(p.p, "virtualmachineid")
}
}
func (p *DeleteBackupScheduleParams) GetVirtualmachineid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineid"].(string)
return value, ok
}
// You should always use this function to get a new DeleteBackupScheduleParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewDeleteBackupScheduleParams() *DeleteBackupScheduleParams {
p := &DeleteBackupScheduleParams{}
p.p = make(map[string]interface{})
return p
}
// Deletes the backup schedule of a VM
func (s *BackupService) DeleteBackupSchedule(p *DeleteBackupScheduleParams) (*DeleteBackupScheduleResponse, error) {
resp, err := s.cs.newPostRequest("deleteBackupSchedule", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteBackupScheduleResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type DeleteBackupScheduleResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
func (r *DeleteBackupScheduleResponse) 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 DeleteBackupScheduleResponse
return json.Unmarshal(b, (*alias)(r))
}
type ImportBackupOfferingParams struct {
p map[string]interface{}
}
func (p *ImportBackupOfferingParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["allowuserdrivenbackups"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("allowuserdrivenbackups", vv)
}
if v, found := p.p["description"]; found {
u.Set("description", v.(string))
}
if v, found := p.p["externalid"]; found {
u.Set("externalid", 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 *ImportBackupOfferingParams) SetAllowuserdrivenbackups(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["allowuserdrivenbackups"] = v
}
func (p *ImportBackupOfferingParams) ResetAllowuserdrivenbackups() {
if p.p != nil && p.p["allowuserdrivenbackups"] != nil {
delete(p.p, "allowuserdrivenbackups")
}
}
func (p *ImportBackupOfferingParams) GetAllowuserdrivenbackups() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["allowuserdrivenbackups"].(bool)
return value, ok
}
func (p *ImportBackupOfferingParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *ImportBackupOfferingParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *ImportBackupOfferingParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *ImportBackupOfferingParams) SetExternalid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["externalid"] = v
}
func (p *ImportBackupOfferingParams) ResetExternalid() {
if p.p != nil && p.p["externalid"] != nil {
delete(p.p, "externalid")
}
}
func (p *ImportBackupOfferingParams) GetExternalid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["externalid"].(string)
return value, ok
}
func (p *ImportBackupOfferingParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *ImportBackupOfferingParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *ImportBackupOfferingParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *ImportBackupOfferingParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *ImportBackupOfferingParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *ImportBackupOfferingParams) 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 ImportBackupOfferingParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewImportBackupOfferingParams(allowuserdrivenbackups bool, description string, externalid string, name string, zoneid string) *ImportBackupOfferingParams {
p := &ImportBackupOfferingParams{}
p.p = make(map[string]interface{})
p.p["allowuserdrivenbackups"] = allowuserdrivenbackups
p.p["description"] = description
p.p["externalid"] = externalid
p.p["name"] = name
p.p["zoneid"] = zoneid
return p
}
// Imports a backup offering using a backup provider
func (s *BackupService) ImportBackupOffering(p *ImportBackupOfferingParams) (*ImportBackupOfferingResponse, error) {
resp, err := s.cs.newPostRequest("importBackupOffering", p.toURLValues())
if err != nil {
return nil, err
}
var r ImportBackupOfferingResponse
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 ImportBackupOfferingResponse struct {
Allowuserdrivenbackups bool `json:"allowuserdrivenbackups"`
Created string `json:"created"`
Crosszoneinstancecreation bool `json:"crosszoneinstancecreation"`
Description string `json:"description"`
Externalid string `json:"externalid"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Provider string `json:"provider"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type ListBackupOfferingsParams struct {
p map[string]interface{}
}
func (p *ListBackupOfferingsParams) 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["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 *ListBackupOfferingsParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListBackupOfferingsParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListBackupOfferingsParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListBackupOfferingsParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListBackupOfferingsParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListBackupOfferingsParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListBackupOfferingsParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListBackupOfferingsParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListBackupOfferingsParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListBackupOfferingsParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListBackupOfferingsParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListBackupOfferingsParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *ListBackupOfferingsParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *ListBackupOfferingsParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *ListBackupOfferingsParams) 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 ListBackupOfferingsParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewListBackupOfferingsParams() *ListBackupOfferingsParams {
p := &ListBackupOfferingsParams{}
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 *BackupService) GetBackupOfferingID(keyword string, opts ...OptionFunc) (string, int, error) {
p := &ListBackupOfferingsParams{}
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.ListBackupOfferings(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.BackupOfferings[0].Id, l.Count, nil
}
if l.Count > 1 {
for _, v := range l.BackupOfferings {
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 *BackupService) GetBackupOfferingByName(name string, opts ...OptionFunc) (*BackupOffering, int, error) {
id, count, err := s.GetBackupOfferingID(name, opts...)
if err != nil {
return nil, count, err
}
r, count, err := s.GetBackupOfferingByID(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 *BackupService) GetBackupOfferingByID(id string, opts ...OptionFunc) (*BackupOffering, int, error) {
p := &ListBackupOfferingsParams{}
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.ListBackupOfferings(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.BackupOfferings[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for BackupOffering UUID: %s!", id)
}
// Lists backup offerings
func (s *BackupService) ListBackupOfferings(p *ListBackupOfferingsParams) (*ListBackupOfferingsResponse, error) {
resp, err := s.cs.newRequest("listBackupOfferings", p.toURLValues())
if err != nil {
return nil, err
}
var r ListBackupOfferingsResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListBackupOfferingsResponse struct {
Count int `json:"count"`
BackupOfferings []*BackupOffering `json:"backupoffering"`
}
type BackupOffering struct {
Allowuserdrivenbackups bool `json:"allowuserdrivenbackups"`
Created string `json:"created"`
Crosszoneinstancecreation bool `json:"crosszoneinstancecreation"`
Description string `json:"description"`
Externalid string `json:"externalid"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Provider string `json:"provider"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type ListBackupProviderOfferingsParams struct {
p map[string]interface{}
}
func (p *ListBackupProviderOfferingsParams) 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 *ListBackupProviderOfferingsParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListBackupProviderOfferingsParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListBackupProviderOfferingsParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListBackupProviderOfferingsParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListBackupProviderOfferingsParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListBackupProviderOfferingsParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListBackupProviderOfferingsParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListBackupProviderOfferingsParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListBackupProviderOfferingsParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *ListBackupProviderOfferingsParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *ListBackupProviderOfferingsParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *ListBackupProviderOfferingsParams) 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 ListBackupProviderOfferingsParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewListBackupProviderOfferingsParams(zoneid string) *ListBackupProviderOfferingsParams {
p := &ListBackupProviderOfferingsParams{}
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 *BackupService) GetBackupProviderOfferingID(keyword string, zoneid string, opts ...OptionFunc) (string, int, error) {
p := &ListBackupProviderOfferingsParams{}
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.ListBackupProviderOfferings(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.BackupProviderOfferings[0].Id, l.Count, nil
}
if l.Count > 1 {
for _, v := range l.BackupProviderOfferings {
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 external backup offerings of the provider
func (s *BackupService) ListBackupProviderOfferings(p *ListBackupProviderOfferingsParams) (*ListBackupProviderOfferingsResponse, error) {
resp, err := s.cs.newRequest("listBackupProviderOfferings", p.toURLValues())
if err != nil {
return nil, err
}
var r ListBackupProviderOfferingsResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListBackupProviderOfferingsResponse struct {
Count int `json:"count"`
BackupProviderOfferings []*BackupProviderOffering `json:"backupprovideroffering"`
}
type BackupProviderOffering struct {
Allowuserdrivenbackups bool `json:"allowuserdrivenbackups"`
Created string `json:"created"`
Crosszoneinstancecreation bool `json:"crosszoneinstancecreation"`
Description string `json:"description"`
Externalid string `json:"externalid"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Provider string `json:"provider"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type ListBackupProvidersParams struct {
p map[string]interface{}
}
func (p *ListBackupProvidersParams) 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 *ListBackupProvidersParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *ListBackupProvidersParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *ListBackupProvidersParams) 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 ListBackupProvidersParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewListBackupProvidersParams() *ListBackupProvidersParams {
p := &ListBackupProvidersParams{}
p.p = make(map[string]interface{})
return p
}
// Lists Backup and Recovery providers
func (s *BackupService) ListBackupProviders(p *ListBackupProvidersParams) (*ListBackupProvidersResponse, error) {
resp, err := s.cs.newRequest("listBackupProviders", p.toURLValues())
if err != nil {
return nil, err
}
var r ListBackupProvidersResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListBackupProvidersResponse struct {
Count int `json:"count"`
BackupProviders []*BackupProvider `json:"backupprovider"`
}
type BackupProvider struct {
Description string `json:"description"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
}
type ListBackupRepositoriesParams struct {
p map[string]interface{}
}
func (p *ListBackupRepositoriesParams) 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["provider"]; found {
u.Set("provider", v.(string))
}
if v, found := p.p["zoneid"]; found {
u.Set("zoneid", v.(string))
}
return u
}
func (p *ListBackupRepositoriesParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListBackupRepositoriesParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListBackupRepositoriesParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListBackupRepositoriesParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListBackupRepositoriesParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListBackupRepositoriesParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListBackupRepositoriesParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *ListBackupRepositoriesParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *ListBackupRepositoriesParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *ListBackupRepositoriesParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListBackupRepositoriesParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListBackupRepositoriesParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListBackupRepositoriesParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListBackupRepositoriesParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListBackupRepositoriesParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *ListBackupRepositoriesParams) SetProvider(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["provider"] = v
}
func (p *ListBackupRepositoriesParams) ResetProvider() {
if p.p != nil && p.p["provider"] != nil {
delete(p.p, "provider")
}
}
func (p *ListBackupRepositoriesParams) GetProvider() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["provider"].(string)
return value, ok
}
func (p *ListBackupRepositoriesParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *ListBackupRepositoriesParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *ListBackupRepositoriesParams) 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 ListBackupRepositoriesParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewListBackupRepositoriesParams() *ListBackupRepositoriesParams {
p := &ListBackupRepositoriesParams{}
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 *BackupService) GetBackupRepositoryID(name string, opts ...OptionFunc) (string, int, error) {
p := &ListBackupRepositoriesParams{}
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.ListBackupRepositories(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.BackupRepositories[0].Id, l.Count, nil
}
if l.Count > 1 {
for _, v := range l.BackupRepositories {
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 *BackupService) GetBackupRepositoryByName(name string, opts ...OptionFunc) (*BackupRepository, int, error) {
id, count, err := s.GetBackupRepositoryID(name, opts...)
if err != nil {
return nil, count, err
}
r, count, err := s.GetBackupRepositoryByID(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 *BackupService) GetBackupRepositoryByID(id string, opts ...OptionFunc) (*BackupRepository, int, error) {
p := &ListBackupRepositoriesParams{}
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.ListBackupRepositories(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.BackupRepositories[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for BackupRepository UUID: %s!", id)
}
// Lists all backup repositories
func (s *BackupService) ListBackupRepositories(p *ListBackupRepositoriesParams) (*ListBackupRepositoriesResponse, error) {
resp, err := s.cs.newRequest("listBackupRepositories", p.toURLValues())
if err != nil {
return nil, err
}
var r ListBackupRepositoriesResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListBackupRepositoriesResponse struct {
Count int `json:"count"`
BackupRepositories []*BackupRepository `json:"backuprepository"`
}
type BackupRepository struct {
Address string `json:"address"`
Capacitybytes int64 `json:"capacitybytes"`
Created string `json:"created"`
Crosszoneinstancecreation bool `json:"crosszoneinstancecreation"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Provider string `json:"provider"`
Type string `json:"type"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type ListBackupScheduleParams struct {
p map[string]interface{}
}
func (p *ListBackupScheduleParams) 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["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["virtualmachineid"]; found {
u.Set("virtualmachineid", v.(string))
}
return u
}
func (p *ListBackupScheduleParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *ListBackupScheduleParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *ListBackupScheduleParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *ListBackupScheduleParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *ListBackupScheduleParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *ListBackupScheduleParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *ListBackupScheduleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListBackupScheduleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListBackupScheduleParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListBackupScheduleParams) SetIsrecursive(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["isrecursive"] = v
}
func (p *ListBackupScheduleParams) ResetIsrecursive() {
if p.p != nil && p.p["isrecursive"] != nil {
delete(p.p, "isrecursive")
}
}
func (p *ListBackupScheduleParams) GetIsrecursive() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["isrecursive"].(bool)
return value, ok
}
func (p *ListBackupScheduleParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListBackupScheduleParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListBackupScheduleParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListBackupScheduleParams) SetListall(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listall"] = v
}
func (p *ListBackupScheduleParams) ResetListall() {
if p.p != nil && p.p["listall"] != nil {
delete(p.p, "listall")
}
}
func (p *ListBackupScheduleParams) GetListall() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listall"].(bool)
return value, ok
}
func (p *ListBackupScheduleParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListBackupScheduleParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListBackupScheduleParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListBackupScheduleParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListBackupScheduleParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListBackupScheduleParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *ListBackupScheduleParams) SetProjectid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["projectid"] = v
}
func (p *ListBackupScheduleParams) ResetProjectid() {
if p.p != nil && p.p["projectid"] != nil {
delete(p.p, "projectid")
}
}
func (p *ListBackupScheduleParams) GetProjectid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["projectid"].(string)
return value, ok
}
func (p *ListBackupScheduleParams) SetVirtualmachineid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineid"] = v
}
func (p *ListBackupScheduleParams) ResetVirtualmachineid() {
if p.p != nil && p.p["virtualmachineid"] != nil {
delete(p.p, "virtualmachineid")
}
}
func (p *ListBackupScheduleParams) GetVirtualmachineid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineid"].(string)
return value, ok
}
// You should always use this function to get a new ListBackupScheduleParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewListBackupScheduleParams() *ListBackupScheduleParams {
p := &ListBackupScheduleParams{}
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 *BackupService) GetBackupScheduleByID(id string, opts ...OptionFunc) (*BackupSchedule, int, error) {
p := &ListBackupScheduleParams{}
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.ListBackupSchedule(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.BackupSchedule[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for BackupSchedule UUID: %s!", id)
}
// List backup schedule of a VM
func (s *BackupService) ListBackupSchedule(p *ListBackupScheduleParams) (*ListBackupScheduleResponse, error) {
resp, err := s.cs.newRequest("listBackupSchedule", p.toURLValues())
if err != nil {
return nil, err
}
var r ListBackupScheduleResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListBackupScheduleResponse struct {
Count int `json:"count"`
BackupSchedule []*BackupSchedule `json:"backupschedule"`
}
type BackupSchedule struct {
Id string `json:"id"`
Intervaltype string `json:"intervaltype"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Maxbackups int `json:"maxbackups"`
Quiescevm bool `json:"quiescevm"`
Schedule string `json:"schedule"`
Timezone string `json:"timezone"`
Virtualmachineid string `json:"virtualmachineid"`
Virtualmachinename string `json:"virtualmachinename"`
}
type ListBackupsParams struct {
p map[string]interface{}
}
func (p *ListBackupsParams) 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["backupofferingid"]; found {
u.Set("backupofferingid", 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["listvmdetails"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("listvmdetails", 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["virtualmachineid"]; found {
u.Set("virtualmachineid", v.(string))
}
if v, found := p.p["zoneid"]; found {
u.Set("zoneid", v.(string))
}
return u
}
func (p *ListBackupsParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *ListBackupsParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *ListBackupsParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *ListBackupsParams) SetBackupofferingid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["backupofferingid"] = v
}
func (p *ListBackupsParams) ResetBackupofferingid() {
if p.p != nil && p.p["backupofferingid"] != nil {
delete(p.p, "backupofferingid")
}
}
func (p *ListBackupsParams) GetBackupofferingid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["backupofferingid"].(string)
return value, ok
}
func (p *ListBackupsParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *ListBackupsParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *ListBackupsParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *ListBackupsParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListBackupsParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListBackupsParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListBackupsParams) SetIsrecursive(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["isrecursive"] = v
}
func (p *ListBackupsParams) ResetIsrecursive() {
if p.p != nil && p.p["isrecursive"] != nil {
delete(p.p, "isrecursive")
}
}
func (p *ListBackupsParams) GetIsrecursive() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["isrecursive"].(bool)
return value, ok
}
func (p *ListBackupsParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListBackupsParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListBackupsParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListBackupsParams) SetListall(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listall"] = v
}
func (p *ListBackupsParams) ResetListall() {
if p.p != nil && p.p["listall"] != nil {
delete(p.p, "listall")
}
}
func (p *ListBackupsParams) GetListall() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listall"].(bool)
return value, ok
}
func (p *ListBackupsParams) SetListvmdetails(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listvmdetails"] = v
}
func (p *ListBackupsParams) ResetListvmdetails() {
if p.p != nil && p.p["listvmdetails"] != nil {
delete(p.p, "listvmdetails")
}
}
func (p *ListBackupsParams) GetListvmdetails() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listvmdetails"].(bool)
return value, ok
}
func (p *ListBackupsParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *ListBackupsParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *ListBackupsParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *ListBackupsParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListBackupsParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListBackupsParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListBackupsParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListBackupsParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListBackupsParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *ListBackupsParams) SetProjectid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["projectid"] = v
}
func (p *ListBackupsParams) ResetProjectid() {
if p.p != nil && p.p["projectid"] != nil {
delete(p.p, "projectid")
}
}
func (p *ListBackupsParams) GetProjectid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["projectid"].(string)
return value, ok
}
func (p *ListBackupsParams) SetVirtualmachineid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineid"] = v
}
func (p *ListBackupsParams) ResetVirtualmachineid() {
if p.p != nil && p.p["virtualmachineid"] != nil {
delete(p.p, "virtualmachineid")
}
}
func (p *ListBackupsParams) GetVirtualmachineid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineid"].(string)
return value, ok
}
func (p *ListBackupsParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *ListBackupsParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *ListBackupsParams) 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 ListBackupsParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewListBackupsParams() *ListBackupsParams {
p := &ListBackupsParams{}
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 *BackupService) GetBackupID(name string, opts ...OptionFunc) (string, int, error) {
p := &ListBackupsParams{}
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.ListBackups(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.Backups[0].Id, l.Count, nil
}
if l.Count > 1 {
for _, v := range l.Backups {
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 *BackupService) GetBackupByName(name string, opts ...OptionFunc) (*Backup, int, error) {
id, count, err := s.GetBackupID(name, opts...)
if err != nil {
return nil, count, err
}
r, count, err := s.GetBackupByID(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 *BackupService) GetBackupByID(id string, opts ...OptionFunc) (*Backup, int, error) {
p := &ListBackupsParams{}
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.ListBackups(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.Backups[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for Backup UUID: %s!", id)
}
// Lists VM backups
func (s *BackupService) ListBackups(p *ListBackupsParams) (*ListBackupsResponse, error) {
resp, err := s.cs.newRequest("listBackups", p.toURLValues())
if err != nil {
return nil, err
}
var r ListBackupsResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListBackupsResponse struct {
Count int `json:"count"`
Backups []*Backup `json:"backup"`
}
type Backup struct {
Account string `json:"account"`
Accountid string `json:"accountid"`
Backupofferingid string `json:"backupofferingid"`
Backupofferingname string `json:"backupofferingname"`
Created string `json:"created"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Id string `json:"id"`
Intervaltype string `json:"intervaltype"`
Isbackupvmexpunged bool `json:"isbackupvmexpunged"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Size int64 `json:"size"`
Status string `json:"status"`
Type string `json:"type"`
Virtualmachineid string `json:"virtualmachineid"`
Virtualmachinename string `json:"virtualmachinename"`
Virtualsize int64 `json:"virtualsize"`
Vmbackupofferingremoved bool `json:"vmbackupofferingremoved"`
Vmdetails map[string]string `json:"vmdetails"`
Volumes string `json:"volumes"`
Zone string `json:"zone"`
Zoneid string `json:"zoneid"`
}
type RestoreBackupParams struct {
p map[string]interface{}
}
func (p *RestoreBackupParams) 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 *RestoreBackupParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *RestoreBackupParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *RestoreBackupParams) 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 RestoreBackupParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewRestoreBackupParams(id string) *RestoreBackupParams {
p := &RestoreBackupParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Restores an existing stopped or deleted VM using a VM backup
func (s *BackupService) RestoreBackup(p *RestoreBackupParams) (*RestoreBackupResponse, error) {
resp, err := s.cs.newPostRequest("restoreBackup", p.toURLValues())
if err != nil {
return nil, err
}
var r RestoreBackupResponse
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 RestoreBackupResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type UpdateBackupRepositoryParams struct {
p map[string]interface{}
}
func (p *UpdateBackupRepositoryParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["address"]; found {
u.Set("address", v.(string))
}
if v, found := p.p["crosszoneinstancecreation"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("crosszoneinstancecreation", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
if v, found := p.p["mountopts"]; found {
u.Set("mountopts", v.(string))
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
return u
}
func (p *UpdateBackupRepositoryParams) SetAddress(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["address"] = v
}
func (p *UpdateBackupRepositoryParams) ResetAddress() {
if p.p != nil && p.p["address"] != nil {
delete(p.p, "address")
}
}
func (p *UpdateBackupRepositoryParams) GetAddress() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["address"].(string)
return value, ok
}
func (p *UpdateBackupRepositoryParams) SetCrosszoneinstancecreation(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["crosszoneinstancecreation"] = v
}
func (p *UpdateBackupRepositoryParams) ResetCrosszoneinstancecreation() {
if p.p != nil && p.p["crosszoneinstancecreation"] != nil {
delete(p.p, "crosszoneinstancecreation")
}
}
func (p *UpdateBackupRepositoryParams) GetCrosszoneinstancecreation() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["crosszoneinstancecreation"].(bool)
return value, ok
}
func (p *UpdateBackupRepositoryParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *UpdateBackupRepositoryParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *UpdateBackupRepositoryParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *UpdateBackupRepositoryParams) SetMountopts(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["mountopts"] = v
}
func (p *UpdateBackupRepositoryParams) ResetMountopts() {
if p.p != nil && p.p["mountopts"] != nil {
delete(p.p, "mountopts")
}
}
func (p *UpdateBackupRepositoryParams) GetMountopts() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["mountopts"].(string)
return value, ok
}
func (p *UpdateBackupRepositoryParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *UpdateBackupRepositoryParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *UpdateBackupRepositoryParams) 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 UpdateBackupRepositoryParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewUpdateBackupRepositoryParams(id string) *UpdateBackupRepositoryParams {
p := &UpdateBackupRepositoryParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Update a backup repository
func (s *BackupService) UpdateBackupRepository(p *UpdateBackupRepositoryParams) (*UpdateBackupRepositoryResponse, error) {
resp, err := s.cs.newPostRequest("updateBackupRepository", p.toURLValues())
if err != nil {
return nil, err
}
var r UpdateBackupRepositoryResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type UpdateBackupRepositoryResponse struct {
Address string `json:"address"`
Capacitybytes int64 `json:"capacitybytes"`
Created string `json:"created"`
Crosszoneinstancecreation bool `json:"crosszoneinstancecreation"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Provider string `json:"provider"`
Type string `json:"type"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type UpdateBackupOfferingParams struct {
p map[string]interface{}
}
func (p *UpdateBackupOfferingParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["allowuserdrivenbackups"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("allowuserdrivenbackups", vv)
}
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 *UpdateBackupOfferingParams) SetAllowuserdrivenbackups(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["allowuserdrivenbackups"] = v
}
func (p *UpdateBackupOfferingParams) ResetAllowuserdrivenbackups() {
if p.p != nil && p.p["allowuserdrivenbackups"] != nil {
delete(p.p, "allowuserdrivenbackups")
}
}
func (p *UpdateBackupOfferingParams) GetAllowuserdrivenbackups() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["allowuserdrivenbackups"].(bool)
return value, ok
}
func (p *UpdateBackupOfferingParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *UpdateBackupOfferingParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *UpdateBackupOfferingParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *UpdateBackupOfferingParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *UpdateBackupOfferingParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *UpdateBackupOfferingParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *UpdateBackupOfferingParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *UpdateBackupOfferingParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *UpdateBackupOfferingParams) 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 UpdateBackupOfferingParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewUpdateBackupOfferingParams(id string) *UpdateBackupOfferingParams {
p := &UpdateBackupOfferingParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Updates a backup offering.
func (s *BackupService) UpdateBackupOffering(p *UpdateBackupOfferingParams) (*UpdateBackupOfferingResponse, error) {
resp, err := s.cs.newPostRequest("updateBackupOffering", p.toURLValues())
if err != nil {
return nil, err
}
var r UpdateBackupOfferingResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type UpdateBackupOfferingResponse struct {
Allowuserdrivenbackups bool `json:"allowuserdrivenbackups"`
Created string `json:"created"`
Crosszoneinstancecreation bool `json:"crosszoneinstancecreation"`
Description string `json:"description"`
Externalid string `json:"externalid"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Provider string `json:"provider"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type UpdateBackupScheduleParams struct {
p map[string]interface{}
}
func (p *UpdateBackupScheduleParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["intervaltype"]; found {
u.Set("intervaltype", v.(string))
}
if v, found := p.p["maxbackups"]; found {
vv := strconv.Itoa(v.(int))
u.Set("maxbackups", vv)
}
if v, found := p.p["quiescevm"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("quiescevm", vv)
}
if v, found := p.p["schedule"]; found {
u.Set("schedule", v.(string))
}
if v, found := p.p["timezone"]; found {
u.Set("timezone", v.(string))
}
if v, found := p.p["virtualmachineid"]; found {
u.Set("virtualmachineid", v.(string))
}
return u
}
func (p *UpdateBackupScheduleParams) SetIntervaltype(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["intervaltype"] = v
}
func (p *UpdateBackupScheduleParams) ResetIntervaltype() {
if p.p != nil && p.p["intervaltype"] != nil {
delete(p.p, "intervaltype")
}
}
func (p *UpdateBackupScheduleParams) GetIntervaltype() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["intervaltype"].(string)
return value, ok
}
func (p *UpdateBackupScheduleParams) SetMaxbackups(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["maxbackups"] = v
}
func (p *UpdateBackupScheduleParams) ResetMaxbackups() {
if p.p != nil && p.p["maxbackups"] != nil {
delete(p.p, "maxbackups")
}
}
func (p *UpdateBackupScheduleParams) GetMaxbackups() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["maxbackups"].(int)
return value, ok
}
func (p *UpdateBackupScheduleParams) SetQuiescevm(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["quiescevm"] = v
}
func (p *UpdateBackupScheduleParams) ResetQuiescevm() {
if p.p != nil && p.p["quiescevm"] != nil {
delete(p.p, "quiescevm")
}
}
func (p *UpdateBackupScheduleParams) GetQuiescevm() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["quiescevm"].(bool)
return value, ok
}
func (p *UpdateBackupScheduleParams) SetSchedule(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["schedule"] = v
}
func (p *UpdateBackupScheduleParams) ResetSchedule() {
if p.p != nil && p.p["schedule"] != nil {
delete(p.p, "schedule")
}
}
func (p *UpdateBackupScheduleParams) GetSchedule() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["schedule"].(string)
return value, ok
}
func (p *UpdateBackupScheduleParams) SetTimezone(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["timezone"] = v
}
func (p *UpdateBackupScheduleParams) ResetTimezone() {
if p.p != nil && p.p["timezone"] != nil {
delete(p.p, "timezone")
}
}
func (p *UpdateBackupScheduleParams) GetTimezone() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["timezone"].(string)
return value, ok
}
func (p *UpdateBackupScheduleParams) SetVirtualmachineid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineid"] = v
}
func (p *UpdateBackupScheduleParams) ResetVirtualmachineid() {
if p.p != nil && p.p["virtualmachineid"] != nil {
delete(p.p, "virtualmachineid")
}
}
func (p *UpdateBackupScheduleParams) GetVirtualmachineid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineid"].(string)
return value, ok
}
// You should always use this function to get a new UpdateBackupScheduleParams instance,
// as then you are sure you have configured all required params
func (s *BackupService) NewUpdateBackupScheduleParams(intervaltype string, schedule string, timezone string, virtualmachineid string) *UpdateBackupScheduleParams {
p := &UpdateBackupScheduleParams{}
p.p = make(map[string]interface{})
p.p["intervaltype"] = intervaltype
p.p["schedule"] = schedule
p.p["timezone"] = timezone
p.p["virtualmachineid"] = virtualmachineid
return p
}
// Updates a user-defined VM backup schedule
func (s *BackupService) UpdateBackupSchedule(p *UpdateBackupScheduleParams) (*UpdateBackupScheduleResponse, error) {
resp, err := s.cs.newPostRequest("updateBackupSchedule", p.toURLValues())
if err != nil {
return nil, err
}
var r UpdateBackupScheduleResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type UpdateBackupScheduleResponse struct {
Account string `json:"account"`
Accountid string `json:"accountid"`
Backupofferingid string `json:"backupofferingid"`
Backupofferingname string `json:"backupofferingname"`
Created string `json:"created"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Externalid string `json:"externalid"`
Id string `json:"id"`
Intervaltype string `json:"intervaltype"`
Isbackupvmexpunged bool `json:"isbackupvmexpunged"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Size int64 `json:"size"`
Status string `json:"status"`
Type string `json:"type"`
Virtualmachineid string `json:"virtualmachineid"`
Virtualmachinename string `json:"virtualmachinename"`
Virtualsize int64 `json:"virtualsize"`
Vmbackupofferingremoved bool `json:"vmbackupofferingremoved"`
Vmdetails map[string]string `json:"vmdetails"`
Volumes string `json:"volumes"`
Zone string `json:"zone"`
Zoneid string `json:"zoneid"`
}