cloudstack/QuotaService.go (1,503 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"
"net/url"
"strconv"
)
type QuotaServiceIface interface {
QuotaBalance(p *QuotaBalanceParams) (*QuotaBalanceResponse, error)
NewQuotaBalanceParams(account string, domainid string) *QuotaBalanceParams
QuotaCredits(p *QuotaCreditsParams) (*QuotaCreditsResponse, error)
NewQuotaCreditsParams(account string, domainid string, value float64) *QuotaCreditsParams
QuotaIsEnabled(p *QuotaIsEnabledParams) (*QuotaIsEnabledResponse, error)
NewQuotaIsEnabledParams() *QuotaIsEnabledParams
QuotaStatement(p *QuotaStatementParams) (*QuotaStatementResponse, error)
NewQuotaStatementParams(account string, domainid string, enddate string, startdate string) *QuotaStatementParams
QuotaSummary(p *QuotaSummaryParams) (*QuotaSummaryResponse, error)
NewQuotaSummaryParams() *QuotaSummaryParams
QuotaTariffCreate(p *QuotaTariffCreateParams) (*QuotaTariffCreateResponse, error)
NewQuotaTariffCreateParams(name string, usagetype int, value float64) *QuotaTariffCreateParams
QuotaTariffDelete(p *QuotaTariffDeleteParams) (*QuotaTariffDeleteResponse, error)
NewQuotaTariffDeleteParams(id string) *QuotaTariffDeleteParams
QuotaTariffList(p *QuotaTariffListParams) (*QuotaTariffListResponse, error)
NewQuotaTariffListParams() *QuotaTariffListParams
QuotaTariffUpdate(p *QuotaTariffUpdateParams) (*QuotaTariffUpdateResponse, error)
NewQuotaTariffUpdateParams(name string) *QuotaTariffUpdateParams
QuotaUpdate(p *QuotaUpdateParams) (*QuotaUpdateResponse, error)
NewQuotaUpdateParams() *QuotaUpdateParams
}
type QuotaBalanceParams struct {
p map[string]interface{}
}
func (p *QuotaBalanceParams) 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["accountid"]; found {
u.Set("accountid", v.(string))
}
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
if v, found := p.p["enddate"]; found {
u.Set("enddate", v.(string))
}
if v, found := p.p["startdate"]; found {
u.Set("startdate", v.(string))
}
return u
}
func (p *QuotaBalanceParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *QuotaBalanceParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *QuotaBalanceParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *QuotaBalanceParams) SetAccountid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["accountid"] = v
}
func (p *QuotaBalanceParams) ResetAccountid() {
if p.p != nil && p.p["accountid"] != nil {
delete(p.p, "accountid")
}
}
func (p *QuotaBalanceParams) GetAccountid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["accountid"].(string)
return value, ok
}
func (p *QuotaBalanceParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *QuotaBalanceParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *QuotaBalanceParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *QuotaBalanceParams) SetEnddate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["enddate"] = v
}
func (p *QuotaBalanceParams) ResetEnddate() {
if p.p != nil && p.p["enddate"] != nil {
delete(p.p, "enddate")
}
}
func (p *QuotaBalanceParams) GetEnddate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["enddate"].(string)
return value, ok
}
func (p *QuotaBalanceParams) SetStartdate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["startdate"] = v
}
func (p *QuotaBalanceParams) ResetStartdate() {
if p.p != nil && p.p["startdate"] != nil {
delete(p.p, "startdate")
}
}
func (p *QuotaBalanceParams) GetStartdate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["startdate"].(string)
return value, ok
}
// You should always use this function to get a new QuotaBalanceParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaBalanceParams(account string, domainid string) *QuotaBalanceParams {
p := &QuotaBalanceParams{}
p.p = make(map[string]interface{})
p.p["account"] = account
p.p["domainid"] = domainid
return p
}
// Create a quota balance statement
func (s *QuotaService) QuotaBalance(p *QuotaBalanceParams) (*QuotaBalanceResponse, error) {
resp, err := s.cs.newRequest("quotaBalance", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaBalanceResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaBalanceResponse struct {
Statement QuotaBalanceResponseType `json:"balance"`
}
type QuotaBalanceResponseType struct {
StartQuota float64 `json:"startquota"`
Credits []string `json:"credits"`
StartDate string `json:"startdate"`
Currency string `json:"currency"`
}
type QuotaCreditsParams struct {
p map[string]interface{}
}
func (p *QuotaCreditsParams) 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["min_balance"]; found {
vv := strconv.FormatFloat(v.(float64), 'f', -1, 64)
u.Set("min_balance", vv)
}
if v, found := p.p["quota_enforce"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("quota_enforce", vv)
}
if v, found := p.p["value"]; found {
vv := strconv.FormatFloat(v.(float64), 'f', -1, 64)
u.Set("value", vv)
}
return u
}
func (p *QuotaCreditsParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *QuotaCreditsParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *QuotaCreditsParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *QuotaCreditsParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *QuotaCreditsParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *QuotaCreditsParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *QuotaCreditsParams) SetMin_balance(v float64) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["min_balance"] = v
}
func (p *QuotaCreditsParams) ResetMin_balance() {
if p.p != nil && p.p["min_balance"] != nil {
delete(p.p, "min_balance")
}
}
func (p *QuotaCreditsParams) GetMin_balance() (float64, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["min_balance"].(float64)
return value, ok
}
func (p *QuotaCreditsParams) SetQuota_enforce(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["quota_enforce"] = v
}
func (p *QuotaCreditsParams) ResetQuota_enforce() {
if p.p != nil && p.p["quota_enforce"] != nil {
delete(p.p, "quota_enforce")
}
}
func (p *QuotaCreditsParams) GetQuota_enforce() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["quota_enforce"].(bool)
return value, ok
}
func (p *QuotaCreditsParams) SetValue(v float64) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["value"] = v
}
func (p *QuotaCreditsParams) ResetValue() {
if p.p != nil && p.p["value"] != nil {
delete(p.p, "value")
}
}
func (p *QuotaCreditsParams) GetValue() (float64, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["value"].(float64)
return value, ok
}
// You should always use this function to get a new QuotaCreditsParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaCreditsParams(account string, domainid string, value float64) *QuotaCreditsParams {
p := &QuotaCreditsParams{}
p.p = make(map[string]interface{})
p.p["account"] = account
p.p["domainid"] = domainid
p.p["value"] = value
return p
}
// Add +-credits to an account
func (s *QuotaService) QuotaCredits(p *QuotaCreditsParams) (*QuotaCreditsResponse, error) {
resp, err := s.cs.newRequest("quotaCredits", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaCreditsResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaCreditsResponse struct {
Credits float64 `json:"credits"`
Currency string `json:"currency"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Updated_by string `json:"updated_by"`
Updated_on string `json:"updated_on"`
}
type QuotaIsEnabledParams struct {
p map[string]interface{}
}
func (p *QuotaIsEnabledParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
return u
}
// You should always use this function to get a new QuotaIsEnabledParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaIsEnabledParams() *QuotaIsEnabledParams {
p := &QuotaIsEnabledParams{}
p.p = make(map[string]interface{})
return p
}
// Return true if the plugin is enabled
func (s *QuotaService) QuotaIsEnabled(p *QuotaIsEnabledParams) (*QuotaIsEnabledResponse, error) {
resp, err := s.cs.newRequest("quotaIsEnabled", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaIsEnabledResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaIsEnabledResponse struct {
Isenabled bool `json:"isenabled"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
}
type QuotaStatementParams struct {
p map[string]interface{}
}
func (p *QuotaStatementParams) 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["accountid"]; found {
u.Set("accountid", v.(string))
}
if v, found := p.p["domainid"]; found {
u.Set("domainid", v.(string))
}
if v, found := p.p["enddate"]; found {
u.Set("enddate", v.(string))
}
if v, found := p.p["startdate"]; found {
u.Set("startdate", v.(string))
}
if v, found := p.p["type"]; found {
vv := strconv.Itoa(v.(int))
u.Set("type", vv)
}
return u
}
func (p *QuotaStatementParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *QuotaStatementParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *QuotaStatementParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *QuotaStatementParams) SetAccountid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["accountid"] = v
}
func (p *QuotaStatementParams) ResetAccountid() {
if p.p != nil && p.p["accountid"] != nil {
delete(p.p, "accountid")
}
}
func (p *QuotaStatementParams) GetAccountid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["accountid"].(string)
return value, ok
}
func (p *QuotaStatementParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *QuotaStatementParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *QuotaStatementParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *QuotaStatementParams) SetEnddate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["enddate"] = v
}
func (p *QuotaStatementParams) ResetEnddate() {
if p.p != nil && p.p["enddate"] != nil {
delete(p.p, "enddate")
}
}
func (p *QuotaStatementParams) GetEnddate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["enddate"].(string)
return value, ok
}
func (p *QuotaStatementParams) SetStartdate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["startdate"] = v
}
func (p *QuotaStatementParams) ResetStartdate() {
if p.p != nil && p.p["startdate"] != nil {
delete(p.p, "startdate")
}
}
func (p *QuotaStatementParams) GetStartdate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["startdate"].(string)
return value, ok
}
func (p *QuotaStatementParams) SetType(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["type"] = v
}
func (p *QuotaStatementParams) ResetType() {
if p.p != nil && p.p["type"] != nil {
delete(p.p, "type")
}
}
func (p *QuotaStatementParams) GetType() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["type"].(int)
return value, ok
}
// You should always use this function to get a new QuotaStatementParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaStatementParams(account string, domainid string, enddate string, startdate string) *QuotaStatementParams {
p := &QuotaStatementParams{}
p.p = make(map[string]interface{})
p.p["account"] = account
p.p["domainid"] = domainid
p.p["enddate"] = enddate
p.p["startdate"] = startdate
return p
}
// Create a quota statement
func (s *QuotaService) QuotaStatement(p *QuotaStatementParams) (*QuotaStatementResponse, error) {
resp, err := s.cs.newRequest("quotaStatement", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaStatementResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaStatementResponse struct {
Statement QuotaStatementResponseType `json:"statement"`
}
type QuotaStatementResponseType struct {
QuotaUsage []QuotaUsage `json:"quotausage"`
TotalQuota float64 `json:"totalquota"`
StartDate string `json:"startdate"`
EndDate string `json:"enddate"`
Currency string `json:"currency"`
}
type QuotaUsage struct {
Type int `json:"type"`
Accountid int `json:"accountid"`
Domain int `json:"domain"`
Name string `json:"name"`
Unit string `json:"unit"`
Quota float64 `json:"quota"`
}
type QuotaSummaryParams struct {
p map[string]interface{}
}
func (p *QuotaSummaryParams) 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["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)
}
return u
}
func (p *QuotaSummaryParams) SetAccount(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["account"] = v
}
func (p *QuotaSummaryParams) ResetAccount() {
if p.p != nil && p.p["account"] != nil {
delete(p.p, "account")
}
}
func (p *QuotaSummaryParams) GetAccount() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["account"].(string)
return value, ok
}
func (p *QuotaSummaryParams) SetDomainid(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["domainid"] = v
}
func (p *QuotaSummaryParams) ResetDomainid() {
if p.p != nil && p.p["domainid"] != nil {
delete(p.p, "domainid")
}
}
func (p *QuotaSummaryParams) GetDomainid() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["domainid"].(string)
return value, ok
}
func (p *QuotaSummaryParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *QuotaSummaryParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *QuotaSummaryParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *QuotaSummaryParams) SetListall(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listall"] = v
}
func (p *QuotaSummaryParams) ResetListall() {
if p.p != nil && p.p["listall"] != nil {
delete(p.p, "listall")
}
}
func (p *QuotaSummaryParams) GetListall() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listall"].(bool)
return value, ok
}
func (p *QuotaSummaryParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *QuotaSummaryParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *QuotaSummaryParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *QuotaSummaryParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *QuotaSummaryParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *QuotaSummaryParams) 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 QuotaSummaryParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaSummaryParams() *QuotaSummaryParams {
p := &QuotaSummaryParams{}
p.p = make(map[string]interface{})
return p
}
// Lists balance and quota usage for all accounts
func (s *QuotaService) QuotaSummary(p *QuotaSummaryParams) (*QuotaSummaryResponse, error) {
resp, err := s.cs.newRequest("quotaSummary", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaSummaryResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaSummaryResponse struct {
Count int `json:"count"`
QuotaSummary []*QuotaSummary `json:"summary"`
}
type QuotaSummary struct {
Account string `json:"account"`
Accountid string `json:"accountid"`
Balance float64 `json:"balance"`
Currency string `json:"currency"`
Domain string `json:"domain"`
Domainid string `json:"domainid"`
Enddate string `json:"enddate"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Quota float64 `json:"quota"`
Quotaenabled bool `json:"quotaenabled"`
Startdate string `json:"startdate"`
State string `json:"state"`
}
type QuotaTariffCreateParams struct {
p map[string]interface{}
}
func (p *QuotaTariffCreateParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["activationrule"]; found {
u.Set("activationrule", v.(string))
}
if v, found := p.p["description"]; found {
u.Set("description", v.(string))
}
if v, found := p.p["enddate"]; found {
u.Set("enddate", v.(string))
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["position"]; found {
vv := strconv.Itoa(v.(int))
u.Set("position", vv)
}
if v, found := p.p["startdate"]; found {
u.Set("startdate", v.(string))
}
if v, found := p.p["usagetype"]; found {
vv := strconv.Itoa(v.(int))
u.Set("usagetype", vv)
}
if v, found := p.p["value"]; found {
vv := strconv.FormatFloat(v.(float64), 'f', -1, 64)
u.Set("value", vv)
}
return u
}
func (p *QuotaTariffCreateParams) SetActivationrule(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["activationrule"] = v
}
func (p *QuotaTariffCreateParams) ResetActivationrule() {
if p.p != nil && p.p["activationrule"] != nil {
delete(p.p, "activationrule")
}
}
func (p *QuotaTariffCreateParams) GetActivationrule() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["activationrule"].(string)
return value, ok
}
func (p *QuotaTariffCreateParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *QuotaTariffCreateParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *QuotaTariffCreateParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *QuotaTariffCreateParams) SetEnddate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["enddate"] = v
}
func (p *QuotaTariffCreateParams) ResetEnddate() {
if p.p != nil && p.p["enddate"] != nil {
delete(p.p, "enddate")
}
}
func (p *QuotaTariffCreateParams) GetEnddate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["enddate"].(string)
return value, ok
}
func (p *QuotaTariffCreateParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *QuotaTariffCreateParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *QuotaTariffCreateParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *QuotaTariffCreateParams) SetPosition(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["position"] = v
}
func (p *QuotaTariffCreateParams) ResetPosition() {
if p.p != nil && p.p["position"] != nil {
delete(p.p, "position")
}
}
func (p *QuotaTariffCreateParams) GetPosition() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["position"].(int)
return value, ok
}
func (p *QuotaTariffCreateParams) SetStartdate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["startdate"] = v
}
func (p *QuotaTariffCreateParams) ResetStartdate() {
if p.p != nil && p.p["startdate"] != nil {
delete(p.p, "startdate")
}
}
func (p *QuotaTariffCreateParams) GetStartdate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["startdate"].(string)
return value, ok
}
func (p *QuotaTariffCreateParams) SetUsagetype(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["usagetype"] = v
}
func (p *QuotaTariffCreateParams) ResetUsagetype() {
if p.p != nil && p.p["usagetype"] != nil {
delete(p.p, "usagetype")
}
}
func (p *QuotaTariffCreateParams) GetUsagetype() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["usagetype"].(int)
return value, ok
}
func (p *QuotaTariffCreateParams) SetValue(v float64) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["value"] = v
}
func (p *QuotaTariffCreateParams) ResetValue() {
if p.p != nil && p.p["value"] != nil {
delete(p.p, "value")
}
}
func (p *QuotaTariffCreateParams) GetValue() (float64, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["value"].(float64)
return value, ok
}
// You should always use this function to get a new QuotaTariffCreateParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaTariffCreateParams(name string, usagetype int, value float64) *QuotaTariffCreateParams {
p := &QuotaTariffCreateParams{}
p.p = make(map[string]interface{})
p.p["name"] = name
p.p["usagetype"] = usagetype
p.p["value"] = value
return p
}
// Creates a quota tariff for a resource.
func (s *QuotaService) QuotaTariffCreate(p *QuotaTariffCreateParams) (*QuotaTariffCreateResponse, error) {
resp, err := s.cs.newPostRequest("quotaTariffCreate", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaTariffCreateResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaTariffCreateResponse struct {
ActivationRule string `json:"activationRule"`
Currency string `json:"currency"`
Description string `json:"description"`
EffectiveDate string `json:"effectiveDate"`
EndDate string `json:"endDate"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Position int `json:"position"`
Removed string `json:"removed"`
TariffValue float64 `json:"tariffValue"`
UsageDiscriminator string `json:"usageDiscriminator"`
UsageName string `json:"usageName"`
UsageType int `json:"usageType"`
UsageTypeDescription string `json:"usageTypeDescription"`
UsageUnit string `json:"usageUnit"`
}
type QuotaTariffDeleteParams struct {
p map[string]interface{}
}
func (p *QuotaTariffDeleteParams) 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 *QuotaTariffDeleteParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *QuotaTariffDeleteParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *QuotaTariffDeleteParams) 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 QuotaTariffDeleteParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaTariffDeleteParams(id string) *QuotaTariffDeleteParams {
p := &QuotaTariffDeleteParams{}
p.p = make(map[string]interface{})
p.p["id"] = id
return p
}
// Marks a quota tariff as removed.
func (s *QuotaService) QuotaTariffDelete(p *QuotaTariffDeleteParams) (*QuotaTariffDeleteResponse, error) {
resp, err := s.cs.newRequest("quotaTariffDelete", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaTariffDeleteResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaTariffDeleteResponse struct {
Displaytext string `json:"displaytext"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Success bool `json:"success"`
}
func (r *QuotaTariffDeleteResponse) 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 QuotaTariffDeleteResponse
return json.Unmarshal(b, (*alias)(r))
}
type QuotaTariffListParams struct {
p map[string]interface{}
}
func (p *QuotaTariffListParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["enddate"]; found {
u.Set("enddate", v.(string))
}
if v, found := p.p["id"]; found {
u.Set("id", v.(string))
}
if v, found := p.p["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["listonlyremoved"]; found {
vv := strconv.FormatBool(v.(bool))
u.Set("listonlyremoved", vv)
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["page"]; found {
vv := strconv.Itoa(v.(int))
u.Set("page", vv)
}
if v, found := p.p["pagesize"]; found {
vv := strconv.Itoa(v.(int))
u.Set("pagesize", vv)
}
if v, found := p.p["startdate"]; found {
u.Set("startdate", v.(string))
}
if v, found := p.p["usagetype"]; found {
vv := strconv.Itoa(v.(int))
u.Set("usagetype", vv)
}
return u
}
func (p *QuotaTariffListParams) SetEnddate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["enddate"] = v
}
func (p *QuotaTariffListParams) ResetEnddate() {
if p.p != nil && p.p["enddate"] != nil {
delete(p.p, "enddate")
}
}
func (p *QuotaTariffListParams) GetEnddate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["enddate"].(string)
return value, ok
}
func (p *QuotaTariffListParams) SetId(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["id"] = v
}
func (p *QuotaTariffListParams) ResetId() {
if p.p != nil && p.p["id"] != nil {
delete(p.p, "id")
}
}
func (p *QuotaTariffListParams) GetId() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["id"].(string)
return value, ok
}
func (p *QuotaTariffListParams) SetKeyword(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["keyword"] = v
}
func (p *QuotaTariffListParams) ResetKeyword() {
if p.p != nil && p.p["keyword"] != nil {
delete(p.p, "keyword")
}
}
func (p *QuotaTariffListParams) GetKeyword() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["keyword"].(string)
return value, ok
}
func (p *QuotaTariffListParams) SetListall(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listall"] = v
}
func (p *QuotaTariffListParams) ResetListall() {
if p.p != nil && p.p["listall"] != nil {
delete(p.p, "listall")
}
}
func (p *QuotaTariffListParams) GetListall() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listall"].(bool)
return value, ok
}
func (p *QuotaTariffListParams) SetListonlyremoved(v bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["listonlyremoved"] = v
}
func (p *QuotaTariffListParams) ResetListonlyremoved() {
if p.p != nil && p.p["listonlyremoved"] != nil {
delete(p.p, "listonlyremoved")
}
}
func (p *QuotaTariffListParams) GetListonlyremoved() (bool, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["listonlyremoved"].(bool)
return value, ok
}
func (p *QuotaTariffListParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *QuotaTariffListParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *QuotaTariffListParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *QuotaTariffListParams) SetPage(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["page"] = v
}
func (p *QuotaTariffListParams) ResetPage() {
if p.p != nil && p.p["page"] != nil {
delete(p.p, "page")
}
}
func (p *QuotaTariffListParams) GetPage() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["page"].(int)
return value, ok
}
func (p *QuotaTariffListParams) SetPagesize(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["pagesize"] = v
}
func (p *QuotaTariffListParams) ResetPagesize() {
if p.p != nil && p.p["pagesize"] != nil {
delete(p.p, "pagesize")
}
}
func (p *QuotaTariffListParams) GetPagesize() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["pagesize"].(int)
return value, ok
}
func (p *QuotaTariffListParams) SetStartdate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["startdate"] = v
}
func (p *QuotaTariffListParams) ResetStartdate() {
if p.p != nil && p.p["startdate"] != nil {
delete(p.p, "startdate")
}
}
func (p *QuotaTariffListParams) GetStartdate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["startdate"].(string)
return value, ok
}
func (p *QuotaTariffListParams) SetUsagetype(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["usagetype"] = v
}
func (p *QuotaTariffListParams) ResetUsagetype() {
if p.p != nil && p.p["usagetype"] != nil {
delete(p.p, "usagetype")
}
}
func (p *QuotaTariffListParams) GetUsagetype() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["usagetype"].(int)
return value, ok
}
// You should always use this function to get a new QuotaTariffListParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaTariffListParams() *QuotaTariffListParams {
p := &QuotaTariffListParams{}
p.p = make(map[string]interface{})
return p
}
// Lists all quota tariff plans
func (s *QuotaService) QuotaTariffList(p *QuotaTariffListParams) (*QuotaTariffListResponse, error) {
resp, err := s.cs.newRequest("quotaTariffList", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaTariffListResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaTariffListResponse struct {
Count int `json:"count"`
QuotaTariffList []*QuotaTariffList `json:"quotatariff"`
}
type QuotaTariffList struct {
ActivationRule string `json:"activationRule"`
Currency string `json:"currency"`
Description string `json:"description"`
EffectiveDate string `json:"effectiveDate"`
EndDate string `json:"endDate"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Position int `json:"position"`
Removed string `json:"removed"`
TariffValue float64 `json:"tariffValue"`
UsageDiscriminator string `json:"usageDiscriminator"`
UsageName string `json:"usageName"`
UsageType int `json:"usageType"`
UsageTypeDescription string `json:"usageTypeDescription"`
UsageUnit string `json:"usageUnit"`
}
type QuotaTariffUpdateParams struct {
p map[string]interface{}
}
func (p *QuotaTariffUpdateParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
if v, found := p.p["activationrule"]; found {
u.Set("activationrule", v.(string))
}
if v, found := p.p["description"]; found {
u.Set("description", v.(string))
}
if v, found := p.p["enddate"]; found {
u.Set("enddate", v.(string))
}
if v, found := p.p["name"]; found {
u.Set("name", v.(string))
}
if v, found := p.p["position"]; found {
vv := strconv.Itoa(v.(int))
u.Set("position", vv)
}
if v, found := p.p["startdate"]; found {
u.Set("startdate", v.(string))
}
if v, found := p.p["usagetype"]; found {
vv := strconv.Itoa(v.(int))
u.Set("usagetype", vv)
}
if v, found := p.p["value"]; found {
vv := strconv.FormatFloat(v.(float64), 'f', -1, 64)
u.Set("value", vv)
}
return u
}
func (p *QuotaTariffUpdateParams) SetActivationrule(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["activationrule"] = v
}
func (p *QuotaTariffUpdateParams) ResetActivationrule() {
if p.p != nil && p.p["activationrule"] != nil {
delete(p.p, "activationrule")
}
}
func (p *QuotaTariffUpdateParams) GetActivationrule() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["activationrule"].(string)
return value, ok
}
func (p *QuotaTariffUpdateParams) SetDescription(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["description"] = v
}
func (p *QuotaTariffUpdateParams) ResetDescription() {
if p.p != nil && p.p["description"] != nil {
delete(p.p, "description")
}
}
func (p *QuotaTariffUpdateParams) GetDescription() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["description"].(string)
return value, ok
}
func (p *QuotaTariffUpdateParams) SetEnddate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["enddate"] = v
}
func (p *QuotaTariffUpdateParams) ResetEnddate() {
if p.p != nil && p.p["enddate"] != nil {
delete(p.p, "enddate")
}
}
func (p *QuotaTariffUpdateParams) GetEnddate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["enddate"].(string)
return value, ok
}
func (p *QuotaTariffUpdateParams) SetName(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["name"] = v
}
func (p *QuotaTariffUpdateParams) ResetName() {
if p.p != nil && p.p["name"] != nil {
delete(p.p, "name")
}
}
func (p *QuotaTariffUpdateParams) GetName() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["name"].(string)
return value, ok
}
func (p *QuotaTariffUpdateParams) SetPosition(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["position"] = v
}
func (p *QuotaTariffUpdateParams) ResetPosition() {
if p.p != nil && p.p["position"] != nil {
delete(p.p, "position")
}
}
func (p *QuotaTariffUpdateParams) GetPosition() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["position"].(int)
return value, ok
}
func (p *QuotaTariffUpdateParams) SetStartdate(v string) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["startdate"] = v
}
func (p *QuotaTariffUpdateParams) ResetStartdate() {
if p.p != nil && p.p["startdate"] != nil {
delete(p.p, "startdate")
}
}
func (p *QuotaTariffUpdateParams) GetStartdate() (string, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["startdate"].(string)
return value, ok
}
func (p *QuotaTariffUpdateParams) SetUsagetype(v int) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["usagetype"] = v
}
func (p *QuotaTariffUpdateParams) ResetUsagetype() {
if p.p != nil && p.p["usagetype"] != nil {
delete(p.p, "usagetype")
}
}
func (p *QuotaTariffUpdateParams) GetUsagetype() (int, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["usagetype"].(int)
return value, ok
}
func (p *QuotaTariffUpdateParams) SetValue(v float64) {
if p.p == nil {
p.p = make(map[string]interface{})
}
p.p["value"] = v
}
func (p *QuotaTariffUpdateParams) ResetValue() {
if p.p != nil && p.p["value"] != nil {
delete(p.p, "value")
}
}
func (p *QuotaTariffUpdateParams) GetValue() (float64, bool) {
if p.p == nil {
p.p = make(map[string]interface{})
}
value, ok := p.p["value"].(float64)
return value, ok
}
// You should always use this function to get a new QuotaTariffUpdateParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaTariffUpdateParams(name string) *QuotaTariffUpdateParams {
p := &QuotaTariffUpdateParams{}
p.p = make(map[string]interface{})
p.p["name"] = name
return p
}
// Update the tariff plan for a resource
func (s *QuotaService) QuotaTariffUpdate(p *QuotaTariffUpdateParams) (*QuotaTariffUpdateResponse, error) {
resp, err := s.cs.newRequest("quotaTariffUpdate", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaTariffUpdateResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaTariffUpdateResponse struct {
ActivationRule string `json:"activationRule"`
Currency string `json:"currency"`
Description string `json:"description"`
EffectiveDate string `json:"effectiveDate"`
EndDate string `json:"endDate"`
Id string `json:"id"`
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Name string `json:"name"`
Position int `json:"position"`
Removed string `json:"removed"`
TariffValue float64 `json:"tariffValue"`
UsageDiscriminator string `json:"usageDiscriminator"`
UsageName string `json:"usageName"`
UsageType int `json:"usageType"`
UsageTypeDescription string `json:"usageTypeDescription"`
UsageUnit string `json:"usageUnit"`
}
type QuotaUpdateParams struct {
p map[string]interface{}
}
func (p *QuotaUpdateParams) toURLValues() url.Values {
u := url.Values{}
if p.p == nil {
return u
}
return u
}
// You should always use this function to get a new QuotaUpdateParams instance,
// as then you are sure you have configured all required params
func (s *QuotaService) NewQuotaUpdateParams() *QuotaUpdateParams {
p := &QuotaUpdateParams{}
p.p = make(map[string]interface{})
return p
}
// Update quota calculations, alerts and statements
func (s *QuotaService) QuotaUpdate(p *QuotaUpdateParams) (*QuotaUpdateResponse, error) {
resp, err := s.cs.newRequest("quotaUpdate", p.toURLValues())
if err != nil {
return nil, err
}
var r QuotaUpdateResponse
if err := json.Unmarshal(resp, &r); err != nil {
return nil, err
}
return &r, nil
}
type QuotaUpdateResponse struct {
JobID string `json:"jobid"`
Jobstatus int `json:"jobstatus"`
Updated_on string `json:"updated_on"`
}