123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760 |
- //
- // Copyright 2016, Sander van Harmelen
- //
- // Licensed 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 CreateCounterParams struct {
- p map[string]interface{}
- }
- func (p *CreateCounterParams) toURLValues() url.Values {
- u := url.Values{}
- if p.p == nil {
- return u
- }
- if v, found := p.p["name"]; found {
- u.Set("name", v.(string))
- }
- if v, found := p.p["source"]; found {
- u.Set("source", v.(string))
- }
- if v, found := p.p["value"]; found {
- u.Set("value", v.(string))
- }
- return u
- }
- func (p *CreateCounterParams) SetName(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["name"] = v
- return
- }
- func (p *CreateCounterParams) SetSource(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["source"] = v
- return
- }
- func (p *CreateCounterParams) SetValue(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["value"] = v
- return
- }
- // You should always use this function to get a new CreateCounterParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewCreateCounterParams(name string, source string, value string) *CreateCounterParams {
- p := &CreateCounterParams{}
- p.p = make(map[string]interface{})
- p.p["name"] = name
- p.p["source"] = source
- p.p["value"] = value
- return p
- }
- // Adds metric counter
- func (s *AutoScaleService) CreateCounter(p *CreateCounterParams) (*CreateCounterResponse, error) {
- resp, err := s.cs.newRequest("createCounter", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r CreateCounterResponse
- 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 CreateCounterResponse struct {
- JobID string `json:"jobid,omitempty"`
- Id string `json:"id,omitempty"`
- Name string `json:"name,omitempty"`
- Source string `json:"source,omitempty"`
- Value string `json:"value,omitempty"`
- Zoneid string `json:"zoneid,omitempty"`
- }
- type CreateConditionParams struct {
- p map[string]interface{}
- }
- func (p *CreateConditionParams) 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["counterid"]; found {
- u.Set("counterid", v.(string))
- }
- if v, found := p.p["domainid"]; found {
- u.Set("domainid", v.(string))
- }
- if v, found := p.p["relationaloperator"]; found {
- u.Set("relationaloperator", v.(string))
- }
- if v, found := p.p["threshold"]; found {
- vv := strconv.FormatInt(v.(int64), 10)
- u.Set("threshold", vv)
- }
- return u
- }
- func (p *CreateConditionParams) SetAccount(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["account"] = v
- return
- }
- func (p *CreateConditionParams) SetCounterid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["counterid"] = v
- return
- }
- func (p *CreateConditionParams) SetDomainid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["domainid"] = v
- return
- }
- func (p *CreateConditionParams) SetRelationaloperator(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["relationaloperator"] = v
- return
- }
- func (p *CreateConditionParams) SetThreshold(v int64) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["threshold"] = v
- return
- }
- // You should always use this function to get a new CreateConditionParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewCreateConditionParams(counterid string, relationaloperator string, threshold int64) *CreateConditionParams {
- p := &CreateConditionParams{}
- p.p = make(map[string]interface{})
- p.p["counterid"] = counterid
- p.p["relationaloperator"] = relationaloperator
- p.p["threshold"] = threshold
- return p
- }
- // Creates a condition
- func (s *AutoScaleService) CreateCondition(p *CreateConditionParams) (*CreateConditionResponse, error) {
- resp, err := s.cs.newRequest("createCondition", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r CreateConditionResponse
- 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 CreateConditionResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Counter []string `json:"counter,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Id string `json:"id,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Relationaloperator string `json:"relationaloperator,omitempty"`
- Threshold int64 `json:"threshold,omitempty"`
- Zoneid string `json:"zoneid,omitempty"`
- }
- type CreateAutoScalePolicyParams struct {
- p map[string]interface{}
- }
- func (p *CreateAutoScalePolicyParams) toURLValues() url.Values {
- u := url.Values{}
- if p.p == nil {
- return u
- }
- if v, found := p.p["action"]; found {
- u.Set("action", v.(string))
- }
- if v, found := p.p["conditionids"]; found {
- vv := strings.Join(v.([]string), ",")
- u.Set("conditionids", vv)
- }
- if v, found := p.p["duration"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("duration", vv)
- }
- if v, found := p.p["quiettime"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("quiettime", vv)
- }
- return u
- }
- func (p *CreateAutoScalePolicyParams) SetAction(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["action"] = v
- return
- }
- func (p *CreateAutoScalePolicyParams) SetConditionids(v []string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["conditionids"] = v
- return
- }
- func (p *CreateAutoScalePolicyParams) SetDuration(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["duration"] = v
- return
- }
- func (p *CreateAutoScalePolicyParams) SetQuiettime(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["quiettime"] = v
- return
- }
- // You should always use this function to get a new CreateAutoScalePolicyParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewCreateAutoScalePolicyParams(action string, conditionids []string, duration int) *CreateAutoScalePolicyParams {
- p := &CreateAutoScalePolicyParams{}
- p.p = make(map[string]interface{})
- p.p["action"] = action
- p.p["conditionids"] = conditionids
- p.p["duration"] = duration
- return p
- }
- // Creates an autoscale policy for a provision or deprovision action, the action is taken when the all the conditions evaluates to true for the specified duration. The policy is in effect once it is attached to a autscale vm group.
- func (s *AutoScaleService) CreateAutoScalePolicy(p *CreateAutoScalePolicyParams) (*CreateAutoScalePolicyResponse, error) {
- resp, err := s.cs.newRequest("createAutoScalePolicy", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r CreateAutoScalePolicyResponse
- 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 CreateAutoScalePolicyResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Action string `json:"action,omitempty"`
- Conditions []string `json:"conditions,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Duration int `json:"duration,omitempty"`
- Id string `json:"id,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Quiettime int `json:"quiettime,omitempty"`
- }
- type CreateAutoScaleVmProfileParams struct {
- p map[string]interface{}
- }
- func (p *CreateAutoScaleVmProfileParams) toURLValues() url.Values {
- u := url.Values{}
- if p.p == nil {
- return u
- }
- if v, found := p.p["autoscaleuserid"]; found {
- u.Set("autoscaleuserid", v.(string))
- }
- if v, found := p.p["counterparam"]; found {
- i := 0
- for k, vv := range v.(map[string]string) {
- u.Set(fmt.Sprintf("counterparam[%d].key", i), k)
- u.Set(fmt.Sprintf("counterparam[%d].value", i), vv)
- i++
- }
- }
- if v, found := p.p["destroyvmgraceperiod"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("destroyvmgraceperiod", vv)
- }
- if v, found := p.p["fordisplay"]; found {
- vv := strconv.FormatBool(v.(bool))
- u.Set("fordisplay", vv)
- }
- if v, found := p.p["otherdeployparams"]; found {
- u.Set("otherdeployparams", 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 *CreateAutoScaleVmProfileParams) SetAutoscaleuserid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["autoscaleuserid"] = v
- return
- }
- func (p *CreateAutoScaleVmProfileParams) SetCounterparam(v map[string]string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["counterparam"] = v
- return
- }
- func (p *CreateAutoScaleVmProfileParams) SetDestroyvmgraceperiod(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["destroyvmgraceperiod"] = v
- return
- }
- func (p *CreateAutoScaleVmProfileParams) SetFordisplay(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["fordisplay"] = v
- return
- }
- func (p *CreateAutoScaleVmProfileParams) SetOtherdeployparams(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["otherdeployparams"] = v
- return
- }
- func (p *CreateAutoScaleVmProfileParams) SetServiceofferingid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["serviceofferingid"] = v
- return
- }
- func (p *CreateAutoScaleVmProfileParams) SetTemplateid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["templateid"] = v
- return
- }
- func (p *CreateAutoScaleVmProfileParams) SetZoneid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["zoneid"] = v
- return
- }
- // You should always use this function to get a new CreateAutoScaleVmProfileParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewCreateAutoScaleVmProfileParams(serviceofferingid string, templateid string, zoneid string) *CreateAutoScaleVmProfileParams {
- p := &CreateAutoScaleVmProfileParams{}
- p.p = make(map[string]interface{})
- p.p["serviceofferingid"] = serviceofferingid
- p.p["templateid"] = templateid
- p.p["zoneid"] = zoneid
- return p
- }
- // Creates a profile that contains information about the virtual machine which will be provisioned automatically by autoscale feature.
- func (s *AutoScaleService) CreateAutoScaleVmProfile(p *CreateAutoScaleVmProfileParams) (*CreateAutoScaleVmProfileResponse, error) {
- resp, err := s.cs.newRequest("createAutoScaleVmProfile", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r CreateAutoScaleVmProfileResponse
- 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 CreateAutoScaleVmProfileResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Autoscaleuserid string `json:"autoscaleuserid,omitempty"`
- Destroyvmgraceperiod int `json:"destroyvmgraceperiod,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Fordisplay bool `json:"fordisplay,omitempty"`
- Id string `json:"id,omitempty"`
- Otherdeployparams string `json:"otherdeployparams,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Serviceofferingid string `json:"serviceofferingid,omitempty"`
- Templateid string `json:"templateid,omitempty"`
- Zoneid string `json:"zoneid,omitempty"`
- }
- type CreateAutoScaleVmGroupParams struct {
- p map[string]interface{}
- }
- func (p *CreateAutoScaleVmGroupParams) 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["interval"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("interval", vv)
- }
- if v, found := p.p["lbruleid"]; found {
- u.Set("lbruleid", v.(string))
- }
- if v, found := p.p["maxmembers"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("maxmembers", vv)
- }
- if v, found := p.p["minmembers"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("minmembers", vv)
- }
- if v, found := p.p["scaledownpolicyids"]; found {
- vv := strings.Join(v.([]string), ",")
- u.Set("scaledownpolicyids", vv)
- }
- if v, found := p.p["scaleuppolicyids"]; found {
- vv := strings.Join(v.([]string), ",")
- u.Set("scaleuppolicyids", vv)
- }
- if v, found := p.p["vmprofileid"]; found {
- u.Set("vmprofileid", v.(string))
- }
- return u
- }
- func (p *CreateAutoScaleVmGroupParams) SetFordisplay(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["fordisplay"] = v
- return
- }
- func (p *CreateAutoScaleVmGroupParams) SetInterval(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["interval"] = v
- return
- }
- func (p *CreateAutoScaleVmGroupParams) SetLbruleid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["lbruleid"] = v
- return
- }
- func (p *CreateAutoScaleVmGroupParams) SetMaxmembers(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["maxmembers"] = v
- return
- }
- func (p *CreateAutoScaleVmGroupParams) SetMinmembers(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["minmembers"] = v
- return
- }
- func (p *CreateAutoScaleVmGroupParams) SetScaledownpolicyids(v []string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["scaledownpolicyids"] = v
- return
- }
- func (p *CreateAutoScaleVmGroupParams) SetScaleuppolicyids(v []string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["scaleuppolicyids"] = v
- return
- }
- func (p *CreateAutoScaleVmGroupParams) SetVmprofileid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["vmprofileid"] = v
- return
- }
- // You should always use this function to get a new CreateAutoScaleVmGroupParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewCreateAutoScaleVmGroupParams(lbruleid string, maxmembers int, minmembers int, scaledownpolicyids []string, scaleuppolicyids []string, vmprofileid string) *CreateAutoScaleVmGroupParams {
- p := &CreateAutoScaleVmGroupParams{}
- p.p = make(map[string]interface{})
- p.p["lbruleid"] = lbruleid
- p.p["maxmembers"] = maxmembers
- p.p["minmembers"] = minmembers
- p.p["scaledownpolicyids"] = scaledownpolicyids
- p.p["scaleuppolicyids"] = scaleuppolicyids
- p.p["vmprofileid"] = vmprofileid
- return p
- }
- // Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.
- func (s *AutoScaleService) CreateAutoScaleVmGroup(p *CreateAutoScaleVmGroupParams) (*CreateAutoScaleVmGroupResponse, error) {
- resp, err := s.cs.newRequest("createAutoScaleVmGroup", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r CreateAutoScaleVmGroupResponse
- 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 CreateAutoScaleVmGroupResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Fordisplay bool `json:"fordisplay,omitempty"`
- Id string `json:"id,omitempty"`
- Interval int `json:"interval,omitempty"`
- Lbruleid string `json:"lbruleid,omitempty"`
- Maxmembers int `json:"maxmembers,omitempty"`
- Minmembers int `json:"minmembers,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Scaledownpolicies []string `json:"scaledownpolicies,omitempty"`
- Scaleuppolicies []string `json:"scaleuppolicies,omitempty"`
- State string `json:"state,omitempty"`
- Vmprofileid string `json:"vmprofileid,omitempty"`
- }
- type DeleteCounterParams struct {
- p map[string]interface{}
- }
- func (p *DeleteCounterParams) 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 *DeleteCounterParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- // You should always use this function to get a new DeleteCounterParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewDeleteCounterParams(id string) *DeleteCounterParams {
- p := &DeleteCounterParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Deletes a counter
- func (s *AutoScaleService) DeleteCounter(p *DeleteCounterParams) (*DeleteCounterResponse, error) {
- resp, err := s.cs.newRequest("deleteCounter", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r DeleteCounterResponse
- 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 DeleteCounterResponse struct {
- JobID string `json:"jobid,omitempty"`
- Displaytext string `json:"displaytext,omitempty"`
- Success bool `json:"success,omitempty"`
- }
- type DeleteConditionParams struct {
- p map[string]interface{}
- }
- func (p *DeleteConditionParams) 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 *DeleteConditionParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- // You should always use this function to get a new DeleteConditionParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewDeleteConditionParams(id string) *DeleteConditionParams {
- p := &DeleteConditionParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Removes a condition
- func (s *AutoScaleService) DeleteCondition(p *DeleteConditionParams) (*DeleteConditionResponse, error) {
- resp, err := s.cs.newRequest("deleteCondition", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r DeleteConditionResponse
- 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 DeleteConditionResponse struct {
- JobID string `json:"jobid,omitempty"`
- Displaytext string `json:"displaytext,omitempty"`
- Success bool `json:"success,omitempty"`
- }
- type DeleteAutoScalePolicyParams struct {
- p map[string]interface{}
- }
- func (p *DeleteAutoScalePolicyParams) 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 *DeleteAutoScalePolicyParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- // You should always use this function to get a new DeleteAutoScalePolicyParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewDeleteAutoScalePolicyParams(id string) *DeleteAutoScalePolicyParams {
- p := &DeleteAutoScalePolicyParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Deletes a autoscale policy.
- func (s *AutoScaleService) DeleteAutoScalePolicy(p *DeleteAutoScalePolicyParams) (*DeleteAutoScalePolicyResponse, error) {
- resp, err := s.cs.newRequest("deleteAutoScalePolicy", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r DeleteAutoScalePolicyResponse
- 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 DeleteAutoScalePolicyResponse struct {
- JobID string `json:"jobid,omitempty"`
- Displaytext string `json:"displaytext,omitempty"`
- Success bool `json:"success,omitempty"`
- }
- type DeleteAutoScaleVmProfileParams struct {
- p map[string]interface{}
- }
- func (p *DeleteAutoScaleVmProfileParams) 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 *DeleteAutoScaleVmProfileParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- // You should always use this function to get a new DeleteAutoScaleVmProfileParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewDeleteAutoScaleVmProfileParams(id string) *DeleteAutoScaleVmProfileParams {
- p := &DeleteAutoScaleVmProfileParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Deletes a autoscale vm profile.
- func (s *AutoScaleService) DeleteAutoScaleVmProfile(p *DeleteAutoScaleVmProfileParams) (*DeleteAutoScaleVmProfileResponse, error) {
- resp, err := s.cs.newRequest("deleteAutoScaleVmProfile", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r DeleteAutoScaleVmProfileResponse
- 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 DeleteAutoScaleVmProfileResponse struct {
- JobID string `json:"jobid,omitempty"`
- Displaytext string `json:"displaytext,omitempty"`
- Success bool `json:"success,omitempty"`
- }
- type DeleteAutoScaleVmGroupParams struct {
- p map[string]interface{}
- }
- func (p *DeleteAutoScaleVmGroupParams) 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 *DeleteAutoScaleVmGroupParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- // You should always use this function to get a new DeleteAutoScaleVmGroupParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewDeleteAutoScaleVmGroupParams(id string) *DeleteAutoScaleVmGroupParams {
- p := &DeleteAutoScaleVmGroupParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Deletes a autoscale vm group.
- func (s *AutoScaleService) DeleteAutoScaleVmGroup(p *DeleteAutoScaleVmGroupParams) (*DeleteAutoScaleVmGroupResponse, error) {
- resp, err := s.cs.newRequest("deleteAutoScaleVmGroup", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r DeleteAutoScaleVmGroupResponse
- 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 DeleteAutoScaleVmGroupResponse struct {
- JobID string `json:"jobid,omitempty"`
- Displaytext string `json:"displaytext,omitempty"`
- Success bool `json:"success,omitempty"`
- }
- type ListCountersParams struct {
- p map[string]interface{}
- }
- func (p *ListCountersParams) toURLValues() url.Values {
- u := url.Values{}
- if p.p == nil {
- return u
- }
- if v, found := p.p["id"]; found {
- u.Set("id", v.(string))
- }
- if v, found := p.p["keyword"]; found {
- u.Set("keyword", v.(string))
- }
- if v, found := p.p["name"]; found {
- u.Set("name", v.(string))
- }
- if v, found := p.p["page"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("page", vv)
- }
- if v, found := p.p["pagesize"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("pagesize", vv)
- }
- if v, found := p.p["source"]; found {
- u.Set("source", v.(string))
- }
- return u
- }
- func (p *ListCountersParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- func (p *ListCountersParams) SetKeyword(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["keyword"] = v
- return
- }
- func (p *ListCountersParams) SetName(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["name"] = v
- return
- }
- func (p *ListCountersParams) SetPage(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["page"] = v
- return
- }
- func (p *ListCountersParams) SetPagesize(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["pagesize"] = v
- return
- }
- func (p *ListCountersParams) SetSource(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["source"] = v
- return
- }
- // You should always use this function to get a new ListCountersParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewListCountersParams() *ListCountersParams {
- p := &ListCountersParams{}
- 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 *AutoScaleService) GetCounterID(name string, opts ...OptionFunc) (string, int, error) {
- p := &ListCountersParams{}
- p.p = make(map[string]interface{})
- p.p["name"] = name
- for _, fn := range opts {
- if err := fn(s.cs, p); err != nil {
- return "", -1, err
- }
- }
- l, err := s.ListCounters(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.Counters[0].Id, l.Count, nil
- }
- if l.Count > 1 {
- for _, v := range l.Counters {
- 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 *AutoScaleService) GetCounterByName(name string, opts ...OptionFunc) (*Counter, int, error) {
- id, count, err := s.GetCounterID(name, opts...)
- if err != nil {
- return nil, count, err
- }
- r, count, err := s.GetCounterByID(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 *AutoScaleService) GetCounterByID(id string, opts ...OptionFunc) (*Counter, int, error) {
- p := &ListCountersParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- for _, fn := range opts {
- if err := fn(s.cs, p); err != nil {
- return nil, -1, err
- }
- }
- l, err := s.ListCounters(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.Counters[0], l.Count, nil
- }
- return nil, l.Count, fmt.Errorf("There is more then one result for Counter UUID: %s!", id)
- }
- // List the counters
- func (s *AutoScaleService) ListCounters(p *ListCountersParams) (*ListCountersResponse, error) {
- resp, err := s.cs.newRequest("listCounters", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r ListCountersResponse
- if err := json.Unmarshal(resp, &r); err != nil {
- return nil, err
- }
- return &r, nil
- }
- type ListCountersResponse struct {
- Count int `json:"count"`
- Counters []*Counter `json:"counter"`
- }
- type Counter struct {
- Id string `json:"id,omitempty"`
- Name string `json:"name,omitempty"`
- Source string `json:"source,omitempty"`
- Value string `json:"value,omitempty"`
- Zoneid string `json:"zoneid,omitempty"`
- }
- type ListConditionsParams struct {
- p map[string]interface{}
- }
- func (p *ListConditionsParams) 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["counterid"]; found {
- u.Set("counterid", 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["policyid"]; found {
- u.Set("policyid", v.(string))
- }
- return u
- }
- func (p *ListConditionsParams) SetAccount(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["account"] = v
- return
- }
- func (p *ListConditionsParams) SetCounterid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["counterid"] = v
- return
- }
- func (p *ListConditionsParams) SetDomainid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["domainid"] = v
- return
- }
- func (p *ListConditionsParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- func (p *ListConditionsParams) SetIsrecursive(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["isrecursive"] = v
- return
- }
- func (p *ListConditionsParams) SetKeyword(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["keyword"] = v
- return
- }
- func (p *ListConditionsParams) SetListall(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["listall"] = v
- return
- }
- func (p *ListConditionsParams) SetPage(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["page"] = v
- return
- }
- func (p *ListConditionsParams) SetPagesize(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["pagesize"] = v
- return
- }
- func (p *ListConditionsParams) SetPolicyid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["policyid"] = v
- return
- }
- // You should always use this function to get a new ListConditionsParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewListConditionsParams() *ListConditionsParams {
- p := &ListConditionsParams{}
- 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 *AutoScaleService) GetConditionByID(id string, opts ...OptionFunc) (*Condition, int, error) {
- p := &ListConditionsParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- for _, fn := range opts {
- if err := fn(s.cs, p); err != nil {
- return nil, -1, err
- }
- }
- l, err := s.ListConditions(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.Conditions[0], l.Count, nil
- }
- return nil, l.Count, fmt.Errorf("There is more then one result for Condition UUID: %s!", id)
- }
- // List Conditions for the specific user
- func (s *AutoScaleService) ListConditions(p *ListConditionsParams) (*ListConditionsResponse, error) {
- resp, err := s.cs.newRequest("listConditions", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r ListConditionsResponse
- if err := json.Unmarshal(resp, &r); err != nil {
- return nil, err
- }
- return &r, nil
- }
- type ListConditionsResponse struct {
- Count int `json:"count"`
- Conditions []*Condition `json:"condition"`
- }
- type Condition struct {
- Account string `json:"account,omitempty"`
- Counter []string `json:"counter,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Id string `json:"id,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Relationaloperator string `json:"relationaloperator,omitempty"`
- Threshold int64 `json:"threshold,omitempty"`
- Zoneid string `json:"zoneid,omitempty"`
- }
- type ListAutoScalePoliciesParams struct {
- p map[string]interface{}
- }
- func (p *ListAutoScalePoliciesParams) 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["action"]; found {
- u.Set("action", v.(string))
- }
- if v, found := p.p["conditionid"]; found {
- u.Set("conditionid", 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["vmgroupid"]; found {
- u.Set("vmgroupid", v.(string))
- }
- return u
- }
- func (p *ListAutoScalePoliciesParams) SetAccount(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["account"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetAction(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["action"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetConditionid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["conditionid"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetDomainid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["domainid"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetIsrecursive(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["isrecursive"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetKeyword(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["keyword"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetListall(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["listall"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetPage(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["page"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetPagesize(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["pagesize"] = v
- return
- }
- func (p *ListAutoScalePoliciesParams) SetVmgroupid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["vmgroupid"] = v
- return
- }
- // You should always use this function to get a new ListAutoScalePoliciesParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewListAutoScalePoliciesParams() *ListAutoScalePoliciesParams {
- p := &ListAutoScalePoliciesParams{}
- 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 *AutoScaleService) GetAutoScalePolicyByID(id string, opts ...OptionFunc) (*AutoScalePolicy, int, error) {
- p := &ListAutoScalePoliciesParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- for _, fn := range opts {
- if err := fn(s.cs, p); err != nil {
- return nil, -1, err
- }
- }
- l, err := s.ListAutoScalePolicies(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.AutoScalePolicies[0], l.Count, nil
- }
- return nil, l.Count, fmt.Errorf("There is more then one result for AutoScalePolicy UUID: %s!", id)
- }
- // Lists autoscale policies.
- func (s *AutoScaleService) ListAutoScalePolicies(p *ListAutoScalePoliciesParams) (*ListAutoScalePoliciesResponse, error) {
- resp, err := s.cs.newRequest("listAutoScalePolicies", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r ListAutoScalePoliciesResponse
- if err := json.Unmarshal(resp, &r); err != nil {
- return nil, err
- }
- return &r, nil
- }
- type ListAutoScalePoliciesResponse struct {
- Count int `json:"count"`
- AutoScalePolicies []*AutoScalePolicy `json:"autoscalepolicy"`
- }
- type AutoScalePolicy struct {
- Account string `json:"account,omitempty"`
- Action string `json:"action,omitempty"`
- Conditions []string `json:"conditions,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Duration int `json:"duration,omitempty"`
- Id string `json:"id,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Quiettime int `json:"quiettime,omitempty"`
- }
- type ListAutoScaleVmProfilesParams struct {
- p map[string]interface{}
- }
- func (p *ListAutoScaleVmProfilesParams) 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["otherdeployparams"]; found {
- u.Set("otherdeployparams", 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["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 *ListAutoScaleVmProfilesParams) SetAccount(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["account"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetDomainid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["domainid"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetFordisplay(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["fordisplay"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetIsrecursive(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["isrecursive"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetKeyword(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["keyword"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetListall(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["listall"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetOtherdeployparams(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["otherdeployparams"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetPage(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["page"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetPagesize(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["pagesize"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetProjectid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["projectid"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetServiceofferingid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["serviceofferingid"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetTemplateid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["templateid"] = v
- return
- }
- func (p *ListAutoScaleVmProfilesParams) SetZoneid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["zoneid"] = v
- return
- }
- // You should always use this function to get a new ListAutoScaleVmProfilesParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewListAutoScaleVmProfilesParams() *ListAutoScaleVmProfilesParams {
- p := &ListAutoScaleVmProfilesParams{}
- 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 *AutoScaleService) GetAutoScaleVmProfileByID(id string, opts ...OptionFunc) (*AutoScaleVmProfile, int, error) {
- p := &ListAutoScaleVmProfilesParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- for _, fn := range opts {
- if err := fn(s.cs, p); err != nil {
- return nil, -1, err
- }
- }
- l, err := s.ListAutoScaleVmProfiles(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.AutoScaleVmProfiles[0], l.Count, nil
- }
- return nil, l.Count, fmt.Errorf("There is more then one result for AutoScaleVmProfile UUID: %s!", id)
- }
- // Lists autoscale vm profiles.
- func (s *AutoScaleService) ListAutoScaleVmProfiles(p *ListAutoScaleVmProfilesParams) (*ListAutoScaleVmProfilesResponse, error) {
- resp, err := s.cs.newRequest("listAutoScaleVmProfiles", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r ListAutoScaleVmProfilesResponse
- if err := json.Unmarshal(resp, &r); err != nil {
- return nil, err
- }
- return &r, nil
- }
- type ListAutoScaleVmProfilesResponse struct {
- Count int `json:"count"`
- AutoScaleVmProfiles []*AutoScaleVmProfile `json:"autoscalevmprofile"`
- }
- type AutoScaleVmProfile struct {
- Account string `json:"account,omitempty"`
- Autoscaleuserid string `json:"autoscaleuserid,omitempty"`
- Destroyvmgraceperiod int `json:"destroyvmgraceperiod,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Fordisplay bool `json:"fordisplay,omitempty"`
- Id string `json:"id,omitempty"`
- Otherdeployparams string `json:"otherdeployparams,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Serviceofferingid string `json:"serviceofferingid,omitempty"`
- Templateid string `json:"templateid,omitempty"`
- Zoneid string `json:"zoneid,omitempty"`
- }
- type ListAutoScaleVmGroupsParams struct {
- p map[string]interface{}
- }
- func (p *ListAutoScaleVmGroupsParams) 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["lbruleid"]; found {
- u.Set("lbruleid", 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["policyid"]; found {
- u.Set("policyid", v.(string))
- }
- if v, found := p.p["projectid"]; found {
- u.Set("projectid", v.(string))
- }
- if v, found := p.p["vmprofileid"]; found {
- u.Set("vmprofileid", v.(string))
- }
- if v, found := p.p["zoneid"]; found {
- u.Set("zoneid", v.(string))
- }
- return u
- }
- func (p *ListAutoScaleVmGroupsParams) SetAccount(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["account"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetDomainid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["domainid"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetFordisplay(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["fordisplay"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetIsrecursive(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["isrecursive"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetKeyword(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["keyword"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetLbruleid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["lbruleid"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetListall(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["listall"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetPage(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["page"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetPagesize(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["pagesize"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetPolicyid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["policyid"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetProjectid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["projectid"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetVmprofileid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["vmprofileid"] = v
- return
- }
- func (p *ListAutoScaleVmGroupsParams) SetZoneid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["zoneid"] = v
- return
- }
- // You should always use this function to get a new ListAutoScaleVmGroupsParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewListAutoScaleVmGroupsParams() *ListAutoScaleVmGroupsParams {
- p := &ListAutoScaleVmGroupsParams{}
- 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 *AutoScaleService) GetAutoScaleVmGroupByID(id string, opts ...OptionFunc) (*AutoScaleVmGroup, int, error) {
- p := &ListAutoScaleVmGroupsParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- for _, fn := range opts {
- if err := fn(s.cs, p); err != nil {
- return nil, -1, err
- }
- }
- l, err := s.ListAutoScaleVmGroups(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.AutoScaleVmGroups[0], l.Count, nil
- }
- return nil, l.Count, fmt.Errorf("There is more then one result for AutoScaleVmGroup UUID: %s!", id)
- }
- // Lists autoscale vm groups.
- func (s *AutoScaleService) ListAutoScaleVmGroups(p *ListAutoScaleVmGroupsParams) (*ListAutoScaleVmGroupsResponse, error) {
- resp, err := s.cs.newRequest("listAutoScaleVmGroups", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r ListAutoScaleVmGroupsResponse
- if err := json.Unmarshal(resp, &r); err != nil {
- return nil, err
- }
- return &r, nil
- }
- type ListAutoScaleVmGroupsResponse struct {
- Count int `json:"count"`
- AutoScaleVmGroups []*AutoScaleVmGroup `json:"autoscalevmgroup"`
- }
- type AutoScaleVmGroup struct {
- Account string `json:"account,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Fordisplay bool `json:"fordisplay,omitempty"`
- Id string `json:"id,omitempty"`
- Interval int `json:"interval,omitempty"`
- Lbruleid string `json:"lbruleid,omitempty"`
- Maxmembers int `json:"maxmembers,omitempty"`
- Minmembers int `json:"minmembers,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Scaledownpolicies []string `json:"scaledownpolicies,omitempty"`
- Scaleuppolicies []string `json:"scaleuppolicies,omitempty"`
- State string `json:"state,omitempty"`
- Vmprofileid string `json:"vmprofileid,omitempty"`
- }
- type EnableAutoScaleVmGroupParams struct {
- p map[string]interface{}
- }
- func (p *EnableAutoScaleVmGroupParams) 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 *EnableAutoScaleVmGroupParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- // You should always use this function to get a new EnableAutoScaleVmGroupParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewEnableAutoScaleVmGroupParams(id string) *EnableAutoScaleVmGroupParams {
- p := &EnableAutoScaleVmGroupParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Enables an AutoScale Vm Group
- func (s *AutoScaleService) EnableAutoScaleVmGroup(p *EnableAutoScaleVmGroupParams) (*EnableAutoScaleVmGroupResponse, error) {
- resp, err := s.cs.newRequest("enableAutoScaleVmGroup", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r EnableAutoScaleVmGroupResponse
- 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 EnableAutoScaleVmGroupResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Fordisplay bool `json:"fordisplay,omitempty"`
- Id string `json:"id,omitempty"`
- Interval int `json:"interval,omitempty"`
- Lbruleid string `json:"lbruleid,omitempty"`
- Maxmembers int `json:"maxmembers,omitempty"`
- Minmembers int `json:"minmembers,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Scaledownpolicies []string `json:"scaledownpolicies,omitempty"`
- Scaleuppolicies []string `json:"scaleuppolicies,omitempty"`
- State string `json:"state,omitempty"`
- Vmprofileid string `json:"vmprofileid,omitempty"`
- }
- type DisableAutoScaleVmGroupParams struct {
- p map[string]interface{}
- }
- func (p *DisableAutoScaleVmGroupParams) 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 *DisableAutoScaleVmGroupParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- // You should always use this function to get a new DisableAutoScaleVmGroupParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewDisableAutoScaleVmGroupParams(id string) *DisableAutoScaleVmGroupParams {
- p := &DisableAutoScaleVmGroupParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Disables an AutoScale Vm Group
- func (s *AutoScaleService) DisableAutoScaleVmGroup(p *DisableAutoScaleVmGroupParams) (*DisableAutoScaleVmGroupResponse, error) {
- resp, err := s.cs.newRequest("disableAutoScaleVmGroup", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r DisableAutoScaleVmGroupResponse
- 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 DisableAutoScaleVmGroupResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Fordisplay bool `json:"fordisplay,omitempty"`
- Id string `json:"id,omitempty"`
- Interval int `json:"interval,omitempty"`
- Lbruleid string `json:"lbruleid,omitempty"`
- Maxmembers int `json:"maxmembers,omitempty"`
- Minmembers int `json:"minmembers,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Scaledownpolicies []string `json:"scaledownpolicies,omitempty"`
- Scaleuppolicies []string `json:"scaleuppolicies,omitempty"`
- State string `json:"state,omitempty"`
- Vmprofileid string `json:"vmprofileid,omitempty"`
- }
- type UpdateAutoScalePolicyParams struct {
- p map[string]interface{}
- }
- func (p *UpdateAutoScalePolicyParams) toURLValues() url.Values {
- u := url.Values{}
- if p.p == nil {
- return u
- }
- if v, found := p.p["conditionids"]; found {
- vv := strings.Join(v.([]string), ",")
- u.Set("conditionids", vv)
- }
- if v, found := p.p["duration"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("duration", vv)
- }
- if v, found := p.p["id"]; found {
- u.Set("id", v.(string))
- }
- if v, found := p.p["quiettime"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("quiettime", vv)
- }
- return u
- }
- func (p *UpdateAutoScalePolicyParams) SetConditionids(v []string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["conditionids"] = v
- return
- }
- func (p *UpdateAutoScalePolicyParams) SetDuration(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["duration"] = v
- return
- }
- func (p *UpdateAutoScalePolicyParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- func (p *UpdateAutoScalePolicyParams) SetQuiettime(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["quiettime"] = v
- return
- }
- // You should always use this function to get a new UpdateAutoScalePolicyParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewUpdateAutoScalePolicyParams(id string) *UpdateAutoScalePolicyParams {
- p := &UpdateAutoScalePolicyParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Updates an existing autoscale policy.
- func (s *AutoScaleService) UpdateAutoScalePolicy(p *UpdateAutoScalePolicyParams) (*UpdateAutoScalePolicyResponse, error) {
- resp, err := s.cs.newRequest("updateAutoScalePolicy", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r UpdateAutoScalePolicyResponse
- 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 UpdateAutoScalePolicyResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Action string `json:"action,omitempty"`
- Conditions []string `json:"conditions,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Duration int `json:"duration,omitempty"`
- Id string `json:"id,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Quiettime int `json:"quiettime,omitempty"`
- }
- type UpdateAutoScaleVmProfileParams struct {
- p map[string]interface{}
- }
- func (p *UpdateAutoScaleVmProfileParams) toURLValues() url.Values {
- u := url.Values{}
- if p.p == nil {
- return u
- }
- if v, found := p.p["autoscaleuserid"]; found {
- u.Set("autoscaleuserid", v.(string))
- }
- if v, found := p.p["counterparam"]; found {
- i := 0
- for k, vv := range v.(map[string]string) {
- u.Set(fmt.Sprintf("counterparam[%d].key", i), k)
- u.Set(fmt.Sprintf("counterparam[%d].value", i), vv)
- i++
- }
- }
- if v, found := p.p["customid"]; found {
- u.Set("customid", v.(string))
- }
- if v, found := p.p["destroyvmgraceperiod"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("destroyvmgraceperiod", vv)
- }
- 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["templateid"]; found {
- u.Set("templateid", v.(string))
- }
- return u
- }
- func (p *UpdateAutoScaleVmProfileParams) SetAutoscaleuserid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["autoscaleuserid"] = v
- return
- }
- func (p *UpdateAutoScaleVmProfileParams) SetCounterparam(v map[string]string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["counterparam"] = v
- return
- }
- func (p *UpdateAutoScaleVmProfileParams) SetCustomid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["customid"] = v
- return
- }
- func (p *UpdateAutoScaleVmProfileParams) SetDestroyvmgraceperiod(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["destroyvmgraceperiod"] = v
- return
- }
- func (p *UpdateAutoScaleVmProfileParams) SetFordisplay(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["fordisplay"] = v
- return
- }
- func (p *UpdateAutoScaleVmProfileParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- func (p *UpdateAutoScaleVmProfileParams) SetTemplateid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["templateid"] = v
- return
- }
- // You should always use this function to get a new UpdateAutoScaleVmProfileParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewUpdateAutoScaleVmProfileParams(id string) *UpdateAutoScaleVmProfileParams {
- p := &UpdateAutoScaleVmProfileParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Updates an existing autoscale vm profile.
- func (s *AutoScaleService) UpdateAutoScaleVmProfile(p *UpdateAutoScaleVmProfileParams) (*UpdateAutoScaleVmProfileResponse, error) {
- resp, err := s.cs.newRequest("updateAutoScaleVmProfile", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r UpdateAutoScaleVmProfileResponse
- 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 UpdateAutoScaleVmProfileResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Autoscaleuserid string `json:"autoscaleuserid,omitempty"`
- Destroyvmgraceperiod int `json:"destroyvmgraceperiod,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Fordisplay bool `json:"fordisplay,omitempty"`
- Id string `json:"id,omitempty"`
- Otherdeployparams string `json:"otherdeployparams,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Serviceofferingid string `json:"serviceofferingid,omitempty"`
- Templateid string `json:"templateid,omitempty"`
- Zoneid string `json:"zoneid,omitempty"`
- }
- type UpdateAutoScaleVmGroupParams struct {
- p map[string]interface{}
- }
- func (p *UpdateAutoScaleVmGroupParams) 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))
- }
- if v, found := p.p["interval"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("interval", vv)
- }
- if v, found := p.p["maxmembers"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("maxmembers", vv)
- }
- if v, found := p.p["minmembers"]; found {
- vv := strconv.Itoa(v.(int))
- u.Set("minmembers", vv)
- }
- if v, found := p.p["scaledownpolicyids"]; found {
- vv := strings.Join(v.([]string), ",")
- u.Set("scaledownpolicyids", vv)
- }
- if v, found := p.p["scaleuppolicyids"]; found {
- vv := strings.Join(v.([]string), ",")
- u.Set("scaleuppolicyids", vv)
- }
- return u
- }
- func (p *UpdateAutoScaleVmGroupParams) SetCustomid(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["customid"] = v
- return
- }
- func (p *UpdateAutoScaleVmGroupParams) SetFordisplay(v bool) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["fordisplay"] = v
- return
- }
- func (p *UpdateAutoScaleVmGroupParams) SetId(v string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["id"] = v
- return
- }
- func (p *UpdateAutoScaleVmGroupParams) SetInterval(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["interval"] = v
- return
- }
- func (p *UpdateAutoScaleVmGroupParams) SetMaxmembers(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["maxmembers"] = v
- return
- }
- func (p *UpdateAutoScaleVmGroupParams) SetMinmembers(v int) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["minmembers"] = v
- return
- }
- func (p *UpdateAutoScaleVmGroupParams) SetScaledownpolicyids(v []string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["scaledownpolicyids"] = v
- return
- }
- func (p *UpdateAutoScaleVmGroupParams) SetScaleuppolicyids(v []string) {
- if p.p == nil {
- p.p = make(map[string]interface{})
- }
- p.p["scaleuppolicyids"] = v
- return
- }
- // You should always use this function to get a new UpdateAutoScaleVmGroupParams instance,
- // as then you are sure you have configured all required params
- func (s *AutoScaleService) NewUpdateAutoScaleVmGroupParams(id string) *UpdateAutoScaleVmGroupParams {
- p := &UpdateAutoScaleVmGroupParams{}
- p.p = make(map[string]interface{})
- p.p["id"] = id
- return p
- }
- // Updates an existing autoscale vm group.
- func (s *AutoScaleService) UpdateAutoScaleVmGroup(p *UpdateAutoScaleVmGroupParams) (*UpdateAutoScaleVmGroupResponse, error) {
- resp, err := s.cs.newRequest("updateAutoScaleVmGroup", p.toURLValues())
- if err != nil {
- return nil, err
- }
- var r UpdateAutoScaleVmGroupResponse
- 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 UpdateAutoScaleVmGroupResponse struct {
- JobID string `json:"jobid,omitempty"`
- Account string `json:"account,omitempty"`
- Domain string `json:"domain,omitempty"`
- Domainid string `json:"domainid,omitempty"`
- Fordisplay bool `json:"fordisplay,omitempty"`
- Id string `json:"id,omitempty"`
- Interval int `json:"interval,omitempty"`
- Lbruleid string `json:"lbruleid,omitempty"`
- Maxmembers int `json:"maxmembers,omitempty"`
- Minmembers int `json:"minmembers,omitempty"`
- Project string `json:"project,omitempty"`
- Projectid string `json:"projectid,omitempty"`
- Scaledownpolicies []string `json:"scaledownpolicies,omitempty"`
- Scaleuppolicies []string `json:"scaleuppolicies,omitempty"`
- State string `json:"state,omitempty"`
- Vmprofileid string `json:"vmprofileid,omitempty"`
- }
|