cloudstack/LoadBalancerService.go (6,035 lines of code) (raw):
//
// 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 LoadBalancerServiceIface interface {
AssignCertToLoadBalancer(p *AssignCertToLoadBalancerParams) (*AssignCertToLoadBalancerResponse, error)
NewAssignCertToLoadBalancerParams(certid string, lbruleid string) *AssignCertToLoadBalancerParams
AssignToGlobalLoadBalancerRule(p *AssignToGlobalLoadBalancerRuleParams) (*AssignToGlobalLoadBalancerRuleResponse, error)
NewAssignToGlobalLoadBalancerRuleParams(id string, loadbalancerrulelist []string) *AssignToGlobalLoadBalancerRuleParams
AssignToLoadBalancerRule(p *AssignToLoadBalancerRuleParams) (*AssignToLoadBalancerRuleResponse, error)
NewAssignToLoadBalancerRuleParams(id string) *AssignToLoadBalancerRuleParams
CreateGlobalLoadBalancerRule(p *CreateGlobalLoadBalancerRuleParams) (*CreateGlobalLoadBalancerRuleResponse, error)
NewCreateGlobalLoadBalancerRuleParams(gslbdomainname string, gslbservicetype string, name string, regionid int) *CreateGlobalLoadBalancerRuleParams
CreateLBHealthCheckPolicy(p *CreateLBHealthCheckPolicyParams) (*CreateLBHealthCheckPolicyResponse, error)
NewCreateLBHealthCheckPolicyParams(lbruleid string) *CreateLBHealthCheckPolicyParams
CreateLBStickinessPolicy(p *CreateLBStickinessPolicyParams) (*CreateLBStickinessPolicyResponse, error)
NewCreateLBStickinessPolicyParams(lbruleid string, methodname string, name string) *CreateLBStickinessPolicyParams
CreateLoadBalancer(p *CreateLoadBalancerParams) (*CreateLoadBalancerResponse, error)
NewCreateLoadBalancerParams(algorithm string, instanceport int, name string, networkid string, scheme string, sourceipaddressnetworkid string, sourceport int) *CreateLoadBalancerParams
CreateLoadBalancerRule(p *CreateLoadBalancerRuleParams) (*CreateLoadBalancerRuleResponse, error)
NewCreateLoadBalancerRuleParams(algorithm string, name string, privateport int, publicport int) *CreateLoadBalancerRuleParams
DeleteGlobalLoadBalancerRule(p *DeleteGlobalLoadBalancerRuleParams) (*DeleteGlobalLoadBalancerRuleResponse, error)
NewDeleteGlobalLoadBalancerRuleParams(id string) *DeleteGlobalLoadBalancerRuleParams
DeleteLBHealthCheckPolicy(p *DeleteLBHealthCheckPolicyParams) (*DeleteLBHealthCheckPolicyResponse, error)
NewDeleteLBHealthCheckPolicyParams(id string) *DeleteLBHealthCheckPolicyParams
DeleteLBStickinessPolicy(p *DeleteLBStickinessPolicyParams) (*DeleteLBStickinessPolicyResponse, error)
NewDeleteLBStickinessPolicyParams(id string) *DeleteLBStickinessPolicyParams
DeleteLoadBalancer(p *DeleteLoadBalancerParams) (*DeleteLoadBalancerResponse, error)
NewDeleteLoadBalancerParams(id string) *DeleteLoadBalancerParams
DeleteLoadBalancerRule(p *DeleteLoadBalancerRuleParams) (*DeleteLoadBalancerRuleResponse, error)
NewDeleteLoadBalancerRuleParams(id string) *DeleteLoadBalancerRuleParams
DeleteServicePackageOffering(p *DeleteServicePackageOfferingParams) (*DeleteServicePackageOfferingResponse, error)
NewDeleteServicePackageOfferingParams(id string) *DeleteServicePackageOfferingParams
DeleteSslCert(p *DeleteSslCertParams) (*DeleteSslCertResponse, error)
NewDeleteSslCertParams(id string) *DeleteSslCertParams
DeployNetscalerVpx(p *DeployNetscalerVpxParams) (*DeployNetscalerVpxResponse, error)
NewDeployNetscalerVpxParams(serviceofferingid string, templateid string, zoneid string) *DeployNetscalerVpxParams
ListGlobalLoadBalancerRules(p *ListGlobalLoadBalancerRulesParams) (*ListGlobalLoadBalancerRulesResponse, error)
NewListGlobalLoadBalancerRulesParams() *ListGlobalLoadBalancerRulesParams
GetGlobalLoadBalancerRuleID(keyword string, opts ...OptionFunc) (string, int, error)
GetGlobalLoadBalancerRuleByName(name string, opts ...OptionFunc) (*GlobalLoadBalancerRule, int, error)
GetGlobalLoadBalancerRuleByID(id string, opts ...OptionFunc) (*GlobalLoadBalancerRule, int, error)
ListLBHealthCheckPolicies(p *ListLBHealthCheckPoliciesParams) (*ListLBHealthCheckPoliciesResponse, error)
NewListLBHealthCheckPoliciesParams() *ListLBHealthCheckPoliciesParams
GetLBHealthCheckPolicyByID(id string, opts ...OptionFunc) (*LBHealthCheckPolicy, int, error)
ListLBStickinessPolicies(p *ListLBStickinessPoliciesParams) (*ListLBStickinessPoliciesResponse, error)
NewListLBStickinessPoliciesParams() *ListLBStickinessPoliciesParams
GetLBStickinessPolicyByID(id string, opts ...OptionFunc) (*LBStickinessPolicy, int, error)
ListLoadBalancerRuleInstances(p *ListLoadBalancerRuleInstancesParams) (*ListLoadBalancerRuleInstancesResponse, error)
NewListLoadBalancerRuleInstancesParams(id string) *ListLoadBalancerRuleInstancesParams
GetLoadBalancerRuleInstanceByID(id string, opts ...OptionFunc) (*VirtualMachine, int, error)
ListLoadBalancerRules(p *ListLoadBalancerRulesParams) (*ListLoadBalancerRulesResponse, error)
NewListLoadBalancerRulesParams() *ListLoadBalancerRulesParams
GetLoadBalancerRuleID(name string, opts ...OptionFunc) (string, int, error)
GetLoadBalancerRuleByName(name string, opts ...OptionFunc) (*LoadBalancerRule, int, error)
GetLoadBalancerRuleByID(id string, opts ...OptionFunc) (*LoadBalancerRule, int, error)
ListLoadBalancers(p *ListLoadBalancersParams) (*ListLoadBalancersResponse, error)
NewListLoadBalancersParams() *ListLoadBalancersParams
GetLoadBalancerID(name string, opts ...OptionFunc) (string, int, error)
GetLoadBalancerByName(name string, opts ...OptionFunc) (*LoadBalancer, int, error)
GetLoadBalancerByID(id string, opts ...OptionFunc) (*LoadBalancer, int, error)
ListRegisteredServicePackages(p *ListRegisteredServicePackagesParams) (*ListRegisteredServicePackagesResponse, error)
NewListRegisteredServicePackagesParams() *ListRegisteredServicePackagesParams
GetRegisteredServicePackageID(keyword string, opts ...OptionFunc) (string, int, error)
ListSslCerts(p *ListSslCertsParams) (*ListSslCertsResponse, error)
NewListSslCertsParams() *ListSslCertsParams
RemoveCertFromLoadBalancer(p *RemoveCertFromLoadBalancerParams) (*RemoveCertFromLoadBalancerResponse, error)
NewRemoveCertFromLoadBalancerParams(lbruleid string) *RemoveCertFromLoadBalancerParams
RemoveFromGlobalLoadBalancerRule(p *RemoveFromGlobalLoadBalancerRuleParams) (*RemoveFromGlobalLoadBalancerRuleResponse, error)
NewRemoveFromGlobalLoadBalancerRuleParams(id string, loadbalancerrulelist []string) *RemoveFromGlobalLoadBalancerRuleParams
RemoveFromLoadBalancerRule(p *RemoveFromLoadBalancerRuleParams) (*RemoveFromLoadBalancerRuleResponse, error)
NewRemoveFromLoadBalancerRuleParams(id string) *RemoveFromLoadBalancerRuleParams
StopNetScalerVpx(p *StopNetScalerVpxParams) (*StopNetScalerVpxResponse, error)
NewStopNetScalerVpxParams(id string) *StopNetScalerVpxParams
UpdateGlobalLoadBalancerRule(p *UpdateGlobalLoadBalancerRuleParams) (*UpdateGlobalLoadBalancerRuleResponse, error)
NewUpdateGlobalLoadBalancerRuleParams(id string) *UpdateGlobalLoadBalancerRuleParams
UpdateLBHealthCheckPolicy(p *UpdateLBHealthCheckPolicyParams) (*UpdateLBHealthCheckPolicyResponse, error)
NewUpdateLBHealthCheckPolicyParams(id string) *UpdateLBHealthCheckPolicyParams
UpdateLBStickinessPolicy(p *UpdateLBStickinessPolicyParams) (*UpdateLBStickinessPolicyResponse, error)
NewUpdateLBStickinessPolicyParams(id string) *UpdateLBStickinessPolicyParams
UpdateLoadBalancer(p *UpdateLoadBalancerParams) (*UpdateLoadBalancerResponse, error)
NewUpdateLoadBalancerParams(id string) *UpdateLoadBalancerParams
UpdateLoadBalancerRule(p *UpdateLoadBalancerRuleParams) (*UpdateLoadBalancerRuleResponse, error)
NewUpdateLoadBalancerRuleParams(id string) *UpdateLoadBalancerRuleParams
UploadSslCert(p *UploadSslCertParams) (*UploadSslCertResponse, error)
NewUploadSslCertParams(certificate string, name string, privatekey string) *UploadSslCertParams
}
type AssignCertToLoadBalancerParams struct {
p map[string]interface{}
}
func (p *AssignCertToLoadBalancerParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["certid"]; found {
u.Set("certid", v.(string))
}
if v, found := p.p["lbruleid"]; found {
u.Set("lbruleid", v.(string))
}
return u
}
func (p *AssignCertToLoadBalancerParams) SetCertid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["certid"] = v
}
func (p *AssignCertToLoadBalancerParams) ResetCertid() {
if p.p != nil && p.p["certid"] != nil {
delete(p.p, "certid")
}
}
func (p *AssignCertToLoadBalancerParams) GetCertid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["certid"].(string)
return value, ok
}
func (p *AssignCertToLoadBalancerParams) SetLbruleid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["lbruleid"] = v
}
func (p *AssignCertToLoadBalancerParams) ResetLbruleid() {
if p.p != nil && p.p["lbruleid"] != nil {
delete(p.p, "lbruleid")
}
}
func (p *AssignCertToLoadBalancerParams) GetLbruleid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["lbruleid"].(string)
return value, ok
}
// You should always use this function to get a new AssignCertToLoadBalancerParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewAssignCertToLoadBalancerParams(certid string, lbruleid string) *AssignCertToLoadBalancerParams {
p := &AssignCertToLoadBalancerParams{}
p.p = make(map[string]interface{})
p.p["certid"] = certid
p.p["lbruleid"] = lbruleid
return p
}
// Assigns a certificate to a load balancer rule
func (s *LoadBalancerService) AssignCertToLoadBalancer(p *AssignCertToLoadBalancerParams) (*AssignCertToLoadBalancerResponse, error) {
resp, err := s.cs.newRequest("assignCertToLoadBalancer", p.toURLValues())
if err != nil {
return nil, err
}
var r AssignCertToLoadBalancerResponse
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 AssignCertToLoadBalancerResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type AssignToGlobalLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *AssignToGlobalLoadBalancerRuleParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["gslblbruleweightsmap"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("gslblbruleweightsmap[%d].key", i), k)
u.Set(fmt.Sprintf("gslblbruleweightsmap[%d].value", i), m[k])
}
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
if v, found := p.p["loadbalancerrulelist"]; found {
vv := strings.Join(v.([]string), ",")
u.Set("loadbalancerrulelist", vv)
}
return u
}
func (p *AssignToGlobalLoadBalancerRuleParams) SetGslblbruleweightsmap(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["gslblbruleweightsmap"] = v
}
func (p *AssignToGlobalLoadBalancerRuleParams) ResetGslblbruleweightsmap() {
if p.p != nil && p.p["gslblbruleweightsmap"] != nil {
delete(p.p, "gslblbruleweightsmap")
}
}
func (p *AssignToGlobalLoadBalancerRuleParams) GetGslblbruleweightsmap() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["gslblbruleweightsmap"].(map[string]string)
return value, ok
}
func (p *AssignToGlobalLoadBalancerRuleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *AssignToGlobalLoadBalancerRuleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *AssignToGlobalLoadBalancerRuleParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *AssignToGlobalLoadBalancerRuleParams) SetLoadbalancerrulelist(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["loadbalancerrulelist"] = v
}
func (p *AssignToGlobalLoadBalancerRuleParams) ResetLoadbalancerrulelist() {
if p.p != nil && p.p["loadbalancerrulelist"] != nil {
delete(p.p, "loadbalancerrulelist")
}
}
func (p *AssignToGlobalLoadBalancerRuleParams) GetLoadbalancerrulelist() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["loadbalancerrulelist"].([]string)
return value, ok
}
// You should always use this function to get a new AssignToGlobalLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewAssignToGlobalLoadBalancerRuleParams(id string, loadbalancerrulelist []string) *AssignToGlobalLoadBalancerRuleParams {
p := &AssignToGlobalLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
p.p["loadbalancerrulelist"] = loadbalancerrulelist
return p
}
// Assign load balancer rule or list of load balancer rules to a global load balancer rules.
func (s *LoadBalancerService) AssignToGlobalLoadBalancerRule(p *AssignToGlobalLoadBalancerRuleParams) (*AssignToGlobalLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("assignToGlobalLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r AssignToGlobalLoadBalancerRuleResponse
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 AssignToGlobalLoadBalancerRuleResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type AssignToLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *AssignToLoadBalancerRuleParams) 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["virtualmachineids"]; found {
vv := strings.Join(v.([]string), ",")
u.Set("virtualmachineids", vv)
}
if v, found := p.p["vmidipmap"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("vmidipmap[%d].key", i), k)
u.Set(fmt.Sprintf("vmidipmap[%d].value", i), m[k])
}
}
return u
}
func (p *AssignToLoadBalancerRuleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *AssignToLoadBalancerRuleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *AssignToLoadBalancerRuleParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *AssignToLoadBalancerRuleParams) SetVirtualmachineids(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineids"] = v
}
func (p *AssignToLoadBalancerRuleParams) ResetVirtualmachineids() {
if p.p != nil && p.p["virtualmachineids"] != nil {
delete(p.p, "virtualmachineids")
}
}
func (p *AssignToLoadBalancerRuleParams) GetVirtualmachineids() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineids"].([]string)
return value, ok
}
func (p *AssignToLoadBalancerRuleParams) SetVmidipmap(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["vmidipmap"] = v
}
func (p *AssignToLoadBalancerRuleParams) ResetVmidipmap() {
if p.p != nil && p.p["vmidipmap"] != nil {
delete(p.p, "vmidipmap")
}
}
func (p *AssignToLoadBalancerRuleParams) GetVmidipmap() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["vmidipmap"].(map[string]string)
return value, ok
}
// You should always use this function to get a new AssignToLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewAssignToLoadBalancerRuleParams(id string) *AssignToLoadBalancerRuleParams {
p := &AssignToLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Assigns virtual machine or a list of virtual machines to a load balancer rule.
func (s *LoadBalancerService) AssignToLoadBalancerRule(p *AssignToLoadBalancerRuleParams) (*AssignToLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("assignToLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r AssignToLoadBalancerRuleResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
// If we have a async client, we need to wait for the async result
if s.cs.async {
b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
if err != nil {
if err == AsyncTimeoutErr {
return &r, err
}
return nil, err
}
if err := json.Unmarshal(b, &r); err != nil {
return nil, err
}
}
return &r, nil
}
type AssignToLoadBalancerRuleResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type CreateGlobalLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *CreateGlobalLoadBalancerRuleParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["account"]; found {
u.Set("account", v.(string))
}
if v, found := p.p["description"]; found {
u.Set("description", v.(string))
}
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
if v, found := p.p["gslbdomainname"]; found {
u.Set("gslbdomainname", v.(string))
}
if v, found := p.p["gslblbmethod"]; found {
u.Set("gslblbmethod", v.(string))
}
if v, found := p.p["gslbservicetype"]; found {
u.Set("gslbservicetype", v.(string))
}
if v, found := p.p["gslbstickysessionmethodname"]; found {
u.Set("gslbstickysessionmethodname", v.(string))
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["regionid"]; found {
vv := strconv.Itoa(v.(int))
u.Set("regionid", vv)
}
return u
}
func (p *CreateGlobalLoadBalancerRuleParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *CreateGlobalLoadBalancerRuleParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *CreateGlobalLoadBalancerRuleParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *CreateGlobalLoadBalancerRuleParams) SetGslbdomainname(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["gslbdomainname"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetGslbdomainname() {
if p.p != nil && p.p["gslbdomainname"] != nil {
delete(p.p, "gslbdomainname")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetGslbdomainname() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["gslbdomainname"].(string)
return value, ok
}
func (p *CreateGlobalLoadBalancerRuleParams) SetGslblbmethod(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["gslblbmethod"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetGslblbmethod() {
if p.p != nil && p.p["gslblbmethod"] != nil {
delete(p.p, "gslblbmethod")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetGslblbmethod() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["gslblbmethod"].(string)
return value, ok
}
func (p *CreateGlobalLoadBalancerRuleParams) SetGslbservicetype(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["gslbservicetype"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetGslbservicetype() {
if p.p != nil && p.p["gslbservicetype"] != nil {
delete(p.p, "gslbservicetype")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetGslbservicetype() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["gslbservicetype"].(string)
return value, ok
}
func (p *CreateGlobalLoadBalancerRuleParams) SetGslbstickysessionmethodname(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["gslbstickysessionmethodname"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetGslbstickysessionmethodname() {
if p.p != nil && p.p["gslbstickysessionmethodname"] != nil {
delete(p.p, "gslbstickysessionmethodname")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetGslbstickysessionmethodname() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["gslbstickysessionmethodname"].(string)
return value, ok
}
func (p *CreateGlobalLoadBalancerRuleParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *CreateGlobalLoadBalancerRuleParams) SetRegionid(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["regionid"] = v
}
func (p *CreateGlobalLoadBalancerRuleParams) ResetRegionid() {
if p.p != nil && p.p["regionid"] != nil {
delete(p.p, "regionid")
}
}
func (p *CreateGlobalLoadBalancerRuleParams) GetRegionid() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["regionid"].(int)
return value, ok
}
// You should always use this function to get a new CreateGlobalLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewCreateGlobalLoadBalancerRuleParams(gslbdomainname string, gslbservicetype string, name string, regionid int) *CreateGlobalLoadBalancerRuleParams {
p := &CreateGlobalLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["gslbdomainname"] = gslbdomainname
p.p["gslbservicetype"] = gslbservicetype
p.p["name"] = name
p.p["regionid"] = regionid
return p
}
// Creates a global load balancer rule
func (s *LoadBalancerService) CreateGlobalLoadBalancerRule(p *CreateGlobalLoadBalancerRuleParams) (*CreateGlobalLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("createGlobalLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r CreateGlobalLoadBalancerRuleResponse
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 CreateGlobalLoadBalancerRuleResponse struct {
Account string `json:"account"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Gslbdomainname string `json:"gslbdomainname"`
Gslblbmethod string `json:"gslblbmethod"`
Gslbservicetype string `json:"gslbservicetype"`
Gslbstickysessionmethodname string `json:"gslbstickysessionmethodname"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Loadbalancerrule []CreateGlobalLoadBalancerRuleResponseLoadbalancerrule `json:"loadbalancerrule"`
Name string `json:"name"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Regionid int `json:"regionid"`
}
type CreateGlobalLoadBalancerRuleResponseLoadbalancerrule struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Cidrlist string `json:"cidrlist"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Privateport string `json:"privateport"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Protocol string `json:"protocol"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
Publicport string `json:"publicport"`
State string `json:"state"`
Tags []Tags `json:"tags"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type CreateLBHealthCheckPolicyParams struct {
p map[string]interface{}
}
func (p *CreateLBHealthCheckPolicyParams) 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["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["healthythreshold"]; found {
vv := strconv.Itoa(v.(int))
u.Set("healthythreshold", vv)
}
if v, found := p.p["intervaltime"]; found {
vv := strconv.Itoa(v.(int))
u.Set("intervaltime", vv)
}
if v, found := p.p["lbruleid"]; found {
u.Set("lbruleid", v.(string))
}
if v, found := p.p["pingpath"]; found {
u.Set("pingpath", v.(string))
}
if v, found := p.p["responsetimeout"]; found {
vv := strconv.Itoa(v.(int))
u.Set("responsetimeout", vv)
}
if v, found := p.p["unhealthythreshold"]; found {
vv := strconv.Itoa(v.(int))
u.Set("unhealthythreshold", vv)
}
return u
}
func (p *CreateLBHealthCheckPolicyParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *CreateLBHealthCheckPolicyParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *CreateLBHealthCheckPolicyParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *CreateLBHealthCheckPolicyParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *CreateLBHealthCheckPolicyParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *CreateLBHealthCheckPolicyParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *CreateLBHealthCheckPolicyParams) SetHealthythreshold(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["healthythreshold"] = v
}
func (p *CreateLBHealthCheckPolicyParams) ResetHealthythreshold() {
if p.p != nil && p.p["healthythreshold"] != nil {
delete(p.p, "healthythreshold")
}
}
func (p *CreateLBHealthCheckPolicyParams) GetHealthythreshold() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["healthythreshold"].(int)
return value, ok
}
func (p *CreateLBHealthCheckPolicyParams) SetIntervaltime(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["intervaltime"] = v
}
func (p *CreateLBHealthCheckPolicyParams) ResetIntervaltime() {
if p.p != nil && p.p["intervaltime"] != nil {
delete(p.p, "intervaltime")
}
}
func (p *CreateLBHealthCheckPolicyParams) GetIntervaltime() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["intervaltime"].(int)
return value, ok
}
func (p *CreateLBHealthCheckPolicyParams) SetLbruleid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["lbruleid"] = v
}
func (p *CreateLBHealthCheckPolicyParams) ResetLbruleid() {
if p.p != nil && p.p["lbruleid"] != nil {
delete(p.p, "lbruleid")
}
}
func (p *CreateLBHealthCheckPolicyParams) GetLbruleid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["lbruleid"].(string)
return value, ok
}
func (p *CreateLBHealthCheckPolicyParams) SetPingpath(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pingpath"] = v
}
func (p *CreateLBHealthCheckPolicyParams) ResetPingpath() {
if p.p != nil && p.p["pingpath"] != nil {
delete(p.p, "pingpath")
}
}
func (p *CreateLBHealthCheckPolicyParams) GetPingpath() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pingpath"].(string)
return value, ok
}
func (p *CreateLBHealthCheckPolicyParams) SetResponsetimeout(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["responsetimeout"] = v
}
func (p *CreateLBHealthCheckPolicyParams) ResetResponsetimeout() {
if p.p != nil && p.p["responsetimeout"] != nil {
delete(p.p, "responsetimeout")
}
}
func (p *CreateLBHealthCheckPolicyParams) GetResponsetimeout() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["responsetimeout"].(int)
return value, ok
}
func (p *CreateLBHealthCheckPolicyParams) SetUnhealthythreshold(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["unhealthythreshold"] = v
}
func (p *CreateLBHealthCheckPolicyParams) ResetUnhealthythreshold() {
if p.p != nil && p.p["unhealthythreshold"] != nil {
delete(p.p, "unhealthythreshold")
}
}
func (p *CreateLBHealthCheckPolicyParams) GetUnhealthythreshold() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["unhealthythreshold"].(int)
return value, ok
}
// You should always use this function to get a new CreateLBHealthCheckPolicyParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewCreateLBHealthCheckPolicyParams(lbruleid string) *CreateLBHealthCheckPolicyParams {
p := &CreateLBHealthCheckPolicyParams{}
p.p = make(map[string]interface{})
p.p["lbruleid"] = lbruleid
return p
}
// Creates a load balancer health check policy
func (s *LoadBalancerService) CreateLBHealthCheckPolicy(p *CreateLBHealthCheckPolicyParams) (*CreateLBHealthCheckPolicyResponse, error) {
resp, err := s.cs.newRequest("createLBHealthCheckPolicy", p.toURLValues())
if err != nil {
return nil, err
}
var r CreateLBHealthCheckPolicyResponse
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 CreateLBHealthCheckPolicyResponse struct {
Account string `json:"account"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Healthcheckpolicy []CreateLBHealthCheckPolicyResponseHealthcheckpolicy `json:"healthcheckpolicy"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Lbruleid string `json:"lbruleid"`
Zoneid string `json:"zoneid"`
}
type CreateLBHealthCheckPolicyResponseHealthcheckpolicy struct {
Description string `json:"description"`
Fordisplay bool `json:"fordisplay"`
Healthcheckinterval int `json:"healthcheckinterval"`
Healthcheckthresshold int `json:"healthcheckthresshold"`
Id string `json:"id"`
Pingpath string `json:"pingpath"`
Responsetime int `json:"responsetime"`
State string `json:"state"`
Unhealthcheckthresshold int `json:"unhealthcheckthresshold"`
}
type CreateLBStickinessPolicyParams struct {
p map[string]interface{}
}
func (p *CreateLBStickinessPolicyParams) 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["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["lbruleid"]; found {
u.Set("lbruleid", v.(string))
}
if v, found := p.p["methodname"]; found {
u.Set("methodname", v.(string))
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["param"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("param[%d].key", i), k)
u.Set(fmt.Sprintf("param[%d].value", i), m[k])
}
}
return u
}
func (p *CreateLBStickinessPolicyParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *CreateLBStickinessPolicyParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *CreateLBStickinessPolicyParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *CreateLBStickinessPolicyParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *CreateLBStickinessPolicyParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *CreateLBStickinessPolicyParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *CreateLBStickinessPolicyParams) SetLbruleid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["lbruleid"] = v
}
func (p *CreateLBStickinessPolicyParams) ResetLbruleid() {
if p.p != nil && p.p["lbruleid"] != nil {
delete(p.p, "lbruleid")
}
}
func (p *CreateLBStickinessPolicyParams) GetLbruleid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["lbruleid"].(string)
return value, ok
}
func (p *CreateLBStickinessPolicyParams) SetMethodname(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["methodname"] = v
}
func (p *CreateLBStickinessPolicyParams) ResetMethodname() {
if p.p != nil && p.p["methodname"] != nil {
delete(p.p, "methodname")
}
}
func (p *CreateLBStickinessPolicyParams) GetMethodname() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["methodname"].(string)
return value, ok
}
func (p *CreateLBStickinessPolicyParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *CreateLBStickinessPolicyParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *CreateLBStickinessPolicyParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *CreateLBStickinessPolicyParams) SetParam(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["param"] = v
}
func (p *CreateLBStickinessPolicyParams) ResetParam() {
if p.p != nil && p.p["param"] != nil {
delete(p.p, "param")
}
}
func (p *CreateLBStickinessPolicyParams) GetParam() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["param"].(map[string]string)
return value, ok
}
// You should always use this function to get a new CreateLBStickinessPolicyParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewCreateLBStickinessPolicyParams(lbruleid string, methodname string, name string) *CreateLBStickinessPolicyParams {
p := &CreateLBStickinessPolicyParams{}
p.p = make(map[string]interface{})
p.p["lbruleid"] = lbruleid
p.p["methodname"] = methodname
p.p["name"] = name
return p
}
// Creates a load balancer stickiness policy
func (s *LoadBalancerService) CreateLBStickinessPolicy(p *CreateLBStickinessPolicyParams) (*CreateLBStickinessPolicyResponse, error) {
resp, err := s.cs.newRequest("createLBStickinessPolicy", p.toURLValues())
if err != nil {
return nil, err
}
var r CreateLBStickinessPolicyResponse
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 CreateLBStickinessPolicyResponse struct {
Account string `json:"account"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Lbruleid string `json:"lbruleid"`
Name string `json:"name"`
State string `json:"state"`
Stickinesspolicy []CreateLBStickinessPolicyResponseStickinesspolicy `json:"stickinesspolicy"`
Zoneid string `json:"zoneid"`
}
type CreateLBStickinessPolicyResponseStickinesspolicy struct {
Description string `json:"description"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
Methodname string `json:"methodname"`
Name string `json:"name"`
Params map[string]string `json:"params"`
State string `json:"state"`
}
type CreateLoadBalancerParams struct {
p map[string]interface{}
}
func (p *CreateLoadBalancerParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["algorithm"]; found {
u.Set("algorithm", v.(string))
}
if v, found := p.p["description"]; found {
u.Set("description", v.(string))
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["instanceport"]; found {
vv := strconv.Itoa(v.(int))
u.Set("instanceport", vv)
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["networkid"]; found {
u.Set("networkid", v.(string))
}
if v, found := p.p["scheme"]; found {
u.Set("scheme", v.(string))
}
if v, found := p.p["sourceipaddress"]; found {
u.Set("sourceipaddress", v.(string))
}
if v, found := p.p["sourceipaddressnetworkid"]; found {
u.Set("sourceipaddressnetworkid", v.(string))
}
if v, found := p.p["sourceport"]; found {
vv := strconv.Itoa(v.(int))
u.Set("sourceport", vv)
}
return u
}
func (p *CreateLoadBalancerParams) SetAlgorithm(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["algorithm"] = v
}
func (p *CreateLoadBalancerParams) ResetAlgorithm() {
if p.p != nil && p.p["algorithm"] != nil {
delete(p.p, "algorithm")
}
}
func (p *CreateLoadBalancerParams) GetAlgorithm() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["algorithm"].(string)
return value, ok
}
func (p *CreateLoadBalancerParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *CreateLoadBalancerParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *CreateLoadBalancerParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *CreateLoadBalancerParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *CreateLoadBalancerParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *CreateLoadBalancerParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *CreateLoadBalancerParams) SetInstanceport(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["instanceport"] = v
}
func (p *CreateLoadBalancerParams) ResetInstanceport() {
if p.p != nil && p.p["instanceport"] != nil {
delete(p.p, "instanceport")
}
}
func (p *CreateLoadBalancerParams) GetInstanceport() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["instanceport"].(int)
return value, ok
}
func (p *CreateLoadBalancerParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *CreateLoadBalancerParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *CreateLoadBalancerParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *CreateLoadBalancerParams) SetNetworkid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["networkid"] = v
}
func (p *CreateLoadBalancerParams) ResetNetworkid() {
if p.p != nil && p.p["networkid"] != nil {
delete(p.p, "networkid")
}
}
func (p *CreateLoadBalancerParams) GetNetworkid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["networkid"].(string)
return value, ok
}
func (p *CreateLoadBalancerParams) SetScheme(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["scheme"] = v
}
func (p *CreateLoadBalancerParams) ResetScheme() {
if p.p != nil && p.p["scheme"] != nil {
delete(p.p, "scheme")
}
}
func (p *CreateLoadBalancerParams) GetScheme() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["scheme"].(string)
return value, ok
}
func (p *CreateLoadBalancerParams) SetSourceipaddress(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["sourceipaddress"] = v
}
func (p *CreateLoadBalancerParams) ResetSourceipaddress() {
if p.p != nil && p.p["sourceipaddress"] != nil {
delete(p.p, "sourceipaddress")
}
}
func (p *CreateLoadBalancerParams) GetSourceipaddress() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["sourceipaddress"].(string)
return value, ok
}
func (p *CreateLoadBalancerParams) SetSourceipaddressnetworkid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["sourceipaddressnetworkid"] = v
}
func (p *CreateLoadBalancerParams) ResetSourceipaddressnetworkid() {
if p.p != nil && p.p["sourceipaddressnetworkid"] != nil {
delete(p.p, "sourceipaddressnetworkid")
}
}
func (p *CreateLoadBalancerParams) GetSourceipaddressnetworkid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["sourceipaddressnetworkid"].(string)
return value, ok
}
func (p *CreateLoadBalancerParams) SetSourceport(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["sourceport"] = v
}
func (p *CreateLoadBalancerParams) ResetSourceport() {
if p.p != nil && p.p["sourceport"] != nil {
delete(p.p, "sourceport")
}
}
func (p *CreateLoadBalancerParams) GetSourceport() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["sourceport"].(int)
return value, ok
}
// You should always use this function to get a new CreateLoadBalancerParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewCreateLoadBalancerParams(algorithm string, instanceport int, name string, networkid string, scheme string, sourceipaddressnetworkid string, sourceport int) *CreateLoadBalancerParams {
p := &CreateLoadBalancerParams{}
p.p = make(map[string]interface{})
p.p["algorithm"] = algorithm
p.p["instanceport"] = instanceport
p.p["name"] = name
p.p["networkid"] = networkid
p.p["scheme"] = scheme
p.p["sourceipaddressnetworkid"] = sourceipaddressnetworkid
p.p["sourceport"] = sourceport
return p
}
// Creates an internal load balancer
func (s *LoadBalancerService) CreateLoadBalancer(p *CreateLoadBalancerParams) (*CreateLoadBalancerResponse, error) {
resp, err := s.cs.newRequest("createLoadBalancer", p.toURLValues())
if err != nil {
return nil, err
}
var r CreateLoadBalancerResponse
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 CreateLoadBalancerResponse struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Loadbalancerinstance []CreateLoadBalancerResponseLoadbalancerinstance `json:"loadbalancerinstance"`
Loadbalancerrule []CreateLoadBalancerResponseLoadbalancerrule `json:"loadbalancerrule"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Sourceipaddress string `json:"sourceipaddress"`
Sourceipaddressnetworkid string `json:"sourceipaddressnetworkid"`
Tags []Tags `json:"tags"`
}
type CreateLoadBalancerResponseLoadbalancerrule struct {
Instanceport int `json:"instanceport"`
Sourceport int `json:"sourceport"`
State string `json:"state"`
}
type CreateLoadBalancerResponseLoadbalancerinstance struct {
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
Name string `json:"name"`
State string `json:"state"`
}
type CreateLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *CreateLoadBalancerRuleParams) 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["algorithm"]; found {
u.Set("algorithm", v.(string))
}
if v, found := p.p["cidrlist"]; found {
vv := strings.Join(v.([]string), ",")
u.Set("cidrlist", vv)
}
if v, found := p.p["description"]; found {
u.Set("description", v.(string))
}
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["networkid"]; found {
u.Set("networkid", v.(string))
}
if v, found := p.p["openfirewall"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("openfirewall", vv)
}
if v, found := p.p["privateport"]; found {
vv := strconv.Itoa(v.(int))
u.Set("privateport", vv)
}
if v, found := p.p["protocol"]; found {
u.Set("protocol", v.(string))
}
if v, found := p.p["publicipid"]; found {
u.Set("publicipid", v.(string))
}
if v, found := p.p["publicport"]; found {
vv := strconv.Itoa(v.(int))
u.Set("publicport", vv)
}
if v, found := p.p["zoneid"]; found {
u.Set("zoneid", v.(string))
}
return u
}
func (p *CreateLoadBalancerRuleParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *CreateLoadBalancerRuleParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetAlgorithm(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["algorithm"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetAlgorithm() {
if p.p != nil && p.p["algorithm"] != nil {
delete(p.p, "algorithm")
}
}
func (p *CreateLoadBalancerRuleParams) GetAlgorithm() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["algorithm"].(string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetCidrlist(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["cidrlist"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetCidrlist() {
if p.p != nil && p.p["cidrlist"] != nil {
delete(p.p, "cidrlist")
}
}
func (p *CreateLoadBalancerRuleParams) GetCidrlist() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["cidrlist"].([]string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *CreateLoadBalancerRuleParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *CreateLoadBalancerRuleParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *CreateLoadBalancerRuleParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *CreateLoadBalancerRuleParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetNetworkid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["networkid"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetNetworkid() {
if p.p != nil && p.p["networkid"] != nil {
delete(p.p, "networkid")
}
}
func (p *CreateLoadBalancerRuleParams) GetNetworkid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["networkid"].(string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetOpenfirewall(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["openfirewall"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetOpenfirewall() {
if p.p != nil && p.p["openfirewall"] != nil {
delete(p.p, "openfirewall")
}
}
func (p *CreateLoadBalancerRuleParams) GetOpenfirewall() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["openfirewall"].(bool)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetPrivateport(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["privateport"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetPrivateport() {
if p.p != nil && p.p["privateport"] != nil {
delete(p.p, "privateport")
}
}
func (p *CreateLoadBalancerRuleParams) GetPrivateport() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["privateport"].(int)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetProtocol(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["protocol"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetProtocol() {
if p.p != nil && p.p["protocol"] != nil {
delete(p.p, "protocol")
}
}
func (p *CreateLoadBalancerRuleParams) GetProtocol() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["protocol"].(string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetPublicipid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["publicipid"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetPublicipid() {
if p.p != nil && p.p["publicipid"] != nil {
delete(p.p, "publicipid")
}
}
func (p *CreateLoadBalancerRuleParams) GetPublicipid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["publicipid"].(string)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetPublicport(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["publicport"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetPublicport() {
if p.p != nil && p.p["publicport"] != nil {
delete(p.p, "publicport")
}
}
func (p *CreateLoadBalancerRuleParams) GetPublicport() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["publicport"].(int)
return value, ok
}
func (p *CreateLoadBalancerRuleParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *CreateLoadBalancerRuleParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *CreateLoadBalancerRuleParams) 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 CreateLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewCreateLoadBalancerRuleParams(algorithm string, name string, privateport int, publicport int) *CreateLoadBalancerRuleParams {
p := &CreateLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["algorithm"] = algorithm
p.p["name"] = name
p.p["privateport"] = privateport
p.p["publicport"] = publicport
return p
}
// Creates a load balancer rule
func (s *LoadBalancerService) CreateLoadBalancerRule(p *CreateLoadBalancerRuleParams) (*CreateLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("createLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r CreateLoadBalancerRuleResponse
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 CreateLoadBalancerRuleResponse struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Cidrlist string `json:"cidrlist"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Privateport string `json:"privateport"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Protocol string `json:"protocol"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
Publicport string `json:"publicport"`
State string `json:"state"`
Tags []Tags `json:"tags"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type DeleteGlobalLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *DeleteGlobalLoadBalancerRuleParams) 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 *DeleteGlobalLoadBalancerRuleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteGlobalLoadBalancerRuleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteGlobalLoadBalancerRuleParams) 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 DeleteGlobalLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewDeleteGlobalLoadBalancerRuleParams(id string) *DeleteGlobalLoadBalancerRuleParams {
p := &DeleteGlobalLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Deletes a global load balancer rule.
func (s *LoadBalancerService) DeleteGlobalLoadBalancerRule(p *DeleteGlobalLoadBalancerRuleParams) (*DeleteGlobalLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("deleteGlobalLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteGlobalLoadBalancerRuleResponse
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 DeleteGlobalLoadBalancerRuleResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type DeleteLBHealthCheckPolicyParams struct {
p map[string]interface{}
}
func (p *DeleteLBHealthCheckPolicyParams) 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 *DeleteLBHealthCheckPolicyParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteLBHealthCheckPolicyParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteLBHealthCheckPolicyParams) 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 DeleteLBHealthCheckPolicyParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewDeleteLBHealthCheckPolicyParams(id string) *DeleteLBHealthCheckPolicyParams {
p := &DeleteLBHealthCheckPolicyParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Deletes a load balancer health check policy.
func (s *LoadBalancerService) DeleteLBHealthCheckPolicy(p *DeleteLBHealthCheckPolicyParams) (*DeleteLBHealthCheckPolicyResponse, error) {
resp, err := s.cs.newRequest("deleteLBHealthCheckPolicy", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteLBHealthCheckPolicyResponse
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 DeleteLBHealthCheckPolicyResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type DeleteLBStickinessPolicyParams struct {
p map[string]interface{}
}
func (p *DeleteLBStickinessPolicyParams) 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 *DeleteLBStickinessPolicyParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteLBStickinessPolicyParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteLBStickinessPolicyParams) 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 DeleteLBStickinessPolicyParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewDeleteLBStickinessPolicyParams(id string) *DeleteLBStickinessPolicyParams {
p := &DeleteLBStickinessPolicyParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Deletes a load balancer stickiness policy.
func (s *LoadBalancerService) DeleteLBStickinessPolicy(p *DeleteLBStickinessPolicyParams) (*DeleteLBStickinessPolicyResponse, error) {
resp, err := s.cs.newRequest("deleteLBStickinessPolicy", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteLBStickinessPolicyResponse
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 DeleteLBStickinessPolicyResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type DeleteLoadBalancerParams struct {
p map[string]interface{}
}
func (p *DeleteLoadBalancerParams) 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 *DeleteLoadBalancerParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteLoadBalancerParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteLoadBalancerParams) 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 DeleteLoadBalancerParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewDeleteLoadBalancerParams(id string) *DeleteLoadBalancerParams {
p := &DeleteLoadBalancerParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Deletes an internal load balancer
func (s *LoadBalancerService) DeleteLoadBalancer(p *DeleteLoadBalancerParams) (*DeleteLoadBalancerResponse, error) {
resp, err := s.cs.newRequest("deleteLoadBalancer", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteLoadBalancerResponse
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 DeleteLoadBalancerResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type DeleteLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *DeleteLoadBalancerRuleParams) 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 *DeleteLoadBalancerRuleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteLoadBalancerRuleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteLoadBalancerRuleParams) 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 DeleteLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewDeleteLoadBalancerRuleParams(id string) *DeleteLoadBalancerRuleParams {
p := &DeleteLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Deletes a load balancer rule.
func (s *LoadBalancerService) DeleteLoadBalancerRule(p *DeleteLoadBalancerRuleParams) (*DeleteLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("deleteLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteLoadBalancerRuleResponse
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 DeleteLoadBalancerRuleResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type DeleteServicePackageOfferingParams struct {
p map[string]interface{}
}
func (p *DeleteServicePackageOfferingParams) 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 *DeleteServicePackageOfferingParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteServicePackageOfferingParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteServicePackageOfferingParams) 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 DeleteServicePackageOfferingParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewDeleteServicePackageOfferingParams(id string) *DeleteServicePackageOfferingParams {
p := &DeleteServicePackageOfferingParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Delete Service Package
func (s *LoadBalancerService) DeleteServicePackageOffering(p *DeleteServicePackageOfferingParams) (*DeleteServicePackageOfferingResponse, error) {
resp, err := s.cs.newRequest("deleteServicePackageOffering", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteServicePackageOfferingResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type DeleteServicePackageOfferingResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
func (r *DeleteServicePackageOfferingResponse) UnmarshalJSON(b []byte) error {
var m map[string]interface{}
err := json.Unmarshal(b, &m)
if err != nil {
return err
}
if success, ok := m["success"].(string); ok {
m["success"] = success == "true"
b, err = json.Marshal(m)
if err != nil {
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 DeleteServicePackageOfferingResponse
return json.Unmarshal(b, (*alias)(r))
}
type DeleteSslCertParams struct {
p map[string]interface{}
}
func (p *DeleteSslCertParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
func (p *DeleteSslCertParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *DeleteSslCertParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *DeleteSslCertParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
// You should always use this function to get a new DeleteSslCertParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewDeleteSslCertParams(id string) *DeleteSslCertParams {
p := &DeleteSslCertParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Delete a certificate to CloudStack
func (s *LoadBalancerService) DeleteSslCert(p *DeleteSslCertParams) (*DeleteSslCertResponse, error) {
resp, err := s.cs.newRequest("deleteSslCert", p.toURLValues())
if err != nil {
return nil, err
}
var r DeleteSslCertResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type DeleteSslCertResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
func (r *DeleteSslCertResponse) UnmarshalJSON(b []byte) error {
var m map[string]interface{}
err := json.Unmarshal(b, &m)
if err != nil {
return err
}
if success, ok := m["success"].(string); ok {
m["success"] = success == "true"
b, err = json.Marshal(m)
if err != nil {
return err
}
}
if ostypeid, ok := m["ostypeid"].(float64); ok {
m["ostypeid"] = strconv.Itoa(int(ostypeid))
b, err = json.Marshal(m)
if err != nil {
return err
}
}
type alias DeleteSslCertResponse
return json.Unmarshal(b, (*alias)(r))
}
type DeployNetscalerVpxParams struct {
p map[string]interface{}
}
func (p *DeployNetscalerVpxParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["networkid"]; found {
u.Set("networkid", v.(string))
}
if v, found := p.p["serviceofferingid"]; found {
u.Set("serviceofferingid", v.(string))
}
if v, found := p.p["templateid"]; found {
u.Set("templateid", v.(string))
}
if v, found := p.p["zoneid"]; found {
u.Set("zoneid", v.(string))
}
return u
}
func (p *DeployNetscalerVpxParams) SetNetworkid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["networkid"] = v
}
func (p *DeployNetscalerVpxParams) ResetNetworkid() {
if p.p != nil && p.p["networkid"] != nil {
delete(p.p, "networkid")
}
}
func (p *DeployNetscalerVpxParams) GetNetworkid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["networkid"].(string)
return value, ok
}
func (p *DeployNetscalerVpxParams) SetServiceofferingid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["serviceofferingid"] = v
}
func (p *DeployNetscalerVpxParams) ResetServiceofferingid() {
if p.p != nil && p.p["serviceofferingid"] != nil {
delete(p.p, "serviceofferingid")
}
}
func (p *DeployNetscalerVpxParams) GetServiceofferingid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["serviceofferingid"].(string)
return value, ok
}
func (p *DeployNetscalerVpxParams) SetTemplateid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["templateid"] = v
}
func (p *DeployNetscalerVpxParams) ResetTemplateid() {
if p.p != nil && p.p["templateid"] != nil {
delete(p.p, "templateid")
}
}
func (p *DeployNetscalerVpxParams) GetTemplateid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["templateid"].(string)
return value, ok
}
func (p *DeployNetscalerVpxParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *DeployNetscalerVpxParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *DeployNetscalerVpxParams) 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 DeployNetscalerVpxParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewDeployNetscalerVpxParams(serviceofferingid string, templateid string, zoneid string) *DeployNetscalerVpxParams {
p := &DeployNetscalerVpxParams{}
p.p = make(map[string]interface{})
p.p["serviceofferingid"] = serviceofferingid
p.p["templateid"] = templateid
p.p["zoneid"] = zoneid
return p
}
// Creates new NS Vpx
func (s *LoadBalancerService) DeployNetscalerVpx(p *DeployNetscalerVpxParams) (*DeployNetscalerVpxResponse, error) {
resp, err := s.cs.newRequest("deployNetscalerVpx", p.toURLValues())
if err != nil {
return nil, err
}
var r DeployNetscalerVpxResponse
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 DeployNetscalerVpxResponse struct {
Gslbprovider bool `json:"gslbprovider"`
Gslbproviderprivateip string `json:"gslbproviderprivateip"`
Gslbproviderpublicip string `json:"gslbproviderpublicip"`
Ipaddress string `json:"ipaddress"`
Isexclusivegslbprovider bool `json:"isexclusivegslbprovider"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Lbdevicecapacity int64 `json:"lbdevicecapacity"`
Lbdevicededicated bool `json:"lbdevicededicated"`
Lbdeviceid string `json:"lbdeviceid"`
Lbdevicename string `json:"lbdevicename"`
Lbdevicestate string `json:"lbdevicestate"`
Physicalnetworkid string `json:"physicalnetworkid"`
Podids []string `json:"podids"`
Privateinterface string `json:"privateinterface"`
Provider string `json:"provider"`
Publicinterface string `json:"publicinterface"`
}
type ListGlobalLoadBalancerRulesParams struct {
p map[string]interface{}
}
func (p *ListGlobalLoadBalancerRulesParams) 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["regionid"]; found {
vv := strconv.Itoa(v.(int))
u.Set("regionid", vv)
}
if v, found := p.p["tags"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("tags[%d].key", i), k)
u.Set(fmt.Sprintf("tags[%d].value", i), m[k])
}
}
return u
}
func (p *ListGlobalLoadBalancerRulesParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetIsrecursive(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["isrecursive"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetIsrecursive() {
if p.p != nil && p.p["isrecursive"] != nil {
delete(p.p, "isrecursive")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetIsrecursive() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["isrecursive"].(bool)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetListall(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listall"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetListall() {
if p.p != nil && p.p["listall"] != nil {
delete(p.p, "listall")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetListall() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listall"].(bool)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetProjectid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["projectid"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetProjectid() {
if p.p != nil && p.p["projectid"] != nil {
delete(p.p, "projectid")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetProjectid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["projectid"].(string)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetRegionid(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["regionid"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetRegionid() {
if p.p != nil && p.p["regionid"] != nil {
delete(p.p, "regionid")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetRegionid() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["regionid"].(int)
return value, ok
}
func (p *ListGlobalLoadBalancerRulesParams) SetTags(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["tags"] = v
}
func (p *ListGlobalLoadBalancerRulesParams) ResetTags() {
if p.p != nil && p.p["tags"] != nil {
delete(p.p, "tags")
}
}
func (p *ListGlobalLoadBalancerRulesParams) GetTags() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["tags"].(map[string]string)
return value, ok
}
// You should always use this function to get a new ListGlobalLoadBalancerRulesParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewListGlobalLoadBalancerRulesParams() *ListGlobalLoadBalancerRulesParams {
p := &ListGlobalLoadBalancerRulesParams{}
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 *LoadBalancerService) GetGlobalLoadBalancerRuleID(keyword string, opts ...OptionFunc) (string, int, error) {
p := &ListGlobalLoadBalancerRulesParams{}
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.ListGlobalLoadBalancerRules(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.GlobalLoadBalancerRules[0].Id, l.Count, nil
}
if l.Count > 1 {
for _, v := range l.GlobalLoadBalancerRules {
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 *LoadBalancerService) GetGlobalLoadBalancerRuleByName(name string, opts ...OptionFunc) (*GlobalLoadBalancerRule, int, error) {
id, count, err := s.GetGlobalLoadBalancerRuleID(name, opts...)
if err != nil {
return nil, count, err
}
r, count, err := s.GetGlobalLoadBalancerRuleByID(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 *LoadBalancerService) GetGlobalLoadBalancerRuleByID(id string, opts ...OptionFunc) (*GlobalLoadBalancerRule, int, error) {
p := &ListGlobalLoadBalancerRulesParams{}
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.ListGlobalLoadBalancerRules(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.GlobalLoadBalancerRules[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for GlobalLoadBalancerRule UUID: %s!", id)
}
// Lists load balancer rules.
func (s *LoadBalancerService) ListGlobalLoadBalancerRules(p *ListGlobalLoadBalancerRulesParams) (*ListGlobalLoadBalancerRulesResponse, error) {
resp, err := s.cs.newRequest("listGlobalLoadBalancerRules", p.toURLValues())
if err != nil {
return nil, err
}
var r ListGlobalLoadBalancerRulesResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListGlobalLoadBalancerRulesResponse struct {
Count int `json:"count"`
GlobalLoadBalancerRules []*GlobalLoadBalancerRule `json:"globalloadbalancerrule"`
}
type GlobalLoadBalancerRule struct {
Account string `json:"account"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Gslbdomainname string `json:"gslbdomainname"`
Gslblbmethod string `json:"gslblbmethod"`
Gslbservicetype string `json:"gslbservicetype"`
Gslbstickysessionmethodname string `json:"gslbstickysessionmethodname"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Loadbalancerrule []GlobalLoadBalancerRuleLoadbalancerrule `json:"loadbalancerrule"`
Name string `json:"name"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Regionid int `json:"regionid"`
}
type GlobalLoadBalancerRuleLoadbalancerrule struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Cidrlist string `json:"cidrlist"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Privateport string `json:"privateport"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Protocol string `json:"protocol"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
Publicport string `json:"publicport"`
State string `json:"state"`
Tags []Tags `json:"tags"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type ListLBHealthCheckPoliciesParams struct {
p map[string]interface{}
}
func (p *ListLBHealthCheckPoliciesParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
if v, found := p.p["keyword"]; found {
u.Set("keyword", v.(string))
}
if v, found := p.p["lbruleid"]; found {
u.Set("lbruleid", v.(string))
}
if v, found := p.p["page"]; found {
vv := strconv.Itoa(v.(int))
u.Set("page", vv)
}
if v, found := p.p["pagesize"]; found {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
return u
}
func (p *ListLBHealthCheckPoliciesParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *ListLBHealthCheckPoliciesParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *ListLBHealthCheckPoliciesParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *ListLBHealthCheckPoliciesParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListLBHealthCheckPoliciesParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListLBHealthCheckPoliciesParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListLBHealthCheckPoliciesParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListLBHealthCheckPoliciesParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListLBHealthCheckPoliciesParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListLBHealthCheckPoliciesParams) SetLbruleid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["lbruleid"] = v
}
func (p *ListLBHealthCheckPoliciesParams) ResetLbruleid() {
if p.p != nil && p.p["lbruleid"] != nil {
delete(p.p, "lbruleid")
}
}
func (p *ListLBHealthCheckPoliciesParams) GetLbruleid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["lbruleid"].(string)
return value, ok
}
func (p *ListLBHealthCheckPoliciesParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListLBHealthCheckPoliciesParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListLBHealthCheckPoliciesParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListLBHealthCheckPoliciesParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListLBHealthCheckPoliciesParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListLBHealthCheckPoliciesParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
// You should always use this function to get a new ListLBHealthCheckPoliciesParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewListLBHealthCheckPoliciesParams() *ListLBHealthCheckPoliciesParams {
p := &ListLBHealthCheckPoliciesParams{}
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 *LoadBalancerService) GetLBHealthCheckPolicyByID(id string, opts ...OptionFunc) (*LBHealthCheckPolicy, int, error) {
p := &ListLBHealthCheckPoliciesParams{}
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.ListLBHealthCheckPolicies(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.LBHealthCheckPolicies[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for LBHealthCheckPolicy UUID: %s!", id)
}
// Lists load balancer health check policies.
func (s *LoadBalancerService) ListLBHealthCheckPolicies(p *ListLBHealthCheckPoliciesParams) (*ListLBHealthCheckPoliciesResponse, error) {
resp, err := s.cs.newRequest("listLBHealthCheckPolicies", p.toURLValues())
if err != nil {
return nil, err
}
var r ListLBHealthCheckPoliciesResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListLBHealthCheckPoliciesResponse struct {
Count int `json:"count"`
LBHealthCheckPolicies []*LBHealthCheckPolicy `json:"lbhealthcheckpolicy"`
}
type LBHealthCheckPolicy struct {
Account string `json:"account"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Healthcheckpolicy []LBHealthCheckPolicyHealthcheckpolicy `json:"healthcheckpolicy"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Lbruleid string `json:"lbruleid"`
Zoneid string `json:"zoneid"`
}
type LBHealthCheckPolicyHealthcheckpolicy struct {
Description string `json:"description"`
Fordisplay bool `json:"fordisplay"`
Healthcheckinterval int `json:"healthcheckinterval"`
Healthcheckthresshold int `json:"healthcheckthresshold"`
Id string `json:"id"`
Pingpath string `json:"pingpath"`
Responsetime int `json:"responsetime"`
State string `json:"state"`
Unhealthcheckthresshold int `json:"unhealthcheckthresshold"`
}
type ListLBStickinessPoliciesParams struct {
p map[string]interface{}
}
func (p *ListLBStickinessPoliciesParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
if v, found := p.p["keyword"]; found {
u.Set("keyword", v.(string))
}
if v, found := p.p["lbruleid"]; found {
u.Set("lbruleid", v.(string))
}
if v, found := p.p["page"]; found {
vv := strconv.Itoa(v.(int))
u.Set("page", vv)
}
if v, found := p.p["pagesize"]; found {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
return u
}
func (p *ListLBStickinessPoliciesParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *ListLBStickinessPoliciesParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *ListLBStickinessPoliciesParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *ListLBStickinessPoliciesParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListLBStickinessPoliciesParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListLBStickinessPoliciesParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListLBStickinessPoliciesParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListLBStickinessPoliciesParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListLBStickinessPoliciesParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListLBStickinessPoliciesParams) SetLbruleid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["lbruleid"] = v
}
func (p *ListLBStickinessPoliciesParams) ResetLbruleid() {
if p.p != nil && p.p["lbruleid"] != nil {
delete(p.p, "lbruleid")
}
}
func (p *ListLBStickinessPoliciesParams) GetLbruleid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["lbruleid"].(string)
return value, ok
}
func (p *ListLBStickinessPoliciesParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListLBStickinessPoliciesParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListLBStickinessPoliciesParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListLBStickinessPoliciesParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListLBStickinessPoliciesParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListLBStickinessPoliciesParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
// You should always use this function to get a new ListLBStickinessPoliciesParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewListLBStickinessPoliciesParams() *ListLBStickinessPoliciesParams {
p := &ListLBStickinessPoliciesParams{}
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 *LoadBalancerService) GetLBStickinessPolicyByID(id string, opts ...OptionFunc) (*LBStickinessPolicy, int, error) {
p := &ListLBStickinessPoliciesParams{}
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.ListLBStickinessPolicies(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.LBStickinessPolicies[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for LBStickinessPolicy UUID: %s!", id)
}
// Lists load balancer stickiness policies.
func (s *LoadBalancerService) ListLBStickinessPolicies(p *ListLBStickinessPoliciesParams) (*ListLBStickinessPoliciesResponse, error) {
resp, err := s.cs.newRequest("listLBStickinessPolicies", p.toURLValues())
if err != nil {
return nil, err
}
var r ListLBStickinessPoliciesResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListLBStickinessPoliciesResponse struct {
Count int `json:"count"`
LBStickinessPolicies []*LBStickinessPolicy `json:"lbstickinesspolicy"`
}
type LBStickinessPolicy struct {
Account string `json:"account"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Lbruleid string `json:"lbruleid"`
Name string `json:"name"`
State string `json:"state"`
Stickinesspolicy []LBStickinessPolicyStickinesspolicy `json:"stickinesspolicy"`
Zoneid string `json:"zoneid"`
}
type LBStickinessPolicyStickinesspolicy struct {
Description string `json:"description"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
Methodname string `json:"methodname"`
Name string `json:"name"`
Params map[string]string `json:"params"`
State string `json:"state"`
}
type ListLoadBalancerRuleInstancesParams struct {
p map[string]interface{}
}
func (p *ListLoadBalancerRuleInstancesParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["applied"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("applied", vv)
}
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["lbvmips"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("lbvmips", 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)
}
return u
}
func (p *ListLoadBalancerRuleInstancesParams) SetApplied(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["applied"] = v
}
func (p *ListLoadBalancerRuleInstancesParams) ResetApplied() {
if p.p != nil && p.p["applied"] != nil {
delete(p.p, "applied")
}
}
func (p *ListLoadBalancerRuleInstancesParams) GetApplied() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["applied"].(bool)
return value, ok
}
func (p *ListLoadBalancerRuleInstancesParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListLoadBalancerRuleInstancesParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListLoadBalancerRuleInstancesParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListLoadBalancerRuleInstancesParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListLoadBalancerRuleInstancesParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListLoadBalancerRuleInstancesParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListLoadBalancerRuleInstancesParams) SetLbvmips(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["lbvmips"] = v
}
func (p *ListLoadBalancerRuleInstancesParams) ResetLbvmips() {
if p.p != nil && p.p["lbvmips"] != nil {
delete(p.p, "lbvmips")
}
}
func (p *ListLoadBalancerRuleInstancesParams) GetLbvmips() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["lbvmips"].(bool)
return value, ok
}
func (p *ListLoadBalancerRuleInstancesParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListLoadBalancerRuleInstancesParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListLoadBalancerRuleInstancesParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListLoadBalancerRuleInstancesParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListLoadBalancerRuleInstancesParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListLoadBalancerRuleInstancesParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
// You should always use this function to get a new ListLoadBalancerRuleInstancesParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewListLoadBalancerRuleInstancesParams(id string) *ListLoadBalancerRuleInstancesParams {
p := &ListLoadBalancerRuleInstancesParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// This is a courtesy helper function, which in some cases may not work as expected!
func (s *LoadBalancerService) GetLoadBalancerRuleInstanceByID(id string, opts ...OptionFunc) (*VirtualMachine, int, error) {
p := &ListLoadBalancerRuleInstancesParams{}
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.ListLoadBalancerRuleInstances(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.LoadBalancerRuleInstances[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for LoadBalancerRuleInstance UUID: %s!", id)
}
// List all virtual machine instances that are assigned to a load balancer rule.
func (s *LoadBalancerService) ListLoadBalancerRuleInstances(p *ListLoadBalancerRuleInstancesParams) (*ListLoadBalancerRuleInstancesResponse, error) {
resp, err := s.cs.newRequest("listLoadBalancerRuleInstances", p.toURLValues())
if err != nil {
return nil, err
}
var r ListLoadBalancerRuleInstancesResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListLoadBalancerRuleInstancesResponse struct {
Count int `json:"count"`
LBRuleVMIDIPs []*LoadBalancerRuleInstance `json:"lbrulevmidip"`
LoadBalancerRuleInstances []*VirtualMachine `json:"loadbalancerruleinstance"`
}
type LoadBalancerRuleInstance struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Lbvmipaddresses []string `json:"lbvmipaddresses"`
Loadbalancerruleinstance *VirtualMachine `json:"loadbalancerruleinstance"`
}
type ListLoadBalancerRulesParams struct {
p map[string]interface{}
}
func (p *ListLoadBalancerRulesParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["account"]; found {
u.Set("account", v.(string))
}
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
if v, found := p.p["isrecursive"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("isrecursive", vv)
}
if v, found := p.p["keyword"]; found {
u.Set("keyword", v.(string))
}
if v, found := p.p["listall"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("listall", vv)
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["networkid"]; found {
u.Set("networkid", v.(string))
}
if v, found := p.p["page"]; found {
vv := strconv.Itoa(v.(int))
u.Set("page", vv)
}
if v, found := p.p["pagesize"]; found {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
if v, found := p.p["projectid"]; found {
u.Set("projectid", v.(string))
}
if v, found := p.p["publicipid"]; found {
u.Set("publicipid", v.(string))
}
if v, found := p.p["tags"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("tags[%d].key", i), k)
u.Set(fmt.Sprintf("tags[%d].value", i), m[k])
}
}
if v, found := p.p["virtualmachineid"]; found {
u.Set("virtualmachineid", v.(string))
}
if v, found := p.p["zoneid"]; found {
u.Set("zoneid", v.(string))
}
return u
}
func (p *ListLoadBalancerRulesParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *ListLoadBalancerRulesParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *ListLoadBalancerRulesParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *ListLoadBalancerRulesParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *ListLoadBalancerRulesParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *ListLoadBalancerRulesParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *ListLoadBalancerRulesParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListLoadBalancerRulesParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListLoadBalancerRulesParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetIsrecursive(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["isrecursive"] = v
}
func (p *ListLoadBalancerRulesParams) ResetIsrecursive() {
if p.p != nil && p.p["isrecursive"] != nil {
delete(p.p, "isrecursive")
}
}
func (p *ListLoadBalancerRulesParams) GetIsrecursive() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["isrecursive"].(bool)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListLoadBalancerRulesParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListLoadBalancerRulesParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetListall(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listall"] = v
}
func (p *ListLoadBalancerRulesParams) ResetListall() {
if p.p != nil && p.p["listall"] != nil {
delete(p.p, "listall")
}
}
func (p *ListLoadBalancerRulesParams) GetListall() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listall"].(bool)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *ListLoadBalancerRulesParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *ListLoadBalancerRulesParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetNetworkid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["networkid"] = v
}
func (p *ListLoadBalancerRulesParams) ResetNetworkid() {
if p.p != nil && p.p["networkid"] != nil {
delete(p.p, "networkid")
}
}
func (p *ListLoadBalancerRulesParams) GetNetworkid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["networkid"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListLoadBalancerRulesParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListLoadBalancerRulesParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListLoadBalancerRulesParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListLoadBalancerRulesParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetProjectid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["projectid"] = v
}
func (p *ListLoadBalancerRulesParams) ResetProjectid() {
if p.p != nil && p.p["projectid"] != nil {
delete(p.p, "projectid")
}
}
func (p *ListLoadBalancerRulesParams) GetProjectid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["projectid"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetPublicipid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["publicipid"] = v
}
func (p *ListLoadBalancerRulesParams) ResetPublicipid() {
if p.p != nil && p.p["publicipid"] != nil {
delete(p.p, "publicipid")
}
}
func (p *ListLoadBalancerRulesParams) GetPublicipid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["publicipid"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetTags(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["tags"] = v
}
func (p *ListLoadBalancerRulesParams) ResetTags() {
if p.p != nil && p.p["tags"] != nil {
delete(p.p, "tags")
}
}
func (p *ListLoadBalancerRulesParams) GetTags() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["tags"].(map[string]string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetVirtualmachineid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineid"] = v
}
func (p *ListLoadBalancerRulesParams) ResetVirtualmachineid() {
if p.p != nil && p.p["virtualmachineid"] != nil {
delete(p.p, "virtualmachineid")
}
}
func (p *ListLoadBalancerRulesParams) GetVirtualmachineid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineid"].(string)
return value, ok
}
func (p *ListLoadBalancerRulesParams) SetZoneid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["zoneid"] = v
}
func (p *ListLoadBalancerRulesParams) ResetZoneid() {
if p.p != nil && p.p["zoneid"] != nil {
delete(p.p, "zoneid")
}
}
func (p *ListLoadBalancerRulesParams) 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 ListLoadBalancerRulesParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewListLoadBalancerRulesParams() *ListLoadBalancerRulesParams {
p := &ListLoadBalancerRulesParams{}
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 *LoadBalancerService) GetLoadBalancerRuleID(name string, opts ...OptionFunc) (string, int, error) {
p := &ListLoadBalancerRulesParams{}
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.ListLoadBalancerRules(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.LoadBalancerRules[0].Id, l.Count, nil
}
if l.Count > 1 {
for _, v := range l.LoadBalancerRules {
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 *LoadBalancerService) GetLoadBalancerRuleByName(name string, opts ...OptionFunc) (*LoadBalancerRule, int, error) {
id, count, err := s.GetLoadBalancerRuleID(name, opts...)
if err != nil {
return nil, count, err
}
r, count, err := s.GetLoadBalancerRuleByID(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 *LoadBalancerService) GetLoadBalancerRuleByID(id string, opts ...OptionFunc) (*LoadBalancerRule, int, error) {
p := &ListLoadBalancerRulesParams{}
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.ListLoadBalancerRules(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.LoadBalancerRules[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for LoadBalancerRule UUID: %s!", id)
}
// Lists load balancer rules.
func (s *LoadBalancerService) ListLoadBalancerRules(p *ListLoadBalancerRulesParams) (*ListLoadBalancerRulesResponse, error) {
resp, err := s.cs.newRequest("listLoadBalancerRules", p.toURLValues())
if err != nil {
return nil, err
}
var r ListLoadBalancerRulesResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListLoadBalancerRulesResponse struct {
Count int `json:"count"`
LoadBalancerRules []*LoadBalancerRule `json:"loadbalancerrule"`
}
type LoadBalancerRule struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Cidrlist string `json:"cidrlist"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Privateport string `json:"privateport"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Protocol string `json:"protocol"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
Publicport string `json:"publicport"`
State string `json:"state"`
Tags []Tags `json:"tags"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type ListLoadBalancersParams struct {
p map[string]interface{}
}
func (p *ListLoadBalancersParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["account"]; found {
u.Set("account", v.(string))
}
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
if v, found := p.p["isrecursive"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("isrecursive", vv)
}
if v, found := p.p["keyword"]; found {
u.Set("keyword", v.(string))
}
if v, found := p.p["listall"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("listall", vv)
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["networkid"]; found {
u.Set("networkid", v.(string))
}
if v, found := p.p["page"]; found {
vv := strconv.Itoa(v.(int))
u.Set("page", vv)
}
if v, found := p.p["pagesize"]; found {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
if v, found := p.p["projectid"]; found {
u.Set("projectid", v.(string))
}
if v, found := p.p["scheme"]; found {
u.Set("scheme", v.(string))
}
if v, found := p.p["sourceipaddress"]; found {
u.Set("sourceipaddress", v.(string))
}
if v, found := p.p["sourceipaddressnetworkid"]; found {
u.Set("sourceipaddressnetworkid", v.(string))
}
if v, found := p.p["tags"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("tags[%d].key", i), k)
u.Set(fmt.Sprintf("tags[%d].value", i), m[k])
}
}
return u
}
func (p *ListLoadBalancersParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *ListLoadBalancersParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *ListLoadBalancersParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *ListLoadBalancersParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *ListLoadBalancersParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *ListLoadBalancersParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *ListLoadBalancersParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *ListLoadBalancersParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *ListLoadBalancersParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *ListLoadBalancersParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetIsrecursive(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["isrecursive"] = v
}
func (p *ListLoadBalancersParams) ResetIsrecursive() {
if p.p != nil && p.p["isrecursive"] != nil {
delete(p.p, "isrecursive")
}
}
func (p *ListLoadBalancersParams) GetIsrecursive() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["isrecursive"].(bool)
return value, ok
}
func (p *ListLoadBalancersParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListLoadBalancersParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListLoadBalancersParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetListall(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listall"] = v
}
func (p *ListLoadBalancersParams) ResetListall() {
if p.p != nil && p.p["listall"] != nil {
delete(p.p, "listall")
}
}
func (p *ListLoadBalancersParams) GetListall() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listall"].(bool)
return value, ok
}
func (p *ListLoadBalancersParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *ListLoadBalancersParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *ListLoadBalancersParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetNetworkid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["networkid"] = v
}
func (p *ListLoadBalancersParams) ResetNetworkid() {
if p.p != nil && p.p["networkid"] != nil {
delete(p.p, "networkid")
}
}
func (p *ListLoadBalancersParams) GetNetworkid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["networkid"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListLoadBalancersParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListLoadBalancersParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListLoadBalancersParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListLoadBalancersParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListLoadBalancersParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *ListLoadBalancersParams) SetProjectid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["projectid"] = v
}
func (p *ListLoadBalancersParams) ResetProjectid() {
if p.p != nil && p.p["projectid"] != nil {
delete(p.p, "projectid")
}
}
func (p *ListLoadBalancersParams) GetProjectid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["projectid"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetScheme(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["scheme"] = v
}
func (p *ListLoadBalancersParams) ResetScheme() {
if p.p != nil && p.p["scheme"] != nil {
delete(p.p, "scheme")
}
}
func (p *ListLoadBalancersParams) GetScheme() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["scheme"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetSourceipaddress(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["sourceipaddress"] = v
}
func (p *ListLoadBalancersParams) ResetSourceipaddress() {
if p.p != nil && p.p["sourceipaddress"] != nil {
delete(p.p, "sourceipaddress")
}
}
func (p *ListLoadBalancersParams) GetSourceipaddress() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["sourceipaddress"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetSourceipaddressnetworkid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["sourceipaddressnetworkid"] = v
}
func (p *ListLoadBalancersParams) ResetSourceipaddressnetworkid() {
if p.p != nil && p.p["sourceipaddressnetworkid"] != nil {
delete(p.p, "sourceipaddressnetworkid")
}
}
func (p *ListLoadBalancersParams) GetSourceipaddressnetworkid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["sourceipaddressnetworkid"].(string)
return value, ok
}
func (p *ListLoadBalancersParams) SetTags(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["tags"] = v
}
func (p *ListLoadBalancersParams) ResetTags() {
if p.p != nil && p.p["tags"] != nil {
delete(p.p, "tags")
}
}
func (p *ListLoadBalancersParams) GetTags() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["tags"].(map[string]string)
return value, ok
}
// You should always use this function to get a new ListLoadBalancersParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewListLoadBalancersParams() *ListLoadBalancersParams {
p := &ListLoadBalancersParams{}
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 *LoadBalancerService) GetLoadBalancerID(name string, opts ...OptionFunc) (string, int, error) {
p := &ListLoadBalancersParams{}
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.ListLoadBalancers(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.LoadBalancers[0].Id, l.Count, nil
}
if l.Count > 1 {
for _, v := range l.LoadBalancers {
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 *LoadBalancerService) GetLoadBalancerByName(name string, opts ...OptionFunc) (*LoadBalancer, int, error) {
id, count, err := s.GetLoadBalancerID(name, opts...)
if err != nil {
return nil, count, err
}
r, count, err := s.GetLoadBalancerByID(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 *LoadBalancerService) GetLoadBalancerByID(id string, opts ...OptionFunc) (*LoadBalancer, int, error) {
p := &ListLoadBalancersParams{}
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.ListLoadBalancers(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.LoadBalancers[0], l.Count, nil
}
return nil, l.Count, fmt.Errorf("There is more then one result for LoadBalancer UUID: %s!", id)
}
// Lists internal load balancers
func (s *LoadBalancerService) ListLoadBalancers(p *ListLoadBalancersParams) (*ListLoadBalancersResponse, error) {
resp, err := s.cs.newRequest("listLoadBalancers", p.toURLValues())
if err != nil {
return nil, err
}
var r ListLoadBalancersResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListLoadBalancersResponse struct {
Count int `json:"count"`
LoadBalancers []*LoadBalancer `json:"loadbalancer"`
}
type LoadBalancer struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Loadbalancerinstance []LoadBalancerLoadbalancerinstance `json:"loadbalancerinstance"`
Loadbalancerrule []LoadBalancerLoadbalancerrule `json:"loadbalancerrule"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Sourceipaddress string `json:"sourceipaddress"`
Sourceipaddressnetworkid string `json:"sourceipaddressnetworkid"`
Tags []Tags `json:"tags"`
}
type LoadBalancerLoadbalancerrule struct {
Instanceport int `json:"instanceport"`
Sourceport int `json:"sourceport"`
State string `json:"state"`
}
type LoadBalancerLoadbalancerinstance struct {
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
Name string `json:"name"`
State string `json:"state"`
}
type ListRegisteredServicePackagesParams struct {
p map[string]interface{}
}
func (p *ListRegisteredServicePackagesParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["keyword"]; found {
u.Set("keyword", v.(string))
}
if v, found := p.p["page"]; found {
vv := strconv.Itoa(v.(int))
u.Set("page", vv)
}
if v, found := p.p["pagesize"]; found {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
return u
}
func (p *ListRegisteredServicePackagesParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *ListRegisteredServicePackagesParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *ListRegisteredServicePackagesParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *ListRegisteredServicePackagesParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *ListRegisteredServicePackagesParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *ListRegisteredServicePackagesParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *ListRegisteredServicePackagesParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *ListRegisteredServicePackagesParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *ListRegisteredServicePackagesParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
// You should always use this function to get a new ListRegisteredServicePackagesParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewListRegisteredServicePackagesParams() *ListRegisteredServicePackagesParams {
p := &ListRegisteredServicePackagesParams{}
p.p = make(map[string]interface{})
return p
}
// This is a courtesy helper function, which in some cases may not work as expected!
func (s *LoadBalancerService) GetRegisteredServicePackageID(keyword string, opts ...OptionFunc) (string, int, error) {
p := &ListRegisteredServicePackagesParams{}
p.p = make(map[string]interface{})
p.p["keyword"] = keyword
for _, fn := range append(s.cs.options, opts...) {
if err := fn(s.cs, p); err != nil {
return "", -1, err
}
}
l, err := s.ListRegisteredServicePackages(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.RegisteredServicePackages[0].Id, l.Count, nil
}
if l.Count > 1 {
for _, v := range l.RegisteredServicePackages {
if v.Name == keyword {
return v.Id, l.Count, nil
}
}
}
return "", l.Count, fmt.Errorf("Could not find an exact match for %s: %+v", keyword, l)
}
// lists registered service packages
func (s *LoadBalancerService) ListRegisteredServicePackages(p *ListRegisteredServicePackagesParams) (*ListRegisteredServicePackagesResponse, error) {
resp, err := s.cs.newRequest("listRegisteredServicePackages", p.toURLValues())
if err != nil {
return nil, err
}
var r ListRegisteredServicePackagesResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListRegisteredServicePackagesResponse struct {
Count int `json:"count"`
RegisteredServicePackages []*RegisteredServicePackage `json:"registeredservicepackage"`
}
type RegisteredServicePackage struct {
Description string `json:"description"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
}
type ListSslCertsParams struct {
p map[string]interface{}
}
func (p *ListSslCertsParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["accountid"]; found {
u.Set("accountid", v.(string))
}
if v, found := p.p["certid"]; found {
u.Set("certid", v.(string))
}
if v, found := p.p["lbruleid"]; found {
u.Set("lbruleid", v.(string))
}
if v, found := p.p["projectid"]; found {
u.Set("projectid", v.(string))
}
return u
}
func (p *ListSslCertsParams) SetAccountid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["accountid"] = v
}
func (p *ListSslCertsParams) ResetAccountid() {
if p.p != nil && p.p["accountid"] != nil {
delete(p.p, "accountid")
}
}
func (p *ListSslCertsParams) GetAccountid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["accountid"].(string)
return value, ok
}
func (p *ListSslCertsParams) SetCertid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["certid"] = v
}
func (p *ListSslCertsParams) ResetCertid() {
if p.p != nil && p.p["certid"] != nil {
delete(p.p, "certid")
}
}
func (p *ListSslCertsParams) GetCertid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["certid"].(string)
return value, ok
}
func (p *ListSslCertsParams) SetLbruleid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["lbruleid"] = v
}
func (p *ListSslCertsParams) ResetLbruleid() {
if p.p != nil && p.p["lbruleid"] != nil {
delete(p.p, "lbruleid")
}
}
func (p *ListSslCertsParams) GetLbruleid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["lbruleid"].(string)
return value, ok
}
func (p *ListSslCertsParams) SetProjectid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["projectid"] = v
}
func (p *ListSslCertsParams) ResetProjectid() {
if p.p != nil && p.p["projectid"] != nil {
delete(p.p, "projectid")
}
}
func (p *ListSslCertsParams) GetProjectid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["projectid"].(string)
return value, ok
}
// You should always use this function to get a new ListSslCertsParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewListSslCertsParams() *ListSslCertsParams {
p := &ListSslCertsParams{}
p.p = make(map[string]interface{})
return p
}
// Lists SSL certificates
func (s *LoadBalancerService) ListSslCerts(p *ListSslCertsParams) (*ListSslCertsResponse, error) {
resp, err := s.cs.newRequest("listSslCerts", p.toURLValues())
if err != nil {
return nil, err
}
var r ListSslCertsResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type ListSslCertsResponse struct {
Count int `json:"count"`
SslCerts []*SslCert `json:"sslcert"`
}
type SslCert struct {
Account string `json:"account"`
Certchain string `json:"certchain"`
Certificate string `json:"certificate"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Fingerprint string `json:"fingerprint"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Loadbalancerrulelist []string `json:"loadbalancerrulelist"`
Name string `json:"name"`
Project string `json:"project"`
Projectid string `json:"projectid"`
}
type RemoveCertFromLoadBalancerParams struct {
p map[string]interface{}
}
func (p *RemoveCertFromLoadBalancerParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["lbruleid"]; found {
u.Set("lbruleid", v.(string))
}
return u
}
func (p *RemoveCertFromLoadBalancerParams) SetLbruleid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["lbruleid"] = v
}
func (p *RemoveCertFromLoadBalancerParams) ResetLbruleid() {
if p.p != nil && p.p["lbruleid"] != nil {
delete(p.p, "lbruleid")
}
}
func (p *RemoveCertFromLoadBalancerParams) GetLbruleid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["lbruleid"].(string)
return value, ok
}
// You should always use this function to get a new RemoveCertFromLoadBalancerParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewRemoveCertFromLoadBalancerParams(lbruleid string) *RemoveCertFromLoadBalancerParams {
p := &RemoveCertFromLoadBalancerParams{}
p.p = make(map[string]interface{})
p.p["lbruleid"] = lbruleid
return p
}
// Removes a certificate from a load balancer rule
func (s *LoadBalancerService) RemoveCertFromLoadBalancer(p *RemoveCertFromLoadBalancerParams) (*RemoveCertFromLoadBalancerResponse, error) {
resp, err := s.cs.newRequest("removeCertFromLoadBalancer", p.toURLValues())
if err != nil {
return nil, err
}
var r RemoveCertFromLoadBalancerResponse
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 RemoveCertFromLoadBalancerResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type RemoveFromGlobalLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *RemoveFromGlobalLoadBalancerRuleParams) 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["loadbalancerrulelist"]; found {
vv := strings.Join(v.([]string), ",")
u.Set("loadbalancerrulelist", vv)
}
return u
}
func (p *RemoveFromGlobalLoadBalancerRuleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *RemoveFromGlobalLoadBalancerRuleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *RemoveFromGlobalLoadBalancerRuleParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *RemoveFromGlobalLoadBalancerRuleParams) SetLoadbalancerrulelist(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["loadbalancerrulelist"] = v
}
func (p *RemoveFromGlobalLoadBalancerRuleParams) ResetLoadbalancerrulelist() {
if p.p != nil && p.p["loadbalancerrulelist"] != nil {
delete(p.p, "loadbalancerrulelist")
}
}
func (p *RemoveFromGlobalLoadBalancerRuleParams) GetLoadbalancerrulelist() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["loadbalancerrulelist"].([]string)
return value, ok
}
// You should always use this function to get a new RemoveFromGlobalLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewRemoveFromGlobalLoadBalancerRuleParams(id string, loadbalancerrulelist []string) *RemoveFromGlobalLoadBalancerRuleParams {
p := &RemoveFromGlobalLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
p.p["loadbalancerrulelist"] = loadbalancerrulelist
return p
}
// Removes a load balancer rule association with global load balancer rule
func (s *LoadBalancerService) RemoveFromGlobalLoadBalancerRule(p *RemoveFromGlobalLoadBalancerRuleParams) (*RemoveFromGlobalLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("removeFromGlobalLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r RemoveFromGlobalLoadBalancerRuleResponse
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 RemoveFromGlobalLoadBalancerRuleResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type RemoveFromLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *RemoveFromLoadBalancerRuleParams) 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["virtualmachineids"]; found {
vv := strings.Join(v.([]string), ",")
u.Set("virtualmachineids", vv)
}
if v, found := p.p["vmidipmap"]; found {
m := v.(map[string]string)
for i, k := range getSortedKeysFromMap(m) {
u.Set(fmt.Sprintf("vmidipmap[%d].key", i), k)
u.Set(fmt.Sprintf("vmidipmap[%d].value", i), m[k])
}
}
return u
}
func (p *RemoveFromLoadBalancerRuleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *RemoveFromLoadBalancerRuleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *RemoveFromLoadBalancerRuleParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *RemoveFromLoadBalancerRuleParams) SetVirtualmachineids(v []string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["virtualmachineids"] = v
}
func (p *RemoveFromLoadBalancerRuleParams) ResetVirtualmachineids() {
if p.p != nil && p.p["virtualmachineids"] != nil {
delete(p.p, "virtualmachineids")
}
}
func (p *RemoveFromLoadBalancerRuleParams) GetVirtualmachineids() ([]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["virtualmachineids"].([]string)
return value, ok
}
func (p *RemoveFromLoadBalancerRuleParams) SetVmidipmap(v map[string]string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["vmidipmap"] = v
}
func (p *RemoveFromLoadBalancerRuleParams) ResetVmidipmap() {
if p.p != nil && p.p["vmidipmap"] != nil {
delete(p.p, "vmidipmap")
}
}
func (p *RemoveFromLoadBalancerRuleParams) GetVmidipmap() (map[string]string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["vmidipmap"].(map[string]string)
return value, ok
}
// You should always use this function to get a new RemoveFromLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewRemoveFromLoadBalancerRuleParams(id string) *RemoveFromLoadBalancerRuleParams {
p := &RemoveFromLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Removes a virtual machine or a list of virtual machines from a load balancer rule.
func (s *LoadBalancerService) RemoveFromLoadBalancerRule(p *RemoveFromLoadBalancerRuleParams) (*RemoveFromLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("removeFromLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r RemoveFromLoadBalancerRuleResponse
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 RemoveFromLoadBalancerRuleResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
type StopNetScalerVpxParams struct {
p map[string]interface{}
}
func (p *StopNetScalerVpxParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["forced"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("forced", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
func (p *StopNetScalerVpxParams) SetForced(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["forced"] = v
}
func (p *StopNetScalerVpxParams) ResetForced() {
if p.p != nil && p.p["forced"] != nil {
delete(p.p, "forced")
}
}
func (p *StopNetScalerVpxParams) GetForced() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["forced"].(bool)
return value, ok
}
func (p *StopNetScalerVpxParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *StopNetScalerVpxParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *StopNetScalerVpxParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
// You should always use this function to get a new StopNetScalerVpxParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewStopNetScalerVpxParams(id string) *StopNetScalerVpxParams {
p := &StopNetScalerVpxParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Stops a NetScalervm.
func (s *LoadBalancerService) StopNetScalerVpx(p *StopNetScalerVpxParams) (*StopNetScalerVpxResponse, error) {
resp, err := s.cs.newRequest("stopNetScalerVpx", p.toURLValues())
if err != nil {
return nil, err
}
var r StopNetScalerVpxResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
// If we have a async client, we need to wait for the async result
if s.cs.async {
b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
if err != nil {
if err == AsyncTimeoutErr {
return &r, err
}
return nil, err
}
b, err = getRawValue(b)
if err != nil {
return nil, err
}
if err := json.Unmarshal(b, &r); err != nil {
return nil, err
}
}
return &r, nil
}
type StopNetScalerVpxResponse struct {
Account string `json:"account"`
Created string `json:"created"`
Dns1 string `json:"dns1"`
Dns2 string `json:"dns2"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Gateway string `json:"gateway"`
Guestipaddress string `json:"guestipaddress"`
Guestmacaddress string `json:"guestmacaddress"`
Guestnetmask string `json:"guestnetmask"`
Guestnetworkid string `json:"guestnetworkid"`
Guestnetworkname string `json:"guestnetworkname"`
Hasannotations bool `json:"hasannotations"`
Healthcheckresults []StopNetScalerVpxResponseHealthcheckresults `json:"healthcheckresults"`
Healthchecksfailed bool `json:"healthchecksfailed"`
Hostcontrolstate string `json:"hostcontrolstate"`
Hostid string `json:"hostid"`
Hostname string `json:"hostname"`
Hypervisor string `json:"hypervisor"`
Id string `json:"id"`
Ip6dns1 string `json:"ip6dns1"`
Ip6dns2 string `json:"ip6dns2"`
Isredundantrouter bool `json:"isredundantrouter"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Linklocalip string `json:"linklocalip"`
Linklocalmacaddress string `json:"linklocalmacaddress"`
Linklocalnetmask string `json:"linklocalnetmask"`
Linklocalnetworkid string `json:"linklocalnetworkid"`
Name string `json:"name"`
Networkdomain string `json:"networkdomain"`
Nic []Nic `json:"nic"`
Podid string `json:"podid"`
Podname string `json:"podname"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Publicip string `json:"publicip"`
Publicmacaddress string `json:"publicmacaddress"`
Publicnetmask string `json:"publicnetmask"`
Publicnetworkid string `json:"publicnetworkid"`
Redundantstate string `json:"redundantstate"`
Requiresupgrade bool `json:"requiresupgrade"`
Role string `json:"role"`
Scriptsversion string `json:"scriptsversion"`
Serviceofferingid string `json:"serviceofferingid"`
Serviceofferingname string `json:"serviceofferingname"`
Softwareversion string `json:"softwareversion"`
State string `json:"state"`
Templateid string `json:"templateid"`
Templatename string `json:"templatename"`
Version string `json:"version"`
Vpcid string `json:"vpcid"`
Vpcname string `json:"vpcname"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type StopNetScalerVpxResponseHealthcheckresults struct {
Checkname string `json:"checkname"`
Checktype string `json:"checktype"`
Details string `json:"details"`
Lastupdated string `json:"lastupdated"`
Success bool `json:"success"`
}
type UpdateGlobalLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *UpdateGlobalLoadBalancerRuleParams) 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["gslblbmethod"]; found {
u.Set("gslblbmethod", v.(string))
}
if v, found := p.p["gslbstickysessionmethodname"]; found {
u.Set("gslbstickysessionmethodname", v.(string))
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
func (p *UpdateGlobalLoadBalancerRuleParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *UpdateGlobalLoadBalancerRuleParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *UpdateGlobalLoadBalancerRuleParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *UpdateGlobalLoadBalancerRuleParams) SetGslblbmethod(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["gslblbmethod"] = v
}
func (p *UpdateGlobalLoadBalancerRuleParams) ResetGslblbmethod() {
if p.p != nil && p.p["gslblbmethod"] != nil {
delete(p.p, "gslblbmethod")
}
}
func (p *UpdateGlobalLoadBalancerRuleParams) GetGslblbmethod() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["gslblbmethod"].(string)
return value, ok
}
func (p *UpdateGlobalLoadBalancerRuleParams) SetGslbstickysessionmethodname(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["gslbstickysessionmethodname"] = v
}
func (p *UpdateGlobalLoadBalancerRuleParams) ResetGslbstickysessionmethodname() {
if p.p != nil && p.p["gslbstickysessionmethodname"] != nil {
delete(p.p, "gslbstickysessionmethodname")
}
}
func (p *UpdateGlobalLoadBalancerRuleParams) GetGslbstickysessionmethodname() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["gslbstickysessionmethodname"].(string)
return value, ok
}
func (p *UpdateGlobalLoadBalancerRuleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *UpdateGlobalLoadBalancerRuleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *UpdateGlobalLoadBalancerRuleParams) 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 UpdateGlobalLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewUpdateGlobalLoadBalancerRuleParams(id string) *UpdateGlobalLoadBalancerRuleParams {
p := &UpdateGlobalLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// update global load balancer rules.
func (s *LoadBalancerService) UpdateGlobalLoadBalancerRule(p *UpdateGlobalLoadBalancerRuleParams) (*UpdateGlobalLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("updateGlobalLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r UpdateGlobalLoadBalancerRuleResponse
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 UpdateGlobalLoadBalancerRuleResponse struct {
Account string `json:"account"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Gslbdomainname string `json:"gslbdomainname"`
Gslblbmethod string `json:"gslblbmethod"`
Gslbservicetype string `json:"gslbservicetype"`
Gslbstickysessionmethodname string `json:"gslbstickysessionmethodname"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Loadbalancerrule []UpdateGlobalLoadBalancerRuleResponseLoadbalancerrule `json:"loadbalancerrule"`
Name string `json:"name"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Regionid int `json:"regionid"`
}
type UpdateGlobalLoadBalancerRuleResponseLoadbalancerrule struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Cidrlist string `json:"cidrlist"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Privateport string `json:"privateport"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Protocol string `json:"protocol"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
Publicport string `json:"publicport"`
State string `json:"state"`
Tags []Tags `json:"tags"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type UpdateLBHealthCheckPolicyParams struct {
p map[string]interface{}
}
func (p *UpdateLBHealthCheckPolicyParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["customid"]; found {
u.Set("customid", v.(string))
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
func (p *UpdateLBHealthCheckPolicyParams) SetCustomid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["customid"] = v
}
func (p *UpdateLBHealthCheckPolicyParams) ResetCustomid() {
if p.p != nil && p.p["customid"] != nil {
delete(p.p, "customid")
}
}
func (p *UpdateLBHealthCheckPolicyParams) GetCustomid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["customid"].(string)
return value, ok
}
func (p *UpdateLBHealthCheckPolicyParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *UpdateLBHealthCheckPolicyParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *UpdateLBHealthCheckPolicyParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *UpdateLBHealthCheckPolicyParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *UpdateLBHealthCheckPolicyParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *UpdateLBHealthCheckPolicyParams) 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 UpdateLBHealthCheckPolicyParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewUpdateLBHealthCheckPolicyParams(id string) *UpdateLBHealthCheckPolicyParams {
p := &UpdateLBHealthCheckPolicyParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Updates load balancer health check policy
func (s *LoadBalancerService) UpdateLBHealthCheckPolicy(p *UpdateLBHealthCheckPolicyParams) (*UpdateLBHealthCheckPolicyResponse, error) {
resp, err := s.cs.newRequest("updateLBHealthCheckPolicy", p.toURLValues())
if err != nil {
return nil, err
}
var r UpdateLBHealthCheckPolicyResponse
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 UpdateLBHealthCheckPolicyResponse struct {
Account string `json:"account"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Healthcheckpolicy []UpdateLBHealthCheckPolicyResponseHealthcheckpolicy `json:"healthcheckpolicy"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Lbruleid string `json:"lbruleid"`
Zoneid string `json:"zoneid"`
}
type UpdateLBHealthCheckPolicyResponseHealthcheckpolicy struct {
Description string `json:"description"`
Fordisplay bool `json:"fordisplay"`
Healthcheckinterval int `json:"healthcheckinterval"`
Healthcheckthresshold int `json:"healthcheckthresshold"`
Id string `json:"id"`
Pingpath string `json:"pingpath"`
Responsetime int `json:"responsetime"`
State string `json:"state"`
Unhealthcheckthresshold int `json:"unhealthcheckthresshold"`
}
type UpdateLBStickinessPolicyParams struct {
p map[string]interface{}
}
func (p *UpdateLBStickinessPolicyParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["customid"]; found {
u.Set("customid", v.(string))
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
func (p *UpdateLBStickinessPolicyParams) SetCustomid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["customid"] = v
}
func (p *UpdateLBStickinessPolicyParams) ResetCustomid() {
if p.p != nil && p.p["customid"] != nil {
delete(p.p, "customid")
}
}
func (p *UpdateLBStickinessPolicyParams) GetCustomid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["customid"].(string)
return value, ok
}
func (p *UpdateLBStickinessPolicyParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *UpdateLBStickinessPolicyParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *UpdateLBStickinessPolicyParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *UpdateLBStickinessPolicyParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *UpdateLBStickinessPolicyParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *UpdateLBStickinessPolicyParams) 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 UpdateLBStickinessPolicyParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewUpdateLBStickinessPolicyParams(id string) *UpdateLBStickinessPolicyParams {
p := &UpdateLBStickinessPolicyParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Updates load balancer stickiness policy
func (s *LoadBalancerService) UpdateLBStickinessPolicy(p *UpdateLBStickinessPolicyParams) (*UpdateLBStickinessPolicyResponse, error) {
resp, err := s.cs.newRequest("updateLBStickinessPolicy", p.toURLValues())
if err != nil {
return nil, err
}
var r UpdateLBStickinessPolicyResponse
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 UpdateLBStickinessPolicyResponse struct {
Account string `json:"account"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Lbruleid string `json:"lbruleid"`
Name string `json:"name"`
State string `json:"state"`
Stickinesspolicy []UpdateLBStickinessPolicyResponseStickinesspolicy `json:"stickinesspolicy"`
Zoneid string `json:"zoneid"`
}
type UpdateLBStickinessPolicyResponseStickinesspolicy struct {
Description string `json:"description"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
Methodname string `json:"methodname"`
Name string `json:"name"`
Params map[string]string `json:"params"`
State string `json:"state"`
}
type UpdateLoadBalancerParams struct {
p map[string]interface{}
}
func (p *UpdateLoadBalancerParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["customid"]; found {
u.Set("customid", v.(string))
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
return u
}
func (p *UpdateLoadBalancerParams) SetCustomid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["customid"] = v
}
func (p *UpdateLoadBalancerParams) ResetCustomid() {
if p.p != nil && p.p["customid"] != nil {
delete(p.p, "customid")
}
}
func (p *UpdateLoadBalancerParams) GetCustomid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["customid"].(string)
return value, ok
}
func (p *UpdateLoadBalancerParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *UpdateLoadBalancerParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *UpdateLoadBalancerParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *UpdateLoadBalancerParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *UpdateLoadBalancerParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *UpdateLoadBalancerParams) 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 UpdateLoadBalancerParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewUpdateLoadBalancerParams(id string) *UpdateLoadBalancerParams {
p := &UpdateLoadBalancerParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Updates an internal load balancer
func (s *LoadBalancerService) UpdateLoadBalancer(p *UpdateLoadBalancerParams) (*UpdateLoadBalancerResponse, error) {
resp, err := s.cs.newRequest("updateLoadBalancer", p.toURLValues())
if err != nil {
return nil, err
}
var r UpdateLoadBalancerResponse
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 UpdateLoadBalancerResponse struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Loadbalancerinstance []UpdateLoadBalancerResponseLoadbalancerinstance `json:"loadbalancerinstance"`
Loadbalancerrule []UpdateLoadBalancerResponseLoadbalancerrule `json:"loadbalancerrule"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Sourceipaddress string `json:"sourceipaddress"`
Sourceipaddressnetworkid string `json:"sourceipaddressnetworkid"`
Tags []Tags `json:"tags"`
}
type UpdateLoadBalancerResponseLoadbalancerrule struct {
Instanceport int `json:"instanceport"`
Sourceport int `json:"sourceport"`
State string `json:"state"`
}
type UpdateLoadBalancerResponseLoadbalancerinstance struct {
Id string `json:"id"`
Ipaddress string `json:"ipaddress"`
Name string `json:"name"`
State string `json:"state"`
}
type UpdateLoadBalancerRuleParams struct {
p map[string]interface{}
}
func (p *UpdateLoadBalancerRuleParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["algorithm"]; found {
u.Set("algorithm", v.(string))
}
if v, found := p.p["customid"]; found {
u.Set("customid", v.(string))
}
if v, found := p.p["description"]; found {
u.Set("description", v.(string))
}
if v, found := p.p["fordisplay"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("fordisplay", vv)
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["protocol"]; found {
u.Set("protocol", v.(string))
}
return u
}
func (p *UpdateLoadBalancerRuleParams) SetAlgorithm(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["algorithm"] = v
}
func (p *UpdateLoadBalancerRuleParams) ResetAlgorithm() {
if p.p != nil && p.p["algorithm"] != nil {
delete(p.p, "algorithm")
}
}
func (p *UpdateLoadBalancerRuleParams) GetAlgorithm() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["algorithm"].(string)
return value, ok
}
func (p *UpdateLoadBalancerRuleParams) SetCustomid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["customid"] = v
}
func (p *UpdateLoadBalancerRuleParams) ResetCustomid() {
if p.p != nil && p.p["customid"] != nil {
delete(p.p, "customid")
}
}
func (p *UpdateLoadBalancerRuleParams) GetCustomid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["customid"].(string)
return value, ok
}
func (p *UpdateLoadBalancerRuleParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *UpdateLoadBalancerRuleParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *UpdateLoadBalancerRuleParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *UpdateLoadBalancerRuleParams) SetFordisplay(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["fordisplay"] = v
}
func (p *UpdateLoadBalancerRuleParams) ResetFordisplay() {
if p.p != nil && p.p["fordisplay"] != nil {
delete(p.p, "fordisplay")
}
}
func (p *UpdateLoadBalancerRuleParams) GetFordisplay() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["fordisplay"].(bool)
return value, ok
}
func (p *UpdateLoadBalancerRuleParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *UpdateLoadBalancerRuleParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *UpdateLoadBalancerRuleParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *UpdateLoadBalancerRuleParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *UpdateLoadBalancerRuleParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *UpdateLoadBalancerRuleParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *UpdateLoadBalancerRuleParams) SetProtocol(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["protocol"] = v
}
func (p *UpdateLoadBalancerRuleParams) ResetProtocol() {
if p.p != nil && p.p["protocol"] != nil {
delete(p.p, "protocol")
}
}
func (p *UpdateLoadBalancerRuleParams) GetProtocol() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["protocol"].(string)
return value, ok
}
// You should always use this function to get a new UpdateLoadBalancerRuleParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewUpdateLoadBalancerRuleParams(id string) *UpdateLoadBalancerRuleParams {
p := &UpdateLoadBalancerRuleParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Updates load balancer
func (s *LoadBalancerService) UpdateLoadBalancerRule(p *UpdateLoadBalancerRuleParams) (*UpdateLoadBalancerRuleResponse, error) {
resp, err := s.cs.newRequest("updateLoadBalancerRule", p.toURLValues())
if err != nil {
return nil, err
}
var r UpdateLoadBalancerRuleResponse
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 UpdateLoadBalancerRuleResponse struct {
Account string `json:"account"`
Algorithm string `json:"algorithm"`
Cidrlist string `json:"cidrlist"`
Description string `json:"description"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Domainpath string `json:"domainpath"`
Fordisplay bool `json:"fordisplay"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Networkid string `json:"networkid"`
Privateport string `json:"privateport"`
Project string `json:"project"`
Projectid string `json:"projectid"`
Protocol string `json:"protocol"`
Publicip string `json:"publicip"`
Publicipid string `json:"publicipid"`
Publicport string `json:"publicport"`
State string `json:"state"`
Tags []Tags `json:"tags"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
type UploadSslCertParams struct {
p map[string]interface{}
}
func (p *UploadSslCertParams) 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["certchain"]; found {
u.Set("certchain", v.(string))
}
if v, found := p.p["certificate"]; found {
u.Set("certificate", v.(string))
}
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
if v, found := p.p["enabledrevocationcheck"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("enabledrevocationcheck", vv)
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["password"]; found {
u.Set("password", v.(string))
}
if v, found := p.p["privatekey"]; found {
u.Set("privatekey", v.(string))
}
if v, found := p.p["projectid"]; found {
u.Set("projectid", v.(string))
}
return u
}
func (p *UploadSslCertParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *UploadSslCertParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *UploadSslCertParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *UploadSslCertParams) SetCertchain(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["certchain"] = v
}
func (p *UploadSslCertParams) ResetCertchain() {
if p.p != nil && p.p["certchain"] != nil {
delete(p.p, "certchain")
}
}
func (p *UploadSslCertParams) GetCertchain() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["certchain"].(string)
return value, ok
}
func (p *UploadSslCertParams) SetCertificate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["certificate"] = v
}
func (p *UploadSslCertParams) ResetCertificate() {
if p.p != nil && p.p["certificate"] != nil {
delete(p.p, "certificate")
}
}
func (p *UploadSslCertParams) GetCertificate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["certificate"].(string)
return value, ok
}
func (p *UploadSslCertParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *UploadSslCertParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *UploadSslCertParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *UploadSslCertParams) SetEnabledrevocationcheck(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["enabledrevocationcheck"] = v
}
func (p *UploadSslCertParams) ResetEnabledrevocationcheck() {
if p.p != nil && p.p["enabledrevocationcheck"] != nil {
delete(p.p, "enabledrevocationcheck")
}
}
func (p *UploadSslCertParams) GetEnabledrevocationcheck() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["enabledrevocationcheck"].(bool)
return value, ok
}
func (p *UploadSslCertParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *UploadSslCertParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *UploadSslCertParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *UploadSslCertParams) SetPassword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["password"] = v
}
func (p *UploadSslCertParams) ResetPassword() {
if p.p != nil && p.p["password"] != nil {
delete(p.p, "password")
}
}
func (p *UploadSslCertParams) GetPassword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["password"].(string)
return value, ok
}
func (p *UploadSslCertParams) SetPrivatekey(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["privatekey"] = v
}
func (p *UploadSslCertParams) ResetPrivatekey() {
if p.p != nil && p.p["privatekey"] != nil {
delete(p.p, "privatekey")
}
}
func (p *UploadSslCertParams) GetPrivatekey() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["privatekey"].(string)
return value, ok
}
func (p *UploadSslCertParams) SetProjectid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["projectid"] = v
}
func (p *UploadSslCertParams) ResetProjectid() {
if p.p != nil && p.p["projectid"] != nil {
delete(p.p, "projectid")
}
}
func (p *UploadSslCertParams) GetProjectid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["projectid"].(string)
return value, ok
}
// You should always use this function to get a new UploadSslCertParams instance,
// as then you are sure you have configured all required params
func (s *LoadBalancerService) NewUploadSslCertParams(certificate string, name string, privatekey string) *UploadSslCertParams {
p := &UploadSslCertParams{}
p.p = make(map[string]interface{})
p.p["certificate"] = certificate
p.p["name"] = name
p.p["privatekey"] = privatekey
return p
}
// Upload a certificate to CloudStack
func (s *LoadBalancerService) UploadSslCert(p *UploadSslCertParams) (*UploadSslCertResponse, error) {
resp, err := s.cs.newRequest("uploadSslCert", p.toURLValues())
if err != nil {
return nil, err
}
var r UploadSslCertResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type UploadSslCertResponse struct {
Account string `json:"account"`
Certchain string `json:"certchain"`
Certificate string `json:"certificate"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Fingerprint string `json:"fingerprint"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Loadbalancerrulelist []string `json:"loadbalancerrulelist"`
Name string `json:"name"`
Project string `json:"project"`
Projectid string `json:"projectid"`
}