From 0549e8766b40097cdd8c175b26b15cb4c4f382f1 Mon Sep 17 00:00:00 2001 From: RainbowMango Date: Wed, 4 Nov 2020 10:59:38 +0800 Subject: [PATCH 1/5] bump huaweicloud-sdk-go-v3 to 0.0.20 --- .../core/converter/converters.go | 3 + .../core/converter/types.go | 85 +- .../huaweicloud-sdk-go-v3/core/def/field.go | 12 + .../core/def/http_request_def.go | 23 +- .../core/def/http_response_def.go | 45 - .../core/hc_http_client.go | 193 ++- .../core/request/default_http_request.go | 24 +- .../core/request/http_request.go | 4 +- .../core/response/default_http_response.go | 5 - .../core/sdktime/sdk_time.go | 6 + .../services/as/v1/as_client.go | 273 ++-- .../services/as/v1/as_meta.go | 1059 +++++---------- .../services/ecs/v2/ecs_client.go | 322 ++--- .../services/ecs/v2/ecs_meta.go | 1208 ++++++----------- 14 files changed, 1325 insertions(+), 1937 deletions(-) delete mode 100644 cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/http_response_def.go diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter/converters.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter/converters.go index 1de63b806a..edc3403e2e 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter/converters.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter/converters.go @@ -1,7 +1,10 @@ package converter +import "reflect" + type Converter interface { CovertStringToInterface(value string) (interface{}, error) + CovertStringToPrimitiveTypeAndSetField(field reflect.Value, value string, isPtr bool) error } func StringConverterFactory(vType string) Converter { diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter/types.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter/types.go index b7ee2d27d0..dc58f15b47 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter/types.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter/types.go @@ -1,6 +1,9 @@ package converter -import "strconv" +import ( + "reflect" + "strconv" +) type Int32Converter struct{} @@ -12,6 +15,20 @@ func (i Int32Converter) CovertStringToInterface(value string) (interface{}, erro return int32(0), err } +func (i Int32Converter) CovertStringToPrimitiveTypeAndSetField(field reflect.Value, value string, isPtr bool) error { + v, err := i.CovertStringToInterface(value) + if err != nil { + return err + } + val := v.(int32) + if isPtr { + field.Set(reflect.ValueOf(&val)) + } else { + field.Set(reflect.ValueOf(val)) + } + return nil +} + type Int64Converter struct{} func (i Int64Converter) CovertStringToInterface(value string) (interface{}, error) { @@ -22,6 +39,20 @@ func (i Int64Converter) CovertStringToInterface(value string) (interface{}, erro return int64(0), err } +func (i Int64Converter) CovertStringToPrimitiveTypeAndSetField(field reflect.Value, value string, isPtr bool) error { + v, err := i.CovertStringToInterface(value) + if err != nil { + return err + } + val := v.(int64) + if isPtr { + field.Set(reflect.ValueOf(&val)) + } else { + field.Set(reflect.ValueOf(val)) + } + return nil +} + type Float32Converter struct{} func (i Float32Converter) CovertStringToInterface(value string) (interface{}, error) { @@ -32,6 +63,20 @@ func (i Float32Converter) CovertStringToInterface(value string) (interface{}, er return float32(0), err } +func (i Float32Converter) CovertStringToPrimitiveTypeAndSetField(field reflect.Value, value string, isPtr bool) error { + v, err := i.CovertStringToInterface(value) + if err != nil { + return err + } + val := v.(float32) + if isPtr { + field.Set(reflect.ValueOf(&val)) + } else { + field.Set(reflect.ValueOf(val)) + } + return nil +} + type Float64Converter struct{} func (i Float64Converter) CovertStringToInterface(value string) (interface{}, error) { @@ -42,6 +87,20 @@ func (i Float64Converter) CovertStringToInterface(value string) (interface{}, er return float64(0), err } +func (i Float64Converter) CovertStringToPrimitiveTypeAndSetField(field reflect.Value, value string, isPtr bool) error { + v, err := i.CovertStringToInterface(value) + if err != nil { + return err + } + val := v.(float64) + if isPtr { + field.Set(reflect.ValueOf(&val)) + } else { + field.Set(reflect.ValueOf(val)) + } + return nil +} + type BooleanConverter struct{} func (i BooleanConverter) CovertStringToInterface(value string) (interface{}, error) { @@ -52,8 +111,32 @@ func (i BooleanConverter) CovertStringToInterface(value string) (interface{}, er return false, err } +func (i BooleanConverter) CovertStringToPrimitiveTypeAndSetField(field reflect.Value, value string, isPtr bool) error { + v, err := i.CovertStringToInterface(value) + if err != nil { + return err + } + val := v.(bool) + if isPtr { + field.Set(reflect.ValueOf(&val)) + } else { + field.Set(reflect.ValueOf(val)) + } + return nil +} + type StringConverter struct{} func (i StringConverter) CovertStringToInterface(value string) (interface{}, error) { return value, nil } + +func (i StringConverter) CovertStringToPrimitiveTypeAndSetField(field reflect.Value, value string, isPtr bool) error { + val := value + if isPtr { + field.Set(reflect.ValueOf(&val)) + } else { + field.Set(reflect.ValueOf(val)) + } + return nil +} diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/field.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/field.go index 518eee3964..265960579b 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/field.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/field.go @@ -31,6 +31,8 @@ const ( type FieldDef struct { LocationType LocationType Name string + JsonTag string + KindName string } func NewFieldDef() *FieldDef { @@ -46,3 +48,13 @@ func (field *FieldDef) WithName(name string) *FieldDef { field.Name = name return field } + +func (field *FieldDef) WithJsonTag(tag string) *FieldDef { + field.JsonTag = tag + return field +} + +func (field *FieldDef) WithKindName(kindName string) *FieldDef { + field.KindName = kindName + return field +} diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/http_request_def.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/http_request_def.go index 618b5206b1..de853c683d 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/http_request_def.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/http_request_def.go @@ -20,11 +20,12 @@ package def type HttpRequestDef struct { - BodyJson interface{} - RequestFields []*FieldDef - Path string - Method string - ContentType string + Method string + Path string + ContentType string + RequestFields []*FieldDef + ResponseFields []*FieldDef + Response interface{} } type HttpRequestDefBuilder struct { @@ -33,7 +34,8 @@ type HttpRequestDefBuilder struct { func NewHttpRequestDefBuilder() *HttpRequestDefBuilder { httpRequestDef := &HttpRequestDef{ - RequestFields: []*FieldDef{}, + RequestFields: []*FieldDef{}, + ResponseFields: []*FieldDef{}, } HttpRequestDefBuilder := &HttpRequestDefBuilder{ httpRequestDef: httpRequestDef, @@ -56,8 +58,8 @@ func (builder *HttpRequestDefBuilder) WithContentType(contentType string) *HttpR return builder } -func (builder *HttpRequestDefBuilder) WithBodyJson(bodyJson interface{}) *HttpRequestDefBuilder { - builder.httpRequestDef.BodyJson = bodyJson +func (builder *HttpRequestDefBuilder) WithResponse(response interface{}) *HttpRequestDefBuilder { + builder.httpRequestDef.Response = response return builder } @@ -66,6 +68,11 @@ func (builder *HttpRequestDefBuilder) WithRequestField(field *FieldDef) *HttpReq return builder } +func (builder *HttpRequestDefBuilder) WithResponseField(field *FieldDef) *HttpRequestDefBuilder { + builder.httpRequestDef.ResponseFields = append(builder.httpRequestDef.ResponseFields, field) + return builder +} + func (builder *HttpRequestDefBuilder) Build() *HttpRequestDef { return builder.httpRequestDef } diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/http_response_def.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/http_response_def.go deleted file mode 100644 index 216cbdca01..0000000000 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def/http_response_def.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2020 Huawei Technologies Co.,Ltd. -// -// 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 def - -type HttpResponseDef struct { - BodyJson interface{} -} - -type HttpResponseDefBuilder struct { - httpResponseDef *HttpResponseDef -} - -func NewHttpResponseDefBuilder() *HttpResponseDefBuilder { - HttpResponseDef := &HttpResponseDef{} - HttpResponseDefBuilder := &HttpResponseDefBuilder{ - httpResponseDef: HttpResponseDef, - } - return HttpResponseDefBuilder -} - -func (builder *HttpResponseDefBuilder) WithBodyJson(bodyJson interface{}) *HttpResponseDefBuilder { - builder.httpResponseDef.BodyJson = bodyJson - return builder -} - -func (builder *HttpResponseDefBuilder) Build() *HttpResponseDef { - return builder.httpResponseDef -} diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/hc_http_client.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/hc_http_client.go index 652648ee44..613875f597 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/hc_http_client.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/hc_http_client.go @@ -21,15 +21,18 @@ package core import ( "bytes" - "encoding/json" - jsoniter "github.com/json-iterator/go" - "io/ioutil" + "errors" + "fmt" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/auth" + "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/converter" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/def" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/impl" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/response" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdkerr" + jsoniter "github.com/json-iterator/go" + "io/ioutil" + "reflect" "strings" ) @@ -53,7 +56,7 @@ func (hc *HcHttpClient) WithCredential(credential auth.ICredential) *HcHttpClien return hc } -func (hc *HcHttpClient) Sync(req interface{}, reqDef *def.HttpRequestDef, responseDef *def.HttpResponseDef) (*response.DefaultHttpResponse, error) { +func (hc *HcHttpClient) Sync(req interface{}, reqDef *def.HttpRequestDef) (interface{}, error) { httpRequest, err := hc.buildRequest(req, reqDef) if err != nil { return nil, err @@ -64,15 +67,14 @@ func (hc *HcHttpClient) Sync(req interface{}, reqDef *def.HttpRequestDef, respon return nil, err } - return hc.extractResponse(resp, responseDef) + return hc.extractResponse(resp, reqDef) } func (hc *HcHttpClient) buildRequest(req interface{}, reqDef *def.HttpRequestDef) (*request.DefaultHttpRequest, error) { builder := request.NewHttpRequestBuilder(). WithEndpoint(hc.endpoint). WithMethod(reqDef.Method). - WithPath(reqDef.Path). - WithBody(reqDef.BodyJson) + WithPath(reqDef.Path) if reqDef.ContentType != "" { builder.AddHeaderParam("Content-Type", reqDef.ContentType) @@ -92,74 +94,135 @@ func (hc *HcHttpClient) buildRequest(req interface{}, reqDef *def.HttpRequestDef } func (hc *HcHttpClient) fillParamsFromReq(req interface{}, reqDef *def.HttpRequestDef, builder *request.HttpRequestBuilder) (*request.HttpRequestBuilder, error) { - toBytes, err := hc.convertToBytes(req) - if err != nil { - return nil, err - } + attrMaps := hc.GetFieldJsonTags(req) for _, fieldDef := range reqDef.RequestFields { - value := jsoniter.Get(toBytes.Bytes(), fieldDef.Name).ToString() - if value == "" { + value, err := hc.GetFieldValueByName(fieldDef.Name, attrMaps, req) + if err != nil { + return nil, err + } + if !value.IsValid() { continue } switch fieldDef.LocationType { case def.Header: - builder.AddHeaderParam(fieldDef.Name, value) + builder.AddHeaderParam(fieldDef.JsonTag, fmt.Sprintf("%v", value)) case def.Path: - builder.AddPathParam(fieldDef.Name, value) + builder.AddPathParam(fieldDef.JsonTag, fmt.Sprintf("%v", value)) case def.Query: - builder.AddQueryParam(fieldDef.Name, value) + builder.AddQueryParam(fieldDef.JsonTag, value) + case def.Body: + builder.WithBody(value.Interface()) } } - return builder, err + return builder, nil } -func (hc *HcHttpClient) convertToBytes(req interface{}) (*bytes.Buffer, error) { - buf := &bytes.Buffer{} - err := json.NewEncoder(buf).Encode(req) +func (hc *HcHttpClient) GetFieldJsonTags(structName interface{}) map[string]string { + attrMaps := make(map[string]string) + t := reflect.TypeOf(structName) + if t.Kind() == reflect.Ptr { + t = t.Elem() + } + + fieldNum := t.NumField() + for i := 0; i < fieldNum; i++ { + jsonTag := t.Field(i).Tag.Get("json") + if jsonTag != "" { + attrMaps[t.Field(i).Name] = jsonTag + } + } + return attrMaps +} + +func (hc *HcHttpClient) GetFieldValueByName(name string, jsonTag map[string]string, structName interface{}) (reflect.Value, error) { + v := reflect.ValueOf(structName) + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + + value := v.FieldByName(name) + if value.Kind() == reflect.Ptr { + if value.IsNil() { + if strings.Contains(jsonTag[name], "omitempty") { + return reflect.ValueOf(nil), nil + } + return reflect.ValueOf(nil), errors.New("request field " + name + " read null value") + } + return value.Elem(), nil + } + + if value.Kind() == reflect.Struct { + v, err := jsoniter.Marshal(value.Interface()) + if strings.HasPrefix(string(v), "\"") { + return reflect.ValueOf(strings.Trim(string(v), "\"")), err + } else { + return reflect.ValueOf(string(v)), err + } + } + + return value, nil +} + +func (hc *HcHttpClient) extractResponse(resp *response.DefaultHttpResponse, reqDef *def.HttpRequestDef) (interface{}, error) { + if resp.GetStatusCode() >= 400 { + return nil, sdkerr.NewServiceResponseError(resp.Response) + } + + err := hc.deserializeResponse(resp, reqDef) if err != nil { return nil, err } - return buf, nil + + return reqDef.Response, nil } -func (hc *HcHttpClient) extractResponse(resp *response.DefaultHttpResponse, responseDef *def.HttpResponseDef) (*response.DefaultHttpResponse, error) { - if resp.GetStatusCode() >= 400 { - return resp, sdkerr.NewServiceResponseError(resp.Response) - } - +func (hc *HcHttpClient) deserializeResponse(resp *response.DefaultHttpResponse, reqDef *def.HttpRequestDef) error { data, err := ioutil.ReadAll(resp.Response.Body) if err != nil { if closeErr := resp.Response.Body.Close(); closeErr != nil { - return nil, err + return err } - return nil, err + return err } - if err := resp.Response.Body.Close(); err != nil { - return nil, err + return err } else { resp.Response.Body = ioutil.NopCloser(bytes.NewBuffer(data)) } - if len(data) == 0 { - return resp, nil - } - - err = jsoniter.Unmarshal(data, responseDef.BodyJson) - if err != nil { - if strings.HasPrefix(string(data), "{") { - return nil, sdkerr.ServiceResponseError{ - StatusCode: resp.GetStatusCode(), - RequestId: resp.GetHeader("X-Request-Id"), - ErrorMessage: err.Error(), + hasBody := false + for _, item := range reqDef.ResponseFields { + if item.LocationType == def.Header { + err := hc.deserializeResponseHeaders(resp, reqDef, item) + if err != nil { + return sdkerr.ServiceResponseError{ + StatusCode: resp.GetStatusCode(), + RequestId: resp.GetHeader("X-Request-Id"), + ErrorMessage: err.Error(), + } } } - dataOfListOrString := "{ \"body\" : " + string(data) + "}" - err = jsoniter.Unmarshal([]byte(dataOfListOrString), responseDef.BodyJson) + if item.LocationType == def.Body { + hasBody = true + + dataOfListOrString := "{ \"body\" : " + string(data) + "}" + err = jsoniter.Unmarshal([]byte(dataOfListOrString), &reqDef.Response) + if err != nil { + return sdkerr.ServiceResponseError{ + StatusCode: resp.GetStatusCode(), + RequestId: resp.GetHeader("X-Request-Id"), + ErrorMessage: err.Error(), + } + } + } + } + + if len(data) != 0 && !hasBody { + err = jsoniter.Unmarshal(data, &reqDef.Response) if err != nil { - return nil, sdkerr.ServiceResponseError{ + return sdkerr.ServiceResponseError{ StatusCode: resp.GetStatusCode(), RequestId: resp.GetHeader("X-Request-Id"), ErrorMessage: err.Error(), @@ -167,6 +230,44 @@ func (hc *HcHttpClient) extractResponse(resp *response.DefaultHttpResponse, resp } } - resp.BodyJson = responseDef.BodyJson - return resp, nil + return nil +} + +func (hc *HcHttpClient) deserializeResponseHeaders(resp *response.DefaultHttpResponse, reqDef *def.HttpRequestDef, item *def.FieldDef) error { + isPtr, fieldKind := GetFieldInfo(reqDef, item) + v := reflect.ValueOf(reqDef.Response) + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + fieldValue := v.FieldByName(item.Name) + headerValue := resp.GetHeader(item.JsonTag) + + sdkConverter := converter.StringConverterFactory(fieldKind) + if sdkConverter == nil { + return errors.New("failed to convert " + item.JsonTag) + } + + err := sdkConverter.CovertStringToPrimitiveTypeAndSetField(fieldValue, headerValue, isPtr) + if err != nil { + return err + } + + return nil +} + +func GetFieldInfo(reqDef *def.HttpRequestDef, item *def.FieldDef) (bool, string) { + var fieldKind string + var isPtr = false + t := reflect.TypeOf(reqDef.Response) + if t.Kind() == reflect.Ptr { + isPtr = true + t = t.Elem() + } + field, _ := t.FieldByName(item.Name) + if field.Type.Kind() == reflect.Ptr { + fieldKind = field.Type.Elem().Kind().String() + } else { + fieldKind = field.Type.Kind().String() + } + return isPtr, fieldKind } diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request/default_http_request.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request/default_http_request.go index 0b1730b28c..a3d06d2b42 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request/default_http_request.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request/default_http_request.go @@ -24,6 +24,7 @@ import ( "encoding/json" "fmt" "net/http" + "reflect" "strings" ) @@ -31,7 +32,7 @@ type DefaultHttpRequest struct { endpoint string path string method string - queryParams map[string]string + queryParams map[string]interface{} pathParams map[string]string autoFilledPathParams map[string]string headerParams map[string]string @@ -65,7 +66,7 @@ func (httpRequest *DefaultHttpRequest) GetMethod() string { return httpRequest.method } -func (httpRequest *DefaultHttpRequest) GetQueryParams() map[string]string { +func (httpRequest *DefaultHttpRequest) GetQueryParams() map[string]interface{} { return httpRequest.queryParams } @@ -134,18 +135,13 @@ func (httpRequest *DefaultHttpRequest) fillQueryParams(req *http.Request) { } q := req.URL.Query() for key, value := range httpRequest.GetQueryParams() { - if strings.HasPrefix(value, "[") { - var valueList []interface{} - err := json.Unmarshal([]byte(value), &valueList) - if err == nil { - for item := range valueList { - q.Add(key, fmt.Sprintf("%v", valueList[item])) - } - } else { - q.Add(key, value) + if reflect.TypeOf(value).Kind() == reflect.Struct && value.(reflect.Value).Kind() == reflect.Slice { + s := value.(reflect.Value) + for i := 0; i < s.Len(); i++ { + q.Add(key, fmt.Sprintf("%v", s.Index(i))) } } else { - q.Add(key, value) + q.Add(key, fmt.Sprintf("%v", value)) } } req.URL.RawQuery = q.Encode() @@ -163,7 +159,7 @@ type HttpRequestBuilder struct { func NewHttpRequestBuilder() *HttpRequestBuilder { httpRequest := &DefaultHttpRequest{ - queryParams: make(map[string]string), + queryParams: make(map[string]interface{}), headerParams: make(map[string]string), pathParams: make(map[string]string), autoFilledPathParams: make(map[string]string), @@ -189,7 +185,7 @@ func (builder *HttpRequestBuilder) WithMethod(method string) *HttpRequestBuilder return builder } -func (builder *HttpRequestBuilder) AddQueryParam(key string, value string) *HttpRequestBuilder { +func (builder *HttpRequestBuilder) AddQueryParam(key string, value interface{}) *HttpRequestBuilder { builder.httpRequest.queryParams[key] = value return builder } diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request/http_request.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request/http_request.go index ceef2c3041..3fabf1f59d 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request/http_request.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/request/http_request.go @@ -24,11 +24,11 @@ import "bytes" type HttpRequest interface { Builder() *HttpRequestBuilder GetEndpoint() string - GetPath() string GetMethod() string - GetQueryParams() map[string]string + GetPath() string GetHeaderParams() map[string]string GetPathPrams() map[string]string + GetQueryParams() map[string]interface{} GetBody() interface{} GetBodyToBytes() (*bytes.Buffer, error) } diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/response/default_http_response.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/response/default_http_response.go index bca26e1e66..1eb618a56a 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/response/default_http_response.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/response/default_http_response.go @@ -27,7 +27,6 @@ import ( type DefaultHttpResponse struct { Response *http.Response - BodyJson interface{} } func NewDefaultHttpResponse(response *http.Response) *DefaultHttpResponse { @@ -60,10 +59,6 @@ func (r *DefaultHttpResponse) GetBody() string { return string(body) } -func (r *DefaultHttpResponse) GetBodyJson() interface{} { - return r.BodyJson -} - func (r *DefaultHttpResponse) GetHeader(key string) string { header := r.Response.Header return header.Get(key) diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go index faec049ca1..2b6acd41ce 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go @@ -1,6 +1,7 @@ package sdktime import ( + "fmt" "strings" "time" ) @@ -23,6 +24,11 @@ func (t *SdkTime) UnmarshalJSON(data []byte) error { return nil } +func (t SdkTime) MarshalJSON() ([]byte, error) { + rs := []byte(fmt.Sprintf(`"%s"`, t.String())) + return rs, nil +} + func (t SdkTime) String() string { return time.Time(t).Format(`2006-01-02T15:04:05Z`) } diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/as/v1/as_client.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/as/v1/as_client.go index f0547286fc..3b7abb8791 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/as/v1/as_client.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/as/v1/as_client.go @@ -20,468 +20,429 @@ func AsClientBuilder() *http_client.HcHttpClientBuilder { //批量删除指定弹性伸缩配置。被伸缩组使用的伸缩配置不能被删除。单次最多删除伸缩配置个数为50。 func (c *AsClient) BatchDeleteScalingConfigs(request *model.BatchDeleteScalingConfigsRequest) (*model.BatchDeleteScalingConfigsResponse, error) { - requestDef := GenReqDefForBatchDeleteScalingConfigs(request) - resp, responseDef := GenRespForBatchDeleteScalingConfigs() + requestDef := GenReqDefForBatchDeleteScalingConfigs() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.BatchDeleteScalingConfigsResponse), nil } } //通过生命周期操作令牌或者通过实例ID和生命周期挂钩名称对伸缩实例指定的挂钩进行回调操作。如果在超时时间结束前已完成自定义操作,选择终止或继续完成生命周期操作。如果需要更多时间完成自定义操作,选择延长超时时间,实例保持等待状态的时间将增加1小时。只有实例的生命周期挂钩状态为 HANGING 时才可以进行回调操作。 func (c *AsClient) CompleteLifecycleAction(request *model.CompleteLifecycleActionRequest) (*model.CompleteLifecycleActionResponse, error) { - requestDef := GenReqDefForCompleteLifecycleAction(request) - resp, responseDef := GenRespForCompleteLifecycleAction() + requestDef := GenReqDefForCompleteLifecycleAction() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CompleteLifecycleActionResponse), nil } } //创建生命周期挂钩,可为伸缩组添加一个或多个生命周期挂钩,最多添加5个。添加生命周期挂钩后,当伸缩组进行伸缩活动时,实例将被生命周期挂钩挂起并置于等待状态(正在加入伸缩组或正在移出伸缩组),实例将保持此状态直至超时时间结束或者用户手动回调。用户能够在实例保持等待状态的时间段内执行自定义操作,例如,用户可以在新启动的实例上安装或配置软件,也可以在实例终止前从实例中下载日志文件。 func (c *AsClient) CreateLifyCycleHook(request *model.CreateLifyCycleHookRequest) (*model.CreateLifyCycleHookResponse, error) { - requestDef := GenReqDefForCreateLifyCycleHook(request) - resp, responseDef := GenRespForCreateLifyCycleHook() + requestDef := GenReqDefForCreateLifyCycleHook() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreateLifyCycleHookResponse), nil } } //创建弹性伸缩配置。伸缩配置是伸缩组内实例(弹性云服务器云主机)的模板,定义了伸缩组内待添加的实例的规格数据。伸缩配置与伸缩组是解耦的,同一伸缩配置可以被多个伸缩组使用。默认最多可以创建100个伸缩配置。 func (c *AsClient) CreateScalingConfig(request *model.CreateScalingConfigRequest) (*model.CreateScalingConfigResponse, error) { - requestDef := GenReqDefForCreateScalingConfig(request) - resp, responseDef := GenRespForCreateScalingConfig() + requestDef := GenReqDefForCreateScalingConfig() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreateScalingConfigResponse), nil } } //伸缩组是具有相同应用场景的实例的集合,是启停伸缩策略和进行伸缩活动的基本单位。伸缩组内定义了最大实例数、期望实例数、最小实例数、虚拟私有云、子网、负载均衡等信息。默认最多可以创建10个伸缩组。如果伸缩组配置了负载均衡,在添加或移除实例时,会自动为实例绑定或解绑负载均衡监听器。如果伸缩组使用负载均衡健康检查方式,伸缩组中的实例需要启用负载均衡器的监听端口才能通过健康检查。端口启用可在安全组中进行配置,可参考添加安全组规则进行操作。 func (c *AsClient) CreateScalingGroup(request *model.CreateScalingGroupRequest) (*model.CreateScalingGroupResponse, error) { - requestDef := GenReqDefForCreateScalingGroup(request) - resp, responseDef := GenRespForCreateScalingGroup() + requestDef := GenReqDefForCreateScalingGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreateScalingGroupResponse), nil } } //给弹性伸缩组配置通知功能。每调用一次该接口,伸缩组即配置一个通知主题及其通知场景,每个伸缩组最多可以增加5个主题。通知主题由用户事先在SMN创建并进行订阅,当通知主题对应的通知场景出现时,伸缩组会向用户的订阅终端发送通知。 func (c *AsClient) CreateScalingNotification(request *model.CreateScalingNotificationRequest) (*model.CreateScalingNotificationResponse, error) { - requestDef := GenReqDefForCreateScalingNotification(request) - resp, responseDef := GenRespForCreateScalingNotification() + requestDef := GenReqDefForCreateScalingNotification() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreateScalingNotificationResponse), nil } } //创建弹性伸缩策略。伸缩策略定义了伸缩组内实例的扩张和收缩操作。如果执行伸缩策略造成伸缩组期望实例数与伸缩组内实例数不符,弹性伸缩会自动调整实例资源,以匹配期望实例数。当前伸缩策略支持告警触发策略,周期触发策略,定时触发策略。在策略执行具体动作中,可设置实例变化的个数,或根据当前实例的百分比数进行伸缩。 func (c *AsClient) CreateScalingPolicy(request *model.CreateScalingPolicyRequest) (*model.CreateScalingPolicyResponse, error) { - requestDef := GenReqDefForCreateScalingPolicy(request) - resp, responseDef := GenRespForCreateScalingPolicy() + requestDef := GenReqDefForCreateScalingPolicy() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreateScalingPolicyResponse), nil } } //创建或删除指定资源的标签。每个伸缩组最多添加10个标签。 func (c *AsClient) CreateScalingTags(request *model.CreateScalingTagsRequest) (*model.CreateScalingTagsResponse, error) { - requestDef := GenReqDefForCreateScalingTags(request) - resp, responseDef := GenRespForCreateScalingTags() + requestDef := GenReqDefForCreateScalingTags() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreateScalingTagsResponse), nil } } //删除一个指定生命周期挂钩。伸缩组进行伸缩活动时,不允许删除该伸缩组内的生命周期挂钩。 func (c *AsClient) DeleteLifecycleHook(request *model.DeleteLifecycleHookRequest) (*model.DeleteLifecycleHookResponse, error) { - requestDef := GenReqDefForDeleteLifecycleHook(request) - resp, responseDef := GenRespForDeleteLifecycleHook() + requestDef := GenReqDefForDeleteLifecycleHook() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteLifecycleHookResponse), nil } } //删除一个指定弹性伸缩配置。 func (c *AsClient) DeleteScalingConfig(request *model.DeleteScalingConfigRequest) (*model.DeleteScalingConfigResponse, error) { - requestDef := GenReqDefForDeleteScalingConfig(request) - resp, responseDef := GenRespForDeleteScalingConfig() + requestDef := GenReqDefForDeleteScalingConfig() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteScalingConfigResponse), nil } } //删除一个指定弹性伸缩组。force_delete属性表示如果伸缩组存在ECS实例或正在进行伸缩活动,是否强制删除伸缩组并移出和释放ECS实例。默认值为no,表示不强制删除伸缩组。如果force_delete的值为no,必须满足以下两个条件,才能删除伸缩组:条件一:伸缩组没有正在进行的伸缩活动。条件二:伸缩组当前的ECS实例数量(current_instance_number)为0。如果force_delete的值为yes,伸缩组会被置于DELETING状态,拒绝接收新的伸缩活动请求,然后等待已有的伸缩活动完成,最后将伸缩组内所有ECS实例移出伸缩组(用户手动添加的ECS实例会被移出伸缩组,弹性伸缩自动创建的ECS实例会被自动删除)并删除伸缩组。 func (c *AsClient) DeleteScalingGroup(request *model.DeleteScalingGroupRequest) (*model.DeleteScalingGroupResponse, error) { - requestDef := GenReqDefForDeleteScalingGroup(request) - resp, responseDef := GenRespForDeleteScalingGroup() + requestDef := GenReqDefForDeleteScalingGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteScalingGroupResponse), nil } } //从弹性伸缩组中移出一个指定实例。实例处于INSERVICE且移出后实例数不能小于伸缩组的最小实例数时才可以移出。当伸缩组没有伸缩活动时,才能移出实例。 func (c *AsClient) DeleteScalingInstance(request *model.DeleteScalingInstanceRequest) (*model.DeleteScalingInstanceResponse, error) { - requestDef := GenReqDefForDeleteScalingInstance(request) - resp, responseDef := GenRespForDeleteScalingInstance() + requestDef := GenReqDefForDeleteScalingInstance() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteScalingInstanceResponse), nil } } //删除指定的弹性伸缩组中指定的通知。 func (c *AsClient) DeleteScalingNotification(request *model.DeleteScalingNotificationRequest) (*model.DeleteScalingNotificationResponse, error) { - requestDef := GenReqDefForDeleteScalingNotification(request) - resp, responseDef := GenRespForDeleteScalingNotification() + requestDef := GenReqDefForDeleteScalingNotification() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteScalingNotificationResponse), nil } } //删除一个指定弹性伸缩策略。 func (c *AsClient) DeleteScalingPolicy(request *model.DeleteScalingPolicyRequest) (*model.DeleteScalingPolicyResponse, error) { - requestDef := GenReqDefForDeleteScalingPolicy(request) - resp, responseDef := GenRespForDeleteScalingPolicy() + requestDef := GenReqDefForDeleteScalingPolicy() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteScalingPolicyResponse), nil } } //创建或删除指定资源的标签。每个伸缩组最多添加10个标签。 func (c *AsClient) DeleteScalingTags(request *model.DeleteScalingTagsRequest) (*model.DeleteScalingTagsResponse, error) { - requestDef := GenReqDefForDeleteScalingTags(request) - resp, responseDef := GenRespForDeleteScalingTags() + requestDef := GenReqDefForDeleteScalingTags() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteScalingTagsResponse), nil } } //启用或停止一个指定弹性伸缩组。已停用状态的伸缩组,不会自动触发任何伸缩活动。当伸缩组正在进行伸缩活动,即使停用,正在进行的伸缩活动也不会立即停止。 func (c *AsClient) EnableOrDisableScalingGroup(request *model.EnableOrDisableScalingGroupRequest) (*model.EnableOrDisableScalingGroupResponse, error) { - requestDef := GenReqDefForEnableOrDisableScalingGroup(request) - resp, responseDef := GenRespForEnableOrDisableScalingGroup() + requestDef := GenReqDefForEnableOrDisableScalingGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.EnableOrDisableScalingGroupResponse), nil } } //立即执行或启用或停止一个指定弹性伸缩策略。当伸缩组、伸缩策略状态处于INSERVICE时,伸缩策略才能被正确执行,否则会执行失败。 func (c *AsClient) ExecuteScalingPolicy(request *model.ExecuteScalingPolicyRequest) (*model.ExecuteScalingPolicyResponse, error) { - requestDef := GenReqDefForExecuteScalingPolicy(request) - resp, responseDef := GenRespForExecuteScalingPolicy() + requestDef := GenReqDefForExecuteScalingPolicy() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ExecuteScalingPolicyResponse), nil } } //添加生命周期挂钩后,当伸缩组进行伸缩活动时,实例将被挂钩挂起并置于等待状态,根据输入条件过滤查询弹性伸缩组中伸缩实例的挂起信息。可根据实例ID进行条件过滤查询。若不加过滤条件默认查询指定伸缩组内所有实例挂起信息。 func (c *AsClient) ListHookInstances(request *model.ListHookInstancesRequest) (*model.ListHookInstancesResponse, error) { - requestDef := GenReqDefForListHookInstances(request) - resp, responseDef := GenRespForListHookInstances() + requestDef := GenReqDefForListHookInstances() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListHookInstancesResponse), nil } } //根据伸缩组ID查询生命周期挂钩列表。 func (c *AsClient) ListLifeCycleHooks(request *model.ListLifeCycleHooksRequest) (*model.ListLifeCycleHooksResponse, error) { - requestDef := GenReqDefForListLifeCycleHooks(request) - resp, responseDef := GenRespForListLifeCycleHooks() + requestDef := GenReqDefForListLifeCycleHooks() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListLifeCycleHooksResponse), nil } } //根据项目ID查询指定资源类型的资源实例。资源、资源tag默认按照创建时间倒序。 func (c *AsClient) ListResourceInstances(request *model.ListResourceInstancesRequest) (*model.ListResourceInstancesResponse, error) { - requestDef := GenReqDefForListResourceInstances(request) - resp, responseDef := GenRespForListResourceInstances() + requestDef := GenReqDefForListResourceInstances() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListResourceInstancesResponse), nil } } //根据输入条件过滤查询伸缩活动日志。查询结果分页显示。可根据起始时间,截止时间,起始行号,记录数进行条件过滤查询。若不加过滤条件默认查询最多20条伸缩活动日志信息。 func (c *AsClient) ListScalingActivityLogs(request *model.ListScalingActivityLogsRequest) (*model.ListScalingActivityLogsResponse, error) { - requestDef := GenReqDefForListScalingActivityLogs(request) - resp, responseDef := GenRespForListScalingActivityLogs() + requestDef := GenReqDefForListScalingActivityLogs() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingActivityLogsResponse), nil } } //根据输入条件过滤查询弹性伸缩配置。查询结果分页显示。可以根据伸缩配置名称,镜像ID,起始行号,记录条数进行条件过滤查询。若不加过滤条件默认最多查询租户下20条伸缩配置信息。 func (c *AsClient) ListScalingConfigs(request *model.ListScalingConfigsRequest) (*model.ListScalingConfigsResponse, error) { - requestDef := GenReqDefForListScalingConfigs(request) - resp, responseDef := GenRespForListScalingConfigs() + requestDef := GenReqDefForListScalingConfigs() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingConfigsResponse), nil } } //根据输入条件过滤查询弹性伸缩组列表。查询结果分页显示。可根据伸缩组名称,伸缩配置ID,伸缩组状态,企业项目ID,起始行号,记录条数进行条件过滤查询。若不加过滤条件默认最多查询租户下20条伸缩组信息。 func (c *AsClient) ListScalingGroups(request *model.ListScalingGroupsRequest) (*model.ListScalingGroupsResponse, error) { - requestDef := GenReqDefForListScalingGroups(request) - resp, responseDef := GenRespForListScalingGroups() + requestDef := GenReqDefForListScalingGroups() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingGroupsResponse), nil } } //根据输入条件过滤查询弹性伸缩组中实例信息。查询结果分页显示。可根据实例在伸缩组中的生命周期状态,实例健康状态,实例保护状态,起始行号,记录条数进行条件过滤查询。若不加过滤条件默认查询组内最多20条实例信息 func (c *AsClient) ListScalingInstances(request *model.ListScalingInstancesRequest) (*model.ListScalingInstancesResponse, error) { - requestDef := GenReqDefForListScalingInstances(request) - resp, responseDef := GenRespForListScalingInstances() + requestDef := GenReqDefForListScalingInstances() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingInstancesResponse), nil } } //根据伸缩组ID查询指定弹性伸缩组的通知列表。 func (c *AsClient) ListScalingNotifications(request *model.ListScalingNotificationsRequest) (*model.ListScalingNotificationsResponse, error) { - requestDef := GenReqDefForListScalingNotifications(request) - resp, responseDef := GenRespForListScalingNotifications() + requestDef := GenReqDefForListScalingNotifications() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingNotificationsResponse), nil } } //根据输入条件过滤查询弹性伸缩策略。查询结果分页显示。可根据伸缩策略名称,策略类型,伸缩策略ID,起始行号,记录数进行条件过滤查询。若不加过滤条件默认查询租户下指定伸缩组内最多20条伸缩策略信息。 func (c *AsClient) ListScalingPolicies(request *model.ListScalingPoliciesRequest) (*model.ListScalingPoliciesResponse, error) { - requestDef := GenReqDefForListScalingPolicies(request) - resp, responseDef := GenRespForListScalingPolicies() + requestDef := GenReqDefForListScalingPolicies() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingPoliciesResponse), nil } } //根据输入条件过滤查询策略执行的历史记录。查询结果分页显示。可根据日志ID,伸缩资源类型,伸缩资源ID,策略执行类型,查询额起始,查询截止时间,查询起始行号,查询记录数进行条件过滤查询。若不加过滤条件默认查询最多20条策略执行日志信息。 func (c *AsClient) ListScalingPolicyExecuteLogs(request *model.ListScalingPolicyExecuteLogsRequest) (*model.ListScalingPolicyExecuteLogsResponse, error) { - requestDef := GenReqDefForListScalingPolicyExecuteLogs(request) - resp, responseDef := GenRespForListScalingPolicyExecuteLogs() + requestDef := GenReqDefForListScalingPolicyExecuteLogs() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingPolicyExecuteLogsResponse), nil } } //根据项目ID和资源ID查询指定资源类型的资源标签列表。 func (c *AsClient) ListScalingTagInfosByResourceId(request *model.ListScalingTagInfosByResourceIdRequest) (*model.ListScalingTagInfosByResourceIdResponse, error) { - requestDef := GenReqDefForListScalingTagInfosByResourceId(request) - resp, responseDef := GenRespForListScalingTagInfosByResourceId() + requestDef := GenReqDefForListScalingTagInfosByResourceId() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingTagInfosByResourceIdResponse), nil } } //根据项目ID查询指定资源类型的标签列表。 func (c *AsClient) ListScalingTagInfosByTenantId(request *model.ListScalingTagInfosByTenantIdRequest) (*model.ListScalingTagInfosByTenantIdResponse, error) { - requestDef := GenReqDefForListScalingTagInfosByTenantId(request) - resp, responseDef := GenRespForListScalingTagInfosByTenantId() + requestDef := GenReqDefForListScalingTagInfosByTenantId() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListScalingTagInfosByTenantIdResponse), nil } } //根据伸缩组ID及生命周期挂钩名称查询指定的生命周期挂钩详情。 func (c *AsClient) ShowLifeCycleHook(request *model.ShowLifeCycleHookRequest) (*model.ShowLifeCycleHookResponse, error) { - requestDef := GenReqDefForShowLifeCycleHook(request) - resp, responseDef := GenRespForShowLifeCycleHook() + requestDef := GenReqDefForShowLifeCycleHook() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowLifeCycleHookResponse), nil } } //根据伸缩组ID查询指定弹性伸缩组下的伸缩策略和伸缩实例的配额总数及已使用配额数。 func (c *AsClient) ShowPolicyAndInstanceQuota(request *model.ShowPolicyAndInstanceQuotaRequest) (*model.ShowPolicyAndInstanceQuotaResponse, error) { - requestDef := GenReqDefForShowPolicyAndInstanceQuota(request) - resp, responseDef := GenRespForShowPolicyAndInstanceQuota() + requestDef := GenReqDefForShowPolicyAndInstanceQuota() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowPolicyAndInstanceQuotaResponse), nil } } //查询指定租户下的弹性伸缩组、伸缩配置、伸缩带宽策略、伸缩策略和伸缩实例的配额总数及已使用配额数。 func (c *AsClient) ShowResourceQuota(request *model.ShowResourceQuotaRequest) (*model.ShowResourceQuotaResponse, error) { - requestDef := GenReqDefForShowResourceQuota(request) - resp, responseDef := GenRespForShowResourceQuota() + requestDef := GenReqDefForShowResourceQuota() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowResourceQuotaResponse), nil } } //根据伸缩配置ID查询一个弹性伸缩配置的详细信息。 func (c *AsClient) ShowScalingConfig(request *model.ShowScalingConfigRequest) (*model.ShowScalingConfigResponse, error) { - requestDef := GenReqDefForShowScalingConfig(request) - resp, responseDef := GenRespForShowScalingConfig() + requestDef := GenReqDefForShowScalingConfig() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowScalingConfigResponse), nil } } //查询一个指定弹性伸缩组详情。 func (c *AsClient) ShowScalingGroup(request *model.ShowScalingGroupRequest) (*model.ShowScalingGroupResponse, error) { - requestDef := GenReqDefForShowScalingGroup(request) - resp, responseDef := GenRespForShowScalingGroup() + requestDef := GenReqDefForShowScalingGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowScalingGroupResponse), nil } } //查询指定弹性伸缩策略信息。 func (c *AsClient) ShowScalingPolicy(request *model.ShowScalingPolicyRequest) (*model.ShowScalingPolicyResponse, error) { - requestDef := GenReqDefForShowScalingPolicy(request) - resp, responseDef := GenRespForShowScalingPolicy() + requestDef := GenReqDefForShowScalingPolicy() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowScalingPolicyResponse), nil } } //修改一个指定生命周期挂钩中的信息。 func (c *AsClient) UpdateLifeCycleHook(request *model.UpdateLifeCycleHookRequest) (*model.UpdateLifeCycleHookResponse, error) { - requestDef := GenReqDefForUpdateLifeCycleHook(request) - resp, responseDef := GenRespForUpdateLifeCycleHook() + requestDef := GenReqDefForUpdateLifeCycleHook() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.UpdateLifeCycleHookResponse), nil } } //修改一个指定弹性伸缩组中的信息。更换伸缩组的伸缩配置,伸缩组中已经存在的使用之前伸缩配置创建的云服务器云主机不受影响。伸缩组为没有正在进行的伸缩活动时,可以修改伸缩组的子网、可用区和负载均衡配置。当伸缩组的期望实例数改变时,会触发伸缩活动加入或移出实例。期望实例数必须大于或等于最小实例数,必须小于或等于最大实例数。 func (c *AsClient) UpdateScalingGroup(request *model.UpdateScalingGroupRequest) (*model.UpdateScalingGroupResponse, error) { - requestDef := GenReqDefForUpdateScalingGroup(request) - resp, responseDef := GenRespForUpdateScalingGroup() + requestDef := GenReqDefForUpdateScalingGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.UpdateScalingGroupResponse), nil } } //批量移出伸缩组中的实例或批量添加伸缩组外的实例。批量对伸缩组中的实例设置或取消其实例保护属性。批量将伸缩组中的实例转入或移出备用状态。 func (c *AsClient) UpdateScalingGroupInstance(request *model.UpdateScalingGroupInstanceRequest) (*model.UpdateScalingGroupInstanceResponse, error) { - requestDef := GenReqDefForUpdateScalingGroupInstance(request) - resp, responseDef := GenRespForUpdateScalingGroupInstance() + requestDef := GenReqDefForUpdateScalingGroupInstance() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.UpdateScalingGroupInstanceResponse), nil } } //修改指定弹性伸缩策略。 func (c *AsClient) UpdateScalingPolicy(request *model.UpdateScalingPolicyRequest) (*model.UpdateScalingPolicyResponse, error) { - requestDef := GenReqDefForUpdateScalingPolicy(request) - resp, responseDef := GenRespForUpdateScalingPolicy() + requestDef := GenReqDefForUpdateScalingPolicy() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.UpdateScalingPolicyResponse), nil } } diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/as/v1/as_meta.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/as/v1/as_meta.go index fef620db0a..2400aaae9b 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/as/v1/as_meta.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/as/v1/as_meta.go @@ -6,1246 +6,929 @@ import ( "net/http" ) -func GenReqDefForBatchDeleteScalingConfigs(request *model.BatchDeleteScalingConfigsRequest) *def.HttpRequestDef { +func GenReqDefForBatchDeleteScalingConfigs() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/scaling_configurations"). + WithResponse(new(model.BatchDeleteScalingConfigsResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForBatchDeleteScalingConfigs() (*model.BatchDeleteScalingConfigsResponse, *def.HttpResponseDef) { - resp := new(model.BatchDeleteScalingConfigsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCompleteLifecycleAction(request *model.CompleteLifecycleActionRequest) *def.HttpRequestDef { +func GenReqDefForCompleteLifecycleAction() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPut). WithPath("/autoscaling-api/v1/{project_id}/scaling_instance_hook/{scaling_group_id}/callback"). + WithResponse(new(model.CompleteLifecycleActionResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCompleteLifecycleAction() (*model.CompleteLifecycleActionResponse, *def.HttpResponseDef) { - resp := new(model.CompleteLifecycleActionResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreateLifyCycleHook(request *model.CreateLifyCycleHookRequest) *def.HttpRequestDef { +func GenReqDefForCreateLifyCycleHook() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}"). + WithResponse(new(model.CreateLifyCycleHookResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreateLifyCycleHook() (*model.CreateLifyCycleHookResponse, *def.HttpResponseDef) { - resp := new(model.CreateLifyCycleHookResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreateScalingConfig(request *model.CreateScalingConfigRequest) *def.HttpRequestDef { +func GenReqDefForCreateScalingConfig() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/scaling_configuration"). + WithResponse(new(model.CreateScalingConfigResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreateScalingConfig() (*model.CreateScalingConfigResponse, *def.HttpResponseDef) { - resp := new(model.CreateScalingConfigResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreateScalingGroup(request *model.CreateScalingGroupRequest) *def.HttpRequestDef { +func GenReqDefForCreateScalingGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/scaling_group"). + WithResponse(new(model.CreateScalingGroupResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreateScalingGroup() (*model.CreateScalingGroupResponse, *def.HttpResponseDef) { - resp := new(model.CreateScalingGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreateScalingNotification(request *model.CreateScalingNotificationRequest) *def.HttpRequestDef { +func GenReqDefForCreateScalingNotification() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPut). WithPath("/autoscaling-api/v1/{project_id}/scaling_notification/{scaling_group_id}"). + WithResponse(new(model.CreateScalingNotificationResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreateScalingNotification() (*model.CreateScalingNotificationResponse, *def.HttpResponseDef) { - resp := new(model.CreateScalingNotificationResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreateScalingPolicy(request *model.CreateScalingPolicyRequest) *def.HttpRequestDef { +func GenReqDefForCreateScalingPolicy() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/scaling_policy"). + WithResponse(new(model.CreateScalingPolicyResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreateScalingPolicy() (*model.CreateScalingPolicyResponse, *def.HttpResponseDef) { - resp := new(model.CreateScalingPolicyResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreateScalingTags(request *model.CreateScalingTagsRequest) *def.HttpRequestDef { +func GenReqDefForCreateScalingTags() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/{resource_type}/{resource_id}/tags/action"). + WithResponse(new(model.CreateScalingTagsResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("resource_type"). + WithName("ResourceType"). + WithJsonTag("resource_type"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("resource_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ResourceId"). + WithJsonTag("resource_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreateScalingTags() (*model.CreateScalingTagsResponse, *def.HttpResponseDef) { - resp := new(model.CreateScalingTagsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteLifecycleHook(request *model.DeleteLifecycleHookRequest) *def.HttpRequestDef { +func GenReqDefForDeleteLifecycleHook() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}/{lifecycle_hook_name}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}/{lifecycle_hook_name}"). + WithResponse(new(model.DeleteLifecycleHookResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("lifecycle_hook_name"). + WithName("LifecycleHookName"). + WithJsonTag("lifecycle_hook_name"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteLifecycleHook() (*model.DeleteLifecycleHookResponse, *def.HttpResponseDef) { - resp := new(model.DeleteLifecycleHookResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteScalingConfig(request *model.DeleteScalingConfigRequest) *def.HttpRequestDef { +func GenReqDefForDeleteScalingConfig() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/autoscaling-api/v1/{project_id}/scaling_configuration/{scaling_configuration_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_configuration/{scaling_configuration_id}"). + WithResponse(new(model.DeleteScalingConfigResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_configuration_id"). + WithName("ScalingConfigurationId"). + WithJsonTag("scaling_configuration_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteScalingConfig() (*model.DeleteScalingConfigResponse, *def.HttpResponseDef) { - resp := new(model.DeleteScalingConfigResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteScalingGroup(request *model.DeleteScalingGroupRequest) *def.HttpRequestDef { +func GenReqDefForDeleteScalingGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}"). + WithResponse(new(model.DeleteScalingGroupResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("force_delete"). + WithName("ForceDelete"). + WithJsonTag("force_delete"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteScalingGroup() (*model.DeleteScalingGroupResponse, *def.HttpResponseDef) { - resp := new(model.DeleteScalingGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteScalingInstance(request *model.DeleteScalingInstanceRequest) *def.HttpRequestDef { +func GenReqDefForDeleteScalingInstance() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/autoscaling-api/v1/{project_id}/scaling_group_instance/{instance_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_group_instance/{instance_id}"). + WithResponse(new(model.DeleteScalingInstanceResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("instance_id"). + WithName("InstanceId"). + WithJsonTag("instance_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("instance_delete"). + WithName("InstanceDelete"). + WithJsonTag("instance_delete"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteScalingInstance() (*model.DeleteScalingInstanceResponse, *def.HttpResponseDef) { - resp := new(model.DeleteScalingInstanceResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteScalingNotification(request *model.DeleteScalingNotificationRequest) *def.HttpRequestDef { +func GenReqDefForDeleteScalingNotification() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/autoscaling-api/v1/{project_id}/scaling_notification/{scaling_group_id}/{topic_urn}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_notification/{scaling_group_id}/{topic_urn}"). + WithResponse(new(model.DeleteScalingNotificationResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("topic_urn"). + WithName("TopicUrn"). + WithJsonTag("topic_urn"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteScalingNotification() (*model.DeleteScalingNotificationResponse, *def.HttpResponseDef) { - resp := new(model.DeleteScalingNotificationResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteScalingPolicy(request *model.DeleteScalingPolicyRequest) *def.HttpRequestDef { +func GenReqDefForDeleteScalingPolicy() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/autoscaling-api/v1/{project_id}/scaling_policy/{scaling_policy_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_policy/{scaling_policy_id}"). + WithResponse(new(model.DeleteScalingPolicyResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_policy_id"). + WithName("ScalingPolicyId"). + WithJsonTag("scaling_policy_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteScalingPolicy() (*model.DeleteScalingPolicyResponse, *def.HttpResponseDef) { - resp := new(model.DeleteScalingPolicyResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteScalingTags(request *model.DeleteScalingTagsRequest) *def.HttpRequestDef { +func GenReqDefForDeleteScalingTags() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/{resource_type}/{resource_id}/tags/action"). + WithResponse(new(model.DeleteScalingTagsResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("resource_type"). + WithName("ResourceType"). + WithJsonTag("resource_type"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("resource_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ResourceId"). + WithJsonTag("resource_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteScalingTags() (*model.DeleteScalingTagsResponse, *def.HttpResponseDef) { - resp := new(model.DeleteScalingTagsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForEnableOrDisableScalingGroup(request *model.EnableOrDisableScalingGroupRequest) *def.HttpRequestDef { +func GenReqDefForEnableOrDisableScalingGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}/action"). + WithResponse(new(model.EnableOrDisableScalingGroupResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForEnableOrDisableScalingGroup() (*model.EnableOrDisableScalingGroupResponse, *def.HttpResponseDef) { - resp := new(model.EnableOrDisableScalingGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForExecuteScalingPolicy(request *model.ExecuteScalingPolicyRequest) *def.HttpRequestDef { +func GenReqDefForExecuteScalingPolicy() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/scaling_policy/{scaling_policy_id}/action"). + WithResponse(new(model.ExecuteScalingPolicyResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_policy_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ScalingPolicyId"). + WithJsonTag("scaling_policy_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForExecuteScalingPolicy() (*model.ExecuteScalingPolicyResponse, *def.HttpResponseDef) { - resp := new(model.ExecuteScalingPolicyResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListHookInstances(request *model.ListHookInstancesRequest) *def.HttpRequestDef { +func GenReqDefForListHookInstances() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_instance_hook/{scaling_group_id}/list") + WithPath("/autoscaling-api/v1/{project_id}/scaling_instance_hook/{scaling_group_id}/list"). + WithResponse(new(model.ListHookInstancesResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("instance_id"). + WithName("InstanceId"). + WithJsonTag("instance_id"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListHookInstances() (*model.ListHookInstancesResponse, *def.HttpResponseDef) { - resp := new(model.ListHookInstancesResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListLifeCycleHooks(request *model.ListLifeCycleHooksRequest) *def.HttpRequestDef { +func GenReqDefForListLifeCycleHooks() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}/list") + WithPath("/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}/list"). + WithResponse(new(model.ListLifeCycleHooksResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListLifeCycleHooks() (*model.ListLifeCycleHooksResponse, *def.HttpResponseDef) { - resp := new(model.ListLifeCycleHooksResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListResourceInstances(request *model.ListResourceInstancesRequest) *def.HttpRequestDef { +func GenReqDefForListResourceInstances() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/{resource_type}/resource_instances/action"). + WithResponse(new(model.ListResourceInstancesResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("resource_type"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ResourceType"). + WithJsonTag("resource_type"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListResourceInstances() (*model.ListResourceInstancesResponse, *def.HttpResponseDef) { - resp := new(model.ListResourceInstancesResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingActivityLogs(request *model.ListScalingActivityLogsRequest) *def.HttpRequestDef { +func GenReqDefForListScalingActivityLogs() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_activity_log/{scaling_group_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_activity_log/{scaling_group_id}"). + WithResponse(new(model.ListScalingActivityLogsResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("start_time"). + WithName("StartTime"). + WithJsonTag("start_time"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("end_time"). + WithName("EndTime"). + WithJsonTag("end_time"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("start_number"). + WithName("StartNumber"). + WithJsonTag("start_number"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingActivityLogs() (*model.ListScalingActivityLogsResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingActivityLogsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingConfigs(request *model.ListScalingConfigsRequest) *def.HttpRequestDef { +func GenReqDefForListScalingConfigs() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_configuration") + WithPath("/autoscaling-api/v1/{project_id}/scaling_configuration"). + WithResponse(new(model.ListScalingConfigsResponse)) + + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_configuration_name"). + WithName("ScalingConfigurationName"). + WithJsonTag("scaling_configuration_name"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("image_id"). + WithName("ImageId"). + WithJsonTag("image_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("start_number"). + WithName("StartNumber"). + WithJsonTag("start_number"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingConfigs() (*model.ListScalingConfigsResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingConfigsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingGroups(request *model.ListScalingGroupsRequest) *def.HttpRequestDef { +func GenReqDefForListScalingGroups() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_group") + WithPath("/autoscaling-api/v1/{project_id}/scaling_group"). + WithResponse(new(model.ListScalingGroupsResponse)) + + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_name"). + WithName("ScalingGroupName"). + WithJsonTag("scaling_group_name"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_configuration_id"). + WithName("ScalingConfigurationId"). + WithJsonTag("scaling_configuration_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_status"). + WithName("ScalingGroupStatus"). + WithJsonTag("scaling_group_status"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("start_number"). + WithName("StartNumber"). + WithJsonTag("start_number"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingGroups() (*model.ListScalingGroupsResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingGroupsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingInstances(request *model.ListScalingInstancesRequest) *def.HttpRequestDef { +func GenReqDefForListScalingInstances() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_group_instance/{scaling_group_id}/list") + WithPath("/autoscaling-api/v1/{project_id}/scaling_group_instance/{scaling_group_id}/list"). + WithResponse(new(model.ListScalingInstancesResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("life_cycle_state"). + WithName("LifeCycleState"). + WithJsonTag("life_cycle_state"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("health_status"). + WithName("HealthStatus"). + WithJsonTag("health_status"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("protect_from_scaling_down"). + WithName("ProtectFromScalingDown"). + WithJsonTag("protect_from_scaling_down"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("start_number"). + WithName("StartNumber"). + WithJsonTag("start_number"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingInstances() (*model.ListScalingInstancesResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingInstancesResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingNotifications(request *model.ListScalingNotificationsRequest) *def.HttpRequestDef { +func GenReqDefForListScalingNotifications() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_notification/{scaling_group_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_notification/{scaling_group_id}"). + WithResponse(new(model.ListScalingNotificationsResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingNotifications() (*model.ListScalingNotificationsResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingNotificationsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingPolicies(request *model.ListScalingPoliciesRequest) *def.HttpRequestDef { +func GenReqDefForListScalingPolicies() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_policy/{scaling_group_id}/list") + WithPath("/autoscaling-api/v1/{project_id}/scaling_policy/{scaling_group_id}/list"). + WithResponse(new(model.ListScalingPoliciesResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_policy_name"). + WithName("ScalingPolicyName"). + WithJsonTag("scaling_policy_name"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_policy_type"). + WithName("ScalingPolicyType"). + WithJsonTag("scaling_policy_type"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_policy_id"). + WithName("ScalingPolicyId"). + WithJsonTag("scaling_policy_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("start_number"). + WithName("StartNumber"). + WithJsonTag("start_number"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingPolicies() (*model.ListScalingPoliciesResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingPoliciesResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingPolicyExecuteLogs(request *model.ListScalingPolicyExecuteLogsRequest) *def.HttpRequestDef { +func GenReqDefForListScalingPolicyExecuteLogs() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_policy_execute_log/{scaling_policy_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_policy_execute_log/{scaling_policy_id}"). + WithResponse(new(model.ListScalingPolicyExecuteLogsResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_policy_id"). + WithName("ScalingPolicyId"). + WithJsonTag("scaling_policy_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("log_id"). + WithName("LogId"). + WithJsonTag("log_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_resource_type"). + WithName("ScalingResourceType"). + WithJsonTag("scaling_resource_type"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_resource_id"). + WithName("ScalingResourceId"). + WithJsonTag("scaling_resource_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("execute_type"). + WithName("ExecuteType"). + WithJsonTag("execute_type"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("start_time"). + WithName("StartTime"). + WithJsonTag("start_time"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("end_time"). + WithName("EndTime"). + WithJsonTag("end_time"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("start_number"). + WithName("StartNumber"). + WithJsonTag("start_number"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingPolicyExecuteLogs() (*model.ListScalingPolicyExecuteLogsResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingPolicyExecuteLogsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingTagInfosByResourceId(request *model.ListScalingTagInfosByResourceIdRequest) *def.HttpRequestDef { +func GenReqDefForListScalingTagInfosByResourceId() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/{resource_type}/{resource_id}/tags") + WithPath("/autoscaling-api/v1/{project_id}/{resource_type}/{resource_id}/tags"). + WithResponse(new(model.ListScalingTagInfosByResourceIdResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("resource_type"). + WithName("ResourceType"). + WithJsonTag("resource_type"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("resource_id"). + WithName("ResourceId"). + WithJsonTag("resource_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingTagInfosByResourceId() (*model.ListScalingTagInfosByResourceIdResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingTagInfosByResourceIdResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListScalingTagInfosByTenantId(request *model.ListScalingTagInfosByTenantIdRequest) *def.HttpRequestDef { +func GenReqDefForListScalingTagInfosByTenantId() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/{resource_type}/tags") + WithPath("/autoscaling-api/v1/{project_id}/{resource_type}/tags"). + WithResponse(new(model.ListScalingTagInfosByTenantIdResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("resource_type"). + WithName("ResourceType"). + WithJsonTag("resource_type"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListScalingTagInfosByTenantId() (*model.ListScalingTagInfosByTenantIdResponse, *def.HttpResponseDef) { - resp := new(model.ListScalingTagInfosByTenantIdResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowLifeCycleHook(request *model.ShowLifeCycleHookRequest) *def.HttpRequestDef { +func GenReqDefForShowLifeCycleHook() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}/{lifecycle_hook_name}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}/{lifecycle_hook_name}"). + WithResponse(new(model.ShowLifeCycleHookResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("lifecycle_hook_name"). + WithName("LifecycleHookName"). + WithJsonTag("lifecycle_hook_name"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowLifeCycleHook() (*model.ShowLifeCycleHookResponse, *def.HttpResponseDef) { - resp := new(model.ShowLifeCycleHookResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowPolicyAndInstanceQuota(request *model.ShowPolicyAndInstanceQuotaRequest) *def.HttpRequestDef { +func GenReqDefForShowPolicyAndInstanceQuota() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/quotas/{scaling_group_id}") + WithPath("/autoscaling-api/v1/{project_id}/quotas/{scaling_group_id}"). + WithResponse(new(model.ShowPolicyAndInstanceQuotaResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowPolicyAndInstanceQuota() (*model.ShowPolicyAndInstanceQuotaResponse, *def.HttpResponseDef) { - resp := new(model.ShowPolicyAndInstanceQuotaResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowResourceQuota(request *model.ShowResourceQuotaRequest) *def.HttpRequestDef { +func GenReqDefForShowResourceQuota() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/quotas") + WithPath("/autoscaling-api/v1/{project_id}/quotas"). + WithResponse(new(model.ShowResourceQuotaResponse)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + // request - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowResourceQuota() (*model.ShowResourceQuotaResponse, *def.HttpResponseDef) { - resp := new(model.ShowResourceQuotaResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowScalingConfig(request *model.ShowScalingConfigRequest) *def.HttpRequestDef { +func GenReqDefForShowScalingConfig() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_configuration/{scaling_configuration_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_configuration/{scaling_configuration_id}"). + WithResponse(new(model.ShowScalingConfigResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_configuration_id"). + WithName("ScalingConfigurationId"). + WithJsonTag("scaling_configuration_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowScalingConfig() (*model.ShowScalingConfigResponse, *def.HttpResponseDef) { - resp := new(model.ShowScalingConfigResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowScalingGroup(request *model.ShowScalingGroupRequest) *def.HttpRequestDef { +func GenReqDefForShowScalingGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}"). + WithResponse(new(model.ShowScalingGroupResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowScalingGroup() (*model.ShowScalingGroupResponse, *def.HttpResponseDef) { - resp := new(model.ShowScalingGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowScalingPolicy(request *model.ShowScalingPolicyRequest) *def.HttpRequestDef { +func GenReqDefForShowScalingPolicy() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/autoscaling-api/v1/{project_id}/scaling_policy/{scaling_policy_id}") + WithPath("/autoscaling-api/v1/{project_id}/scaling_policy/{scaling_policy_id}"). + WithResponse(new(model.ShowScalingPolicyResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_policy_id"). + WithName("ScalingPolicyId"). + WithJsonTag("scaling_policy_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowScalingPolicy() (*model.ShowScalingPolicyResponse, *def.HttpResponseDef) { - resp := new(model.ShowScalingPolicyResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForUpdateLifeCycleHook(request *model.UpdateLifeCycleHookRequest) *def.HttpRequestDef { +func GenReqDefForUpdateLifeCycleHook() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPut). WithPath("/autoscaling-api/v1/{project_id}/scaling_lifecycle_hook/{scaling_group_id}/{lifecycle_hook_name}"). + WithResponse(new(model.UpdateLifeCycleHookResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("lifecycle_hook_name"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("LifecycleHookName"). + WithJsonTag("lifecycle_hook_name"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForUpdateLifeCycleHook() (*model.UpdateLifeCycleHookResponse, *def.HttpResponseDef) { - resp := new(model.UpdateLifeCycleHookResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForUpdateScalingGroup(request *model.UpdateScalingGroupRequest) *def.HttpRequestDef { +func GenReqDefForUpdateScalingGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPut). WithPath("/autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}"). + WithResponse(new(model.UpdateScalingGroupResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForUpdateScalingGroup() (*model.UpdateScalingGroupResponse, *def.HttpResponseDef) { - resp := new(model.UpdateScalingGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForUpdateScalingGroupInstance(request *model.UpdateScalingGroupInstanceRequest) *def.HttpRequestDef { +func GenReqDefForUpdateScalingGroupInstance() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/autoscaling-api/v1/{project_id}/scaling_group_instance/{scaling_group_id}/action"). + WithResponse(new(model.UpdateScalingGroupInstanceResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_group_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ScalingGroupId"). + WithJsonTag("scaling_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForUpdateScalingGroupInstance() (*model.UpdateScalingGroupInstanceResponse, *def.HttpResponseDef) { - resp := new(model.UpdateScalingGroupInstanceResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForUpdateScalingPolicy(request *model.UpdateScalingPolicyRequest) *def.HttpRequestDef { +func GenReqDefForUpdateScalingPolicy() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPut). WithPath("/autoscaling-api/v1/{project_id}/scaling_policy/{scaling_policy_id}"). + WithResponse(new(model.UpdateScalingPolicyResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("scaling_policy_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ScalingPolicyId"). + WithJsonTag("scaling_policy_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } - -func GenRespForUpdateScalingPolicy() (*model.UpdateScalingPolicyResponse, *def.HttpResponseDef) { - resp := new(model.UpdateScalingPolicyResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/ecs_client.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/ecs_client.go index 5dae38d4a7..35ed678347 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/ecs_client.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/ecs_client.go @@ -20,552 +20,506 @@ func EcsClientBuilder() *http_client.HcHttpClientBuilder { //将云服务器加入云服务器组。添加成功后,如果该云服务器组是反亲和性策略的,则该云服务器与云服务器组中的其他成员尽量分散地创建在不同主机上。如果该云服务器时故障域类型的,则该云服务器会拥有故障域属性。 func (c *EcsClient) AddServerGroupMember(request *model.AddServerGroupMemberRequest) (*model.AddServerGroupMemberResponse, error) { - requestDef := GenReqDefForAddServerGroupMember(request) - resp, responseDef := GenRespForAddServerGroupMember() + requestDef := GenReqDefForAddServerGroupMember() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.AddServerGroupMemberResponse), nil } } //把磁盘挂载到弹性云服务器上。 func (c *EcsClient) AttachServerVolume(request *model.AttachServerVolumeRequest) (*model.AttachServerVolumeResponse, error) { - requestDef := GenReqDefForAttachServerVolume(request) - resp, responseDef := GenRespForAttachServerVolume() + requestDef := GenReqDefForAttachServerVolume() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.AttachServerVolumeResponse), nil } } //给云服务器添加一张或多张网卡。 func (c *EcsClient) BatchAddServerNics(request *model.BatchAddServerNicsRequest) (*model.BatchAddServerNicsResponse, error) { - requestDef := GenReqDefForBatchAddServerNics(request) - resp, responseDef := GenRespForBatchAddServerNics() + requestDef := GenReqDefForBatchAddServerNics() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.BatchAddServerNicsResponse), nil } } //- 为指定云服务器批量添加标签。 - 标签管理服务TMS使用该接口批量管理云服务器的标签。 func (c *EcsClient) BatchCreateServerTags(request *model.BatchCreateServerTagsRequest) (*model.BatchCreateServerTagsResponse, error) { - requestDef := GenReqDefForBatchCreateServerTags(request) - resp, responseDef := GenRespForBatchCreateServerTags() + requestDef := GenReqDefForBatchCreateServerTags() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.BatchCreateServerTagsResponse), nil } } //卸载并删除云服务器中的一张或多张网卡。 func (c *EcsClient) BatchDeleteServerNics(request *model.BatchDeleteServerNicsRequest) (*model.BatchDeleteServerNicsResponse, error) { - requestDef := GenReqDefForBatchDeleteServerNics(request) - resp, responseDef := GenRespForBatchDeleteServerNics() + requestDef := GenReqDefForBatchDeleteServerNics() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.BatchDeleteServerNicsResponse), nil } } //- 为指定云服务器批量删除标签。 - 标签管理服务TMS使用该接口批量管理云服务器的标签。 func (c *EcsClient) BatchDeleteServerTags(request *model.BatchDeleteServerTagsRequest) (*model.BatchDeleteServerTagsResponse, error) { - requestDef := GenReqDefForBatchDeleteServerTags(request) - resp, responseDef := GenRespForBatchDeleteServerTags() + requestDef := GenReqDefForBatchDeleteServerTags() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.BatchDeleteServerTagsResponse), nil } } //根据给定的云服务器ID列表,批量重启云服务器,一次最多可以重启1000台。 func (c *EcsClient) BatchRebootServers(request *model.BatchRebootServersRequest) (*model.BatchRebootServersResponse, error) { - requestDef := GenReqDefForBatchRebootServers(request) - resp, responseDef := GenRespForBatchRebootServers() + requestDef := GenReqDefForBatchRebootServers() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.BatchRebootServersResponse), nil } } //根据给定的云服务器ID列表,批量启动云服务器,一次最多可以启动1000台。 func (c *EcsClient) BatchStartServers(request *model.BatchStartServersRequest) (*model.BatchStartServersResponse, error) { - requestDef := GenReqDefForBatchStartServers(request) - resp, responseDef := GenRespForBatchStartServers() + requestDef := GenReqDefForBatchStartServers() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.BatchStartServersResponse), nil } } //根据给定的云服务器ID列表,批量关闭云服务器,一次最多可以关闭1000台。 func (c *EcsClient) BatchStopServers(request *model.BatchStopServersRequest) (*model.BatchStopServersResponse, error) { - requestDef := GenReqDefForBatchStopServers(request) - resp, responseDef := GenRespForBatchStopServers() + requestDef := GenReqDefForBatchStopServers() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.BatchStopServersResponse), nil } } //切换弹性云服务器操作系统。支持弹性云服务器数据盘不变的情况下,使用新镜像重装系统盘。 调用该接口后,系统将卸载系统盘,然后使用新镜像重新创建系统盘,并挂载至弹性云服务器,实现切换操作系统功能。 func (c *EcsClient) ChangeServerOsWithCloudInit(request *model.ChangeServerOsWithCloudInitRequest) (*model.ChangeServerOsWithCloudInitResponse, error) { - requestDef := GenReqDefForChangeServerOsWithCloudInit(request) - resp, responseDef := GenRespForChangeServerOsWithCloudInit() + requestDef := GenReqDefForChangeServerOsWithCloudInit() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ChangeServerOsWithCloudInitResponse), nil } } //创建一台或多台按需付费方式的云服务器。 弹性云服务器的登录鉴权方式包括两种:密钥对、密码。为安全起见,推荐使用密钥对方式。 - 密钥对 密钥对指使用密钥对作为弹性云服务器的鉴权方式。 接口调用方法:使用key_name字段,指定弹性云服务器登录时使用的密钥文件。 - 密码 密码指使用设置初始密码方式作为弹性云服务器的鉴权方式,此时,您可以通过用户名密码方式登录弹性云服务器,Linux操作系统时为root用户的初始密码,Windows操作系统时为Administrator用户的初始密码。 接口调用方法:使用adminPass字段,指定管理员帐号的初始登录密码。对于镜像已安装Cloud-init的Linux云服务器,如果需要使用密文密码,可以使用user_data字段进行密码注入。 > 对于安装Cloud-init镜像的Linux云服务器云主机,若指定user_data字段,则adminPass字段无效。 func (c *EcsClient) CreatePostPaidServers(request *model.CreatePostPaidServersRequest) (*model.CreatePostPaidServersResponse, error) { - requestDef := GenReqDefForCreatePostPaidServers(request) - resp, responseDef := GenRespForCreatePostPaidServers() + requestDef := GenReqDefForCreatePostPaidServers() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreatePostPaidServersResponse), nil } } //创建弹性云服务器组。 与原生的创建云服务器组接口不同之处在于该接口支持企业项目细粒度权限的校验。 func (c *EcsClient) CreateServerGroup(request *model.CreateServerGroupRequest) (*model.CreateServerGroupResponse, error) { - requestDef := GenReqDefForCreateServerGroup(request) - resp, responseDef := GenRespForCreateServerGroup() + requestDef := GenReqDefForCreateServerGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreateServerGroupResponse), nil } } //创建一台或多台云服务器。 指该接口兼容《弹性云服务器接口参考》创建云服务器v1的功能,同时合入新功能,支持创建包年/包月的弹性云服务器。 弹性云服务器的登录鉴权方式包括两种:密钥对、密码。为安全起见,推荐使用密钥对方式。 - 密钥对 指使用密钥对作为弹性云服务器的鉴权方式。 接口调用方法:使用key_name字段,指定弹性云服务器登录时使用的密钥文件。 - 密码 指使用设置初始密码方式作为弹性云服务器的鉴权方式,此时,您可以通过用户名密码方式登录弹性云服务器,Linux操作系统时为root用户的初始密码,Windows操作系统时为Administrator用户的初始密码。 接口调用方法:使用adminPass字段,指定管理员帐号的初始登录密码。对于镜像已安装Cloud-init的Linux云服务器,如果需要使用密文密码,可以使用user_data字段进行密码注入。 > 对于安装Cloud-init镜像的Linux云服务器云主机,若指定user_data字段,则adminPass字段无效。 func (c *EcsClient) CreateServers(request *model.CreateServersRequest) (*model.CreateServersResponse, error) { - requestDef := GenReqDefForCreateServers(request) - resp, responseDef := GenRespForCreateServers() + requestDef := GenReqDefForCreateServers() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.CreateServersResponse), nil } } //删除云服务器组。 与原生的删除云服务器组接口不同之处在于该接口支持企业项目细粒度权限的校验。 func (c *EcsClient) DeleteServerGroup(request *model.DeleteServerGroupRequest) (*model.DeleteServerGroupResponse, error) { - requestDef := GenReqDefForDeleteServerGroup(request) - resp, responseDef := GenRespForDeleteServerGroup() + requestDef := GenReqDefForDeleteServerGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteServerGroupResponse), nil } } //将弹性云服务器移出云服务器组。移出后,该云服务器与云服务器组中的成员不再遵从反亲和策略。 func (c *EcsClient) DeleteServerGroupMember(request *model.DeleteServerGroupMemberRequest) (*model.DeleteServerGroupMemberResponse, error) { - requestDef := GenReqDefForDeleteServerGroupMember(request) - resp, responseDef := GenRespForDeleteServerGroupMember() + requestDef := GenReqDefForDeleteServerGroupMember() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteServerGroupMemberResponse), nil } } //删除云服务器指定元数据。 func (c *EcsClient) DeleteServerMetadata(request *model.DeleteServerMetadataRequest) (*model.DeleteServerMetadataResponse, error) { - requestDef := GenReqDefForDeleteServerMetadata(request) - resp, responseDef := GenRespForDeleteServerMetadata() + requestDef := GenReqDefForDeleteServerMetadata() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteServerMetadataResponse), nil } } //根据指定的云服务器ID列表,删除云服务器。 系统支持删除单台云服务器和批量删除多台云服务器操作,批量删除云服务器时,一次最多可以删除1000台。 func (c *EcsClient) DeleteServers(request *model.DeleteServersRequest) (*model.DeleteServersResponse, error) { - requestDef := GenReqDefForDeleteServers(request) - resp, responseDef := GenRespForDeleteServers() + requestDef := GenReqDefForDeleteServers() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DeleteServersResponse), nil } } //从弹性云服务器中卸载磁盘。 func (c *EcsClient) DetachServerVolume(request *model.DetachServerVolumeRequest) (*model.DetachServerVolumeResponse, error) { - requestDef := GenReqDefForDetachServerVolume(request) - resp, responseDef := GenRespForDetachServerVolume() + requestDef := GenReqDefForDetachServerVolume() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.DetachServerVolumeResponse), nil } } //查询云服务器规格详情信息和规格扩展信息列表。 func (c *EcsClient) ListFlavors(request *model.ListFlavorsRequest) (*model.ListFlavorsResponse, error) { - requestDef := GenReqDefForListFlavors(request) - resp, responseDef := GenRespForListFlavors() + requestDef := GenReqDefForListFlavors() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListFlavorsResponse), nil } } //变更规格时,部分规格的云服务器之间不能互相变更。您可以通过本接口,通过指定弹性云服务器规格,查询该规格可以变更的规格列表。 func (c *EcsClient) ListResizeFlavors(request *model.ListResizeFlavorsRequest) (*model.ListResizeFlavorsResponse, error) { - requestDef := GenReqDefForListResizeFlavors(request) - resp, responseDef := GenRespForListResizeFlavors() + requestDef := GenReqDefForListResizeFlavors() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListResizeFlavorsResponse), nil } } //查询弹性云服务器挂载的磁盘信息。 func (c *EcsClient) ListServerBlockDevices(request *model.ListServerBlockDevicesRequest) (*model.ListServerBlockDevicesResponse, error) { - requestDef := GenReqDefForListServerBlockDevices(request) - resp, responseDef := GenRespForListServerBlockDevices() + requestDef := GenReqDefForListServerBlockDevices() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListServerBlockDevicesResponse), nil } } //查询云服务器网卡信息。 func (c *EcsClient) ListServerInterfaces(request *model.ListServerInterfacesRequest) (*model.ListServerInterfacesResponse, error) { - requestDef := GenReqDefForListServerInterfaces(request) - resp, responseDef := GenRespForListServerInterfaces() + requestDef := GenReqDefForListServerInterfaces() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListServerInterfacesResponse), nil } } //根据用户请求条件从数据库筛选、查询所有的弹性云服务器,并关联相关表获取到弹性云服务器的详细信息。 该接口支持查询弹性云服务器计费方式,以及是否被冻结。 func (c *EcsClient) ListServersDetails(request *model.ListServersDetailsRequest) (*model.ListServersDetailsResponse, error) { - requestDef := GenReqDefForListServersDetails(request) - resp, responseDef := GenRespForListServersDetails() + requestDef := GenReqDefForListServersDetails() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ListServersDetailsResponse), nil } } //为弹性云服务器添加一个安全组。 添加多个安全组时,建议最多为弹性云服务器添加5个安全组。 func (c *EcsClient) NovaAssociateSecurityGroup(request *model.NovaAssociateSecurityGroupRequest) (*model.NovaAssociateSecurityGroupResponse, error) { - requestDef := GenReqDefForNovaAssociateSecurityGroup(request) - resp, responseDef := GenRespForNovaAssociateSecurityGroup() + requestDef := GenReqDefForNovaAssociateSecurityGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaAssociateSecurityGroupResponse), nil } } //创建SSH密钥,或把公钥导入系统,生成密钥对。 创建SSH密钥成功后,请把响应数据中的私钥内容保存到本地文件,用户使用该私钥登录云服务器云主机。为保证云服务器云主机器安全,私钥数据只能读取一次,请妥善保管。 func (c *EcsClient) NovaCreateKeypair(request *model.NovaCreateKeypairRequest) (*model.NovaCreateKeypairResponse, error) { - requestDef := GenReqDefForNovaCreateKeypair(request) - resp, responseDef := GenRespForNovaCreateKeypair() + requestDef := GenReqDefForNovaCreateKeypair() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaCreateKeypairResponse), nil } } //创建一台弹性云服务器。 弹性云服务器创建完成后,如需开启自动恢复功能,可以调用配置云服务器自动恢复的接口,具体使用请参见管理云服务器自动恢复动作。 该接口在云服务器创建失败后不支持自动回滚。若需要自动回滚能力,可以调用POST /v1/{project_id}/cloudservers接口,具体使用请参见创建云服务器(按需)。 func (c *EcsClient) NovaCreateServers(request *model.NovaCreateServersRequest) (*model.NovaCreateServersResponse, error) { - requestDef := GenReqDefForNovaCreateServers(request) - resp, responseDef := GenRespForNovaCreateServers() + requestDef := GenReqDefForNovaCreateServers() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaCreateServersResponse), nil } } //根据SSH密钥的名称,删除指定SSH密钥。 func (c *EcsClient) NovaDeleteKeypair(request *model.NovaDeleteKeypairRequest) (*model.NovaDeleteKeypairResponse, error) { - requestDef := GenReqDefForNovaDeleteKeypair(request) - resp, responseDef := GenRespForNovaDeleteKeypair() + requestDef := GenReqDefForNovaDeleteKeypair() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaDeleteKeypairResponse), nil } } //删除一台云服务器。 func (c *EcsClient) NovaDeleteServer(request *model.NovaDeleteServerRequest) (*model.NovaDeleteServerResponse, error) { - requestDef := GenReqDefForNovaDeleteServer(request) - resp, responseDef := GenRespForNovaDeleteServer() + requestDef := GenReqDefForNovaDeleteServer() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaDeleteServerResponse), nil } } //移除弹性云服务器中的安全组。 func (c *EcsClient) NovaDisassociateSecurityGroup(request *model.NovaDisassociateSecurityGroupRequest) (*model.NovaDisassociateSecurityGroupResponse, error) { - requestDef := GenReqDefForNovaDisassociateSecurityGroup(request) - resp, responseDef := GenRespForNovaDisassociateSecurityGroup() + requestDef := GenReqDefForNovaDisassociateSecurityGroup() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaDisassociateSecurityGroupResponse), nil } } //查询可用域列表。 func (c *EcsClient) NovaListAvailabilityZones(request *model.NovaListAvailabilityZonesRequest) (*model.NovaListAvailabilityZonesResponse, error) { - requestDef := GenReqDefForNovaListAvailabilityZones(request) - resp, responseDef := GenRespForNovaListAvailabilityZones() + requestDef := GenReqDefForNovaListAvailabilityZones() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaListAvailabilityZonesResponse), nil } } //查询SSH密钥信息列表。 func (c *EcsClient) NovaListKeypairs(request *model.NovaListKeypairsRequest) (*model.NovaListKeypairsResponse, error) { - requestDef := GenReqDefForNovaListKeypairs(request) - resp, responseDef := GenRespForNovaListKeypairs() + requestDef := GenReqDefForNovaListKeypairs() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaListKeypairsResponse), nil } } //查询指定弹性云服务器的安全组。 func (c *EcsClient) NovaListServerSecurityGroups(request *model.NovaListServerSecurityGroupsRequest) (*model.NovaListServerSecurityGroupsResponse, error) { - requestDef := GenReqDefForNovaListServerSecurityGroups(request) - resp, responseDef := GenRespForNovaListServerSecurityGroups() + requestDef := GenReqDefForNovaListServerSecurityGroups() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaListServerSecurityGroupsResponse), nil } } //查询云服务器详情信息列表。 func (c *EcsClient) NovaListServersDetails(request *model.NovaListServersDetailsRequest) (*model.NovaListServersDetailsResponse, error) { - requestDef := GenReqDefForNovaListServersDetails(request) - resp, responseDef := GenRespForNovaListServersDetails() + requestDef := GenReqDefForNovaListServersDetails() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaListServersDetailsResponse), nil } } //根据云服务器ID,查询云服务器的详细信息。 func (c *EcsClient) NovaShowServer(request *model.NovaShowServerRequest) (*model.NovaShowServerResponse, error) { - requestDef := GenReqDefForNovaShowServer(request) - resp, responseDef := GenRespForNovaShowServer() + requestDef := GenReqDefForNovaShowServer() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.NovaShowServerResponse), nil } } //重装弹性云服务器的操作系统。支持弹性云服务器数据盘不变的情况下,使用原镜像重装系统盘。 调用该接口后,系统将卸载系统盘,然后使用原镜像重新创建系统盘,并挂载至弹性云服务器,实现重装操作系统功能。 func (c *EcsClient) ReinstallServerWithCloudInit(request *model.ReinstallServerWithCloudInitRequest) (*model.ReinstallServerWithCloudInitResponse, error) { - requestDef := GenReqDefForReinstallServerWithCloudInit(request) - resp, responseDef := GenRespForReinstallServerWithCloudInit() + requestDef := GenReqDefForReinstallServerWithCloudInit() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ReinstallServerWithCloudInitResponse), nil } } //重置弹性云服务器管理帐号(root用户或Administrator用户)的密码。 func (c *EcsClient) ResetServerPassword(request *model.ResetServerPasswordRequest) (*model.ResetServerPasswordResponse, error) { - requestDef := GenReqDefForResetServerPassword(request) - resp, responseDef := GenRespForResetServerPassword() + requestDef := GenReqDefForResetServerPassword() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ResetServerPasswordResponse), nil } } //当您创建的弹性云服务器规格无法满足业务需要时,可以变更云服务器规格,升级vCPU、内存。具体接口的使用,请参见本节内容。 变更规格时,部分规格的云服务器之间不能互相变更。 您可以通过接口“/v1/{project_id}/cloudservers/resize_flavors?{instance_uuid,source_flavor_id,source_flavor_name}”查询支持列表。 func (c *EcsClient) ResizePostPaidServer(request *model.ResizePostPaidServerRequest) (*model.ResizePostPaidServerResponse, error) { - requestDef := GenReqDefForResizePostPaidServer(request) - resp, responseDef := GenRespForResizePostPaidServer() + requestDef := GenReqDefForResizePostPaidServer() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ResizePostPaidServerResponse), nil } } //变更云服务器规格。 v1.1版本:指该接口兼容v1接口的功能,同时合入新功能,支持变更包年/包月弹性云服务器的规格。 注意事项: - 该接口可以使用合作伙伴自身的AK/SK或者token调用,也可以用合作伙伴子客户的AK/SK或者token来调用。 - 如果使用AK/SK认证方式,示例代码中region请参考[地区和终端节点](https://developer.huaweicloud.com/endpoint)中“弹性云服务 ECS”下“区域”的内容,,serviceName(英文服务名称缩写)请指定为ECS。 - Endpoint请参考[地区和终端节点](https://developer.huaweicloud.com/endpoint)中“弹性云服务 ECS”下“终端节点(Endpoint)”的内容。 func (c *EcsClient) ResizeServer(request *model.ResizeServerRequest) (*model.ResizeServerResponse, error) { - requestDef := GenReqDefForResizeServer(request) - resp, responseDef := GenRespForResizeServer() + requestDef := GenReqDefForResizeServer() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ResizeServerResponse), nil } } //查询弹性云服务器是否支持一键重置密码。 func (c *EcsClient) ShowResetPasswordFlag(request *model.ShowResetPasswordFlagRequest) (*model.ShowResetPasswordFlagResponse, error) { - requestDef := GenReqDefForShowResetPasswordFlag(request) - resp, responseDef := GenRespForShowResetPasswordFlag() + requestDef := GenReqDefForShowResetPasswordFlag() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowResetPasswordFlagResponse), nil } } //查询弹性云服务器的详细信息。 该接口支持查询弹性云服务器的计费方式,以及是否被冻结。 func (c *EcsClient) ShowServer(request *model.ShowServerRequest) (*model.ShowServerResponse, error) { - requestDef := GenReqDefForShowServer(request) - resp, responseDef := GenRespForShowServer() + requestDef := GenReqDefForShowServer() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowServerResponse), nil } } //查询租户配额信息。 func (c *EcsClient) ShowServerLimits(request *model.ShowServerLimitsRequest) (*model.ShowServerLimitsResponse, error) { - requestDef := GenReqDefForShowServerLimits(request) - resp, responseDef := GenRespForShowServerLimits() + requestDef := GenReqDefForShowServerLimits() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowServerLimitsResponse), nil } } //获取弹性云服务器VNC远程登录地址。 func (c *EcsClient) ShowServerRemoteConsole(request *model.ShowServerRemoteConsoleRequest) (*model.ShowServerRemoteConsoleResponse, error) { - requestDef := GenReqDefForShowServerRemoteConsole(request) - resp, responseDef := GenRespForShowServerRemoteConsole() + requestDef := GenReqDefForShowServerRemoteConsole() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowServerRemoteConsoleResponse), nil } } //- 查询指定云服务器的标签信息。 - 标签管理服务TMS使用该接口查询指定云服务器的全部标签数据。 func (c *EcsClient) ShowServerTags(request *model.ShowServerTagsRequest) (*model.ShowServerTagsResponse, error) { - requestDef := GenReqDefForShowServerTags(request) - resp, responseDef := GenRespForShowServerTags() + requestDef := GenReqDefForShowServerTags() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowServerTagsResponse), nil } } //修改云服务器信息,目前支持修改云服务器名称及描述和hostname。 func (c *EcsClient) UpdateServer(request *model.UpdateServerRequest) (*model.UpdateServerResponse, error) { - requestDef := GenReqDefForUpdateServer(request) - resp, responseDef := GenRespForUpdateServer() + requestDef := GenReqDefForUpdateServer() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.UpdateServerResponse), nil } } //更新云服务器元数据。 - 如果元数据中没有待更新字段,则自动添加该字段。 - 如果元数据中已存在待更新字段,则直接更新字段值。 - 如果元数据中的字段不再请求参数中,则保持不变 func (c *EcsClient) UpdateServerMetadata(request *model.UpdateServerMetadataRequest) (*model.UpdateServerMetadataResponse, error) { - requestDef := GenReqDefForUpdateServerMetadata(request) - resp, responseDef := GenRespForUpdateServerMetadata() + requestDef := GenReqDefForUpdateServerMetadata() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.UpdateServerMetadataResponse), nil } } //查询Job的执行状态。 对于创建云服务器、删除云服务器、云服务器批量操作和网卡操作等异步API,命令下发后,会返回job_id,通过job_id可以查询任务的执行状态。 func (c *EcsClient) ShowJob(request *model.ShowJobRequest) (*model.ShowJobResponse, error) { - requestDef := GenReqDefForShowJob(request) - resp, responseDef := GenRespForShowJob() + requestDef := GenReqDefForShowJob() - if _, err := c.hcClient.Sync(request, requestDef, responseDef); err != nil { + if resp, err := c.hcClient.Sync(request, requestDef); err != nil { return nil, err } else { - return resp, nil + return resp.(*model.ShowJobResponse), nil } } diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/ecs_meta.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/ecs_meta.go index 350480bc55..4796cf22e9 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/ecs_meta.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/services/ecs/v2/ecs_meta.go @@ -6,1435 +6,1067 @@ import ( "net/http" ) -func GenReqDefForAddServerGroupMember(request *model.AddServerGroupMemberRequest) *def.HttpRequestDef { +func GenReqDefForAddServerGroupMember() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/os-server-groups/{server_group_id}/action"). + WithResponse(new(model.AddServerGroupMemberResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_group_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerGroupId"). + WithJsonTag("server_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForAddServerGroupMember() (*model.AddServerGroupMemberResponse, *def.HttpResponseDef) { - resp := new(model.AddServerGroupMemberResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForAttachServerVolume(request *model.AttachServerVolumeRequest) *def.HttpRequestDef { +func GenReqDefForAttachServerVolume() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/{server_id}/attachvolume"). + WithResponse(new(model.AttachServerVolumeResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForAttachServerVolume() (*model.AttachServerVolumeResponse, *def.HttpResponseDef) { - resp := new(model.AttachServerVolumeResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForBatchAddServerNics(request *model.BatchAddServerNicsRequest) *def.HttpRequestDef { +func GenReqDefForBatchAddServerNics() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/{server_id}/nics"). + WithResponse(new(model.BatchAddServerNicsResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForBatchAddServerNics() (*model.BatchAddServerNicsResponse, *def.HttpResponseDef) { - resp := new(model.BatchAddServerNicsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForBatchCreateServerTags(request *model.BatchCreateServerTagsRequest) *def.HttpRequestDef { +func GenReqDefForBatchCreateServerTags() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/{server_id}/tags/action"). + WithResponse(new(model.BatchCreateServerTagsResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForBatchCreateServerTags() (*model.BatchCreateServerTagsResponse, *def.HttpResponseDef) { - resp := new(model.BatchCreateServerTagsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForBatchDeleteServerNics(request *model.BatchDeleteServerNicsRequest) *def.HttpRequestDef { +func GenReqDefForBatchDeleteServerNics() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/{server_id}/nics/delete"). + WithResponse(new(model.BatchDeleteServerNicsResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForBatchDeleteServerNics() (*model.BatchDeleteServerNicsResponse, *def.HttpResponseDef) { - resp := new(model.BatchDeleteServerNicsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForBatchDeleteServerTags(request *model.BatchDeleteServerTagsRequest) *def.HttpRequestDef { +func GenReqDefForBatchDeleteServerTags() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/{server_id}/tags/action"). + WithResponse(new(model.BatchDeleteServerTagsResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForBatchDeleteServerTags() (*model.BatchDeleteServerTagsResponse, *def.HttpResponseDef) { - resp := new(model.BatchDeleteServerTagsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForBatchRebootServers(request *model.BatchRebootServersRequest) *def.HttpRequestDef { +func GenReqDefForBatchRebootServers() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/action"). + WithResponse(new(model.BatchRebootServersResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForBatchRebootServers() (*model.BatchRebootServersResponse, *def.HttpResponseDef) { - resp := new(model.BatchRebootServersResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForBatchStartServers(request *model.BatchStartServersRequest) *def.HttpRequestDef { +func GenReqDefForBatchStartServers() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/action"). + WithResponse(new(model.BatchStartServersResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForBatchStartServers() (*model.BatchStartServersResponse, *def.HttpResponseDef) { - resp := new(model.BatchStartServersResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForBatchStopServers(request *model.BatchStopServersRequest) *def.HttpRequestDef { +func GenReqDefForBatchStopServers() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/action"). + WithResponse(new(model.BatchStopServersResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForBatchStopServers() (*model.BatchStopServersResponse, *def.HttpResponseDef) { - resp := new(model.BatchStopServersResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForChangeServerOsWithCloudInit(request *model.ChangeServerOsWithCloudInitRequest) *def.HttpRequestDef { +func GenReqDefForChangeServerOsWithCloudInit() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v2/{project_id}/cloudservers/{server_id}/changeos"). + WithResponse(new(model.ChangeServerOsWithCloudInitResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForChangeServerOsWithCloudInit() (*model.ChangeServerOsWithCloudInitResponse, *def.HttpResponseDef) { - resp := new(model.ChangeServerOsWithCloudInitResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreatePostPaidServers(request *model.CreatePostPaidServersRequest) *def.HttpRequestDef { +func GenReqDefForCreatePostPaidServers() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers"). + WithResponse(new(model.CreatePostPaidServersResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreatePostPaidServers() (*model.CreatePostPaidServersResponse, *def.HttpResponseDef) { - resp := new(model.CreatePostPaidServersResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreateServerGroup(request *model.CreateServerGroupRequest) *def.HttpRequestDef { +func GenReqDefForCreateServerGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/os-server-groups"). + WithResponse(new(model.CreateServerGroupResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreateServerGroup() (*model.CreateServerGroupResponse, *def.HttpResponseDef) { - resp := new(model.CreateServerGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForCreateServers(request *model.CreateServersRequest) *def.HttpRequestDef { +func GenReqDefForCreateServers() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1.1/{project_id}/cloudservers"). + WithResponse(new(model.CreateServersResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForCreateServers() (*model.CreateServersResponse, *def.HttpResponseDef) { - resp := new(model.CreateServersResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteServerGroup(request *model.DeleteServerGroupRequest) *def.HttpRequestDef { +func GenReqDefForDeleteServerGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/v1/{project_id}/cloudservers/os-server-groups/{server_group_id}") + WithPath("/v1/{project_id}/cloudservers/os-server-groups/{server_group_id}"). + WithResponse(new(model.DeleteServerGroupResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_group_id"). + WithName("ServerGroupId"). + WithJsonTag("server_group_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteServerGroup() (*model.DeleteServerGroupResponse, *def.HttpResponseDef) { - resp := new(model.DeleteServerGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteServerGroupMember(request *model.DeleteServerGroupMemberRequest) *def.HttpRequestDef { +func GenReqDefForDeleteServerGroupMember() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/os-server-groups/{server_group_id}/action"). + WithResponse(new(model.DeleteServerGroupMemberResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_group_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerGroupId"). + WithJsonTag("server_group_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteServerGroupMember() (*model.DeleteServerGroupMemberResponse, *def.HttpResponseDef) { - resp := new(model.DeleteServerGroupMemberResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteServerMetadata(request *model.DeleteServerMetadataRequest) *def.HttpRequestDef { +func GenReqDefForDeleteServerMetadata() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/v1/{project_id}/cloudservers/{server_id}/metadata/{key}") + WithPath("/v1/{project_id}/cloudservers/{server_id}/metadata/{key}"). + WithResponse(new(model.DeleteServerMetadataResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("key"). + WithName("Key"). + WithJsonTag("key"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteServerMetadata() (*model.DeleteServerMetadataResponse, *def.HttpResponseDef) { - resp := new(model.DeleteServerMetadataResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDeleteServers(request *model.DeleteServersRequest) *def.HttpRequestDef { +func GenReqDefForDeleteServers() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/delete"). + WithResponse(new(model.DeleteServersResponse)). WithContentType("application/json;charset=UTF-8") - reqDefBuilder.WithBodyJson(request.Body) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDeleteServers() (*model.DeleteServersResponse, *def.HttpResponseDef) { - resp := new(model.DeleteServersResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForDetachServerVolume(request *model.DetachServerVolumeRequest) *def.HttpRequestDef { +func GenReqDefForDetachServerVolume() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/v1/{project_id}/cloudservers/{server_id}/detachvolume/{volume_id}") + WithPath("/v1/{project_id}/cloudservers/{server_id}/detachvolume/{volume_id}"). + WithResponse(new(model.DetachServerVolumeResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("volume_id"). + WithName("VolumeId"). + WithJsonTag("volume_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("delete_flag"). + WithName("DeleteFlag"). + WithJsonTag("delete_flag"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForDetachServerVolume() (*model.DetachServerVolumeResponse, *def.HttpResponseDef) { - resp := new(model.DetachServerVolumeResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListFlavors(request *model.ListFlavorsRequest) *def.HttpRequestDef { +func GenReqDefForListFlavors() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/flavors") + WithPath("/v1/{project_id}/cloudservers/flavors"). + WithResponse(new(model.ListFlavorsResponse)) + + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("availability_zone"). + WithName("AvailabilityZone"). + WithJsonTag("availability_zone"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListFlavors() (*model.ListFlavorsResponse, *def.HttpResponseDef) { - resp := new(model.ListFlavorsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListResizeFlavors(request *model.ListResizeFlavorsRequest) *def.HttpRequestDef { +func GenReqDefForListResizeFlavors() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/resize_flavors") + WithPath("/v1/{project_id}/cloudservers/resize_flavors"). + WithResponse(new(model.ListResizeFlavorsResponse)) + + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("instance_uuid"). + WithName("InstanceUuid"). + WithJsonTag("instance_uuid"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("marker"). + WithName("Marker"). + WithJsonTag("marker"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("sort_dir"). + WithName("SortDir"). + WithJsonTag("sort_dir"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("sort_key"). + WithName("SortKey"). + WithJsonTag("sort_key"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("source_flavor_id"). + WithName("SourceFlavorId"). + WithJsonTag("source_flavor_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("source_flavor_name"). + WithName("SourceFlavorName"). + WithJsonTag("source_flavor_name"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListResizeFlavors() (*model.ListResizeFlavorsResponse, *def.HttpResponseDef) { - resp := new(model.ListResizeFlavorsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListServerBlockDevices(request *model.ListServerBlockDevicesRequest) *def.HttpRequestDef { +func GenReqDefForListServerBlockDevices() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/{server_id}/block_device") + WithPath("/v1/{project_id}/cloudservers/{server_id}/block_device"). + WithResponse(new(model.ListServerBlockDevicesResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListServerBlockDevices() (*model.ListServerBlockDevicesResponse, *def.HttpResponseDef) { - resp := new(model.ListServerBlockDevicesResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListServerInterfaces(request *model.ListServerInterfacesRequest) *def.HttpRequestDef { +func GenReqDefForListServerInterfaces() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/{server_id}/os-interface") + WithPath("/v1/{project_id}/cloudservers/{server_id}/os-interface"). + WithResponse(new(model.ListServerInterfacesResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListServerInterfaces() (*model.ListServerInterfacesResponse, *def.HttpResponseDef) { - resp := new(model.ListServerInterfacesResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForListServersDetails(request *model.ListServersDetailsRequest) *def.HttpRequestDef { +func GenReqDefForListServersDetails() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/detail") + WithPath("/v1/{project_id}/cloudservers/detail"). + WithResponse(new(model.ListServersDetailsResponse)) + + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("enterprise_project_id"). + WithName("EnterpriseProjectId"). + WithJsonTag("enterprise_project_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("flavor"). + WithName("Flavor"). + WithJsonTag("flavor"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("ip"). + WithName("Ip"). + WithJsonTag("ip"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("name"). + WithName("Name"). + WithJsonTag("name"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("not-tags"). + WithName("NotTags"). + WithJsonTag("not-tags"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("offset"). + WithName("Offset"). + WithJsonTag("offset"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("reservation_id"). + WithName("ReservationId"). + WithJsonTag("reservation_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("status"). + WithName("Status"). + WithJsonTag("status"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("tags"). + WithName("Tags"). + WithJsonTag("tags"). WithLocationType(def.Query)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForListServersDetails() (*model.ListServersDetailsResponse, *def.HttpResponseDef) { - resp := new(model.ListServersDetailsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaAssociateSecurityGroup(request *model.NovaAssociateSecurityGroupRequest) *def.HttpRequestDef { +func GenReqDefForNovaAssociateSecurityGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v2.1/{project_id}/servers/{server_id}/action"). + WithResponse(new(model.NovaAssociateSecurityGroupResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaAssociateSecurityGroup() (*model.NovaAssociateSecurityGroupResponse, *def.HttpResponseDef) { - resp := new(model.NovaAssociateSecurityGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaCreateKeypair(request *model.NovaCreateKeypairRequest) *def.HttpRequestDef { +func GenReqDefForNovaCreateKeypair() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v2.1/{project_id}/os-keypairs"). + WithResponse(new(model.NovaCreateKeypairResponse)). WithContentType("application/json;charset=UTF-8") + // request + reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("OpenStack-API-Version"). + WithName("OpenStackAPIVersion"). + WithJsonTag("OpenStack-API-Version"). WithLocationType(def.Header)) - reqDefBuilder.WithBodyJson(request.Body) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaCreateKeypair() (*model.NovaCreateKeypairResponse, *def.HttpResponseDef) { - resp := new(model.NovaCreateKeypairResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaCreateServers(request *model.NovaCreateServersRequest) *def.HttpRequestDef { +func GenReqDefForNovaCreateServers() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v2.1/{project_id}/servers"). + WithResponse(new(model.NovaCreateServersResponse)). WithContentType("application/json;charset=UTF-8") + // request + reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("OpenStack-API-Version"). + WithName("OpenStackAPIVersion"). + WithJsonTag("OpenStack-API-Version"). WithLocationType(def.Header)) - reqDefBuilder.WithBodyJson(request.Body) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaCreateServers() (*model.NovaCreateServersResponse, *def.HttpResponseDef) { - resp := new(model.NovaCreateServersResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaDeleteKeypair(request *model.NovaDeleteKeypairRequest) *def.HttpRequestDef { +func GenReqDefForNovaDeleteKeypair() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/v2.1/{project_id}/os-keypairs/{keypair_name}") + WithPath("/v2.1/{project_id}/os-keypairs/{keypair_name}"). + WithResponse(new(model.NovaDeleteKeypairResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("keypair_name"). + WithName("KeypairName"). + WithJsonTag("keypair_name"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaDeleteKeypair() (*model.NovaDeleteKeypairResponse, *def.HttpResponseDef) { - resp := new(model.NovaDeleteKeypairResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaDeleteServer(request *model.NovaDeleteServerRequest) *def.HttpRequestDef { +func GenReqDefForNovaDeleteServer() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodDelete). - WithPath("/v2.1/{project_id}/servers/{server_id}") + WithPath("/v2.1/{project_id}/servers/{server_id}"). + WithResponse(new(model.NovaDeleteServerResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaDeleteServer() (*model.NovaDeleteServerResponse, *def.HttpResponseDef) { - resp := new(model.NovaDeleteServerResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaDisassociateSecurityGroup(request *model.NovaDisassociateSecurityGroupRequest) *def.HttpRequestDef { +func GenReqDefForNovaDisassociateSecurityGroup() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v2.1/{project_id}/servers/{server_id}/action"). + WithResponse(new(model.NovaDisassociateSecurityGroupResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaDisassociateSecurityGroup() (*model.NovaDisassociateSecurityGroupResponse, *def.HttpResponseDef) { - resp := new(model.NovaDisassociateSecurityGroupResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaListAvailabilityZones(request *model.NovaListAvailabilityZonesRequest) *def.HttpRequestDef { +func GenReqDefForNovaListAvailabilityZones() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v2.1/{project_id}/os-availability-zone") + WithPath("/v2.1/{project_id}/os-availability-zone"). + WithResponse(new(model.NovaListAvailabilityZonesResponse)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + // request - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaListAvailabilityZones() (*model.NovaListAvailabilityZonesResponse, *def.HttpResponseDef) { - resp := new(model.NovaListAvailabilityZonesResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaListKeypairs(request *model.NovaListKeypairsRequest) *def.HttpRequestDef { +func GenReqDefForNovaListKeypairs() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v2.1/{project_id}/os-keypairs") + WithPath("/v2.1/{project_id}/os-keypairs"). + WithResponse(new(model.NovaListKeypairsResponse)) + + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("marker"). + WithName("Marker"). + WithJsonTag("marker"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("OpenStack-API-Version"). + WithName("OpenStackAPIVersion"). + WithJsonTag("OpenStack-API-Version"). WithLocationType(def.Header)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaListKeypairs() (*model.NovaListKeypairsResponse, *def.HttpResponseDef) { - resp := new(model.NovaListKeypairsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaListServerSecurityGroups(request *model.NovaListServerSecurityGroupsRequest) *def.HttpRequestDef { +func GenReqDefForNovaListServerSecurityGroups() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v2.1/{project_id}/servers/{server_id}/os-security-groups") + WithPath("/v2.1/{project_id}/servers/{server_id}/os-security-groups"). + WithResponse(new(model.NovaListServerSecurityGroupsResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaListServerSecurityGroups() (*model.NovaListServerSecurityGroupsResponse, *def.HttpResponseDef) { - resp := new(model.NovaListServerSecurityGroupsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaListServersDetails(request *model.NovaListServersDetailsRequest) *def.HttpRequestDef { +func GenReqDefForNovaListServersDetails() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v2.1/{project_id}/servers/detail") + WithPath("/v2.1/{project_id}/servers/detail"). + WithResponse(new(model.NovaListServersDetailsResponse)) + + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("changes-since"). + WithName("ChangesSince"). + WithJsonTag("changes-since"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("flavor"). + WithName("Flavor"). + WithJsonTag("flavor"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("image"). + WithName("Image"). + WithJsonTag("image"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("ip"). + WithName("Ip"). + WithJsonTag("ip"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("limit"). + WithName("Limit"). + WithJsonTag("limit"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("marker"). + WithName("Marker"). + WithJsonTag("marker"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("name"). + WithName("Name"). + WithJsonTag("name"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("not-tags"). + WithName("NotTags"). + WithJsonTag("not-tags"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("reservation_id"). + WithName("ReservationId"). + WithJsonTag("reservation_id"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("sort_key"). + WithName("SortKey"). + WithJsonTag("sort_key"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("status"). + WithName("Status"). + WithJsonTag("status"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("tags"). + WithName("Tags"). + WithJsonTag("tags"). WithLocationType(def.Query)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("OpenStack-API-Version"). + WithName("OpenStackAPIVersion"). + WithJsonTag("OpenStack-API-Version"). WithLocationType(def.Header)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaListServersDetails() (*model.NovaListServersDetailsResponse, *def.HttpResponseDef) { - resp := new(model.NovaListServersDetailsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForNovaShowServer(request *model.NovaShowServerRequest) *def.HttpRequestDef { +func GenReqDefForNovaShowServer() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v2.1/{project_id}/servers/{server_id}") + WithPath("/v2.1/{project_id}/servers/{server_id}"). + WithResponse(new(model.NovaShowServerResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("OpenStack-API-Version"). + WithName("OpenStackAPIVersion"). + WithJsonTag("OpenStack-API-Version"). WithLocationType(def.Header)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForNovaShowServer() (*model.NovaShowServerResponse, *def.HttpResponseDef) { - resp := new(model.NovaShowServerResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForReinstallServerWithCloudInit(request *model.ReinstallServerWithCloudInitRequest) *def.HttpRequestDef { +func GenReqDefForReinstallServerWithCloudInit() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v2/{project_id}/cloudservers/{server_id}/reinstallos"). + WithResponse(new(model.ReinstallServerWithCloudInitResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForReinstallServerWithCloudInit() (*model.ReinstallServerWithCloudInitResponse, *def.HttpResponseDef) { - resp := new(model.ReinstallServerWithCloudInitResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForResetServerPassword(request *model.ResetServerPasswordRequest) *def.HttpRequestDef { +func GenReqDefForResetServerPassword() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPut). WithPath("/v1/{project_id}/cloudservers/{server_id}/os-reset-password"). + WithResponse(new(model.ResetServerPasswordResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForResetServerPassword() (*model.ResetServerPasswordResponse, *def.HttpResponseDef) { - resp := new(model.ResetServerPasswordResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForResizePostPaidServer(request *model.ResizePostPaidServerRequest) *def.HttpRequestDef { +func GenReqDefForResizePostPaidServer() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/{server_id}/resize"). + WithResponse(new(model.ResizePostPaidServerResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForResizePostPaidServer() (*model.ResizePostPaidServerResponse, *def.HttpResponseDef) { - resp := new(model.ResizePostPaidServerResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForResizeServer(request *model.ResizeServerRequest) *def.HttpRequestDef { +func GenReqDefForResizeServer() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1.1/{project_id}/cloudservers/{server_id}/resize"). + WithResponse(new(model.ResizeServerResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForResizeServer() (*model.ResizeServerResponse, *def.HttpResponseDef) { - resp := new(model.ResizeServerResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowResetPasswordFlag(request *model.ShowResetPasswordFlagRequest) *def.HttpRequestDef { +func GenReqDefForShowResetPasswordFlag() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/{server_id}/os-resetpwd-flag") + WithPath("/v1/{project_id}/cloudservers/{server_id}/os-resetpwd-flag"). + WithResponse(new(model.ShowResetPasswordFlagResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowResetPasswordFlag() (*model.ShowResetPasswordFlagResponse, *def.HttpResponseDef) { - resp := new(model.ShowResetPasswordFlagResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowServer(request *model.ShowServerRequest) *def.HttpRequestDef { +func GenReqDefForShowServer() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/{server_id}") + WithPath("/v1/{project_id}/cloudservers/{server_id}"). + WithResponse(new(model.ShowServerResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowServer() (*model.ShowServerResponse, *def.HttpResponseDef) { - resp := new(model.ShowServerResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowServerLimits(request *model.ShowServerLimitsRequest) *def.HttpRequestDef { +func GenReqDefForShowServerLimits() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/limits") + WithPath("/v1/{project_id}/cloudservers/limits"). + WithResponse(new(model.ShowServerLimitsResponse)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) + // request - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowServerLimits() (*model.ShowServerLimitsResponse, *def.HttpResponseDef) { - resp := new(model.ShowServerLimitsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowServerRemoteConsole(request *model.ShowServerRemoteConsoleRequest) *def.HttpRequestDef { +func GenReqDefForShowServerRemoteConsole() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/{server_id}/remote_console"). + WithResponse(new(model.ShowServerRemoteConsoleResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowServerRemoteConsole() (*model.ShowServerRemoteConsoleResponse, *def.HttpResponseDef) { - resp := new(model.ShowServerRemoteConsoleResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowServerTags(request *model.ShowServerTagsRequest) *def.HttpRequestDef { +func GenReqDefForShowServerTags() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/cloudservers/{server_id}/tags") + WithPath("/v1/{project_id}/cloudservers/{server_id}/tags"). + WithResponse(new(model.ShowServerTagsResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForShowServerTags() (*model.ShowServerTagsResponse, *def.HttpResponseDef) { - resp := new(model.ShowServerTagsResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForUpdateServer(request *model.UpdateServerRequest) *def.HttpRequestDef { +func GenReqDefForUpdateServer() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPut). WithPath("/v1/{project_id}/cloudservers/{server_id}"). + WithResponse(new(model.UpdateServerResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForUpdateServer() (*model.UpdateServerResponse, *def.HttpResponseDef) { - resp := new(model.UpdateServerResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForUpdateServerMetadata(request *model.UpdateServerMetadataRequest) *def.HttpRequestDef { +func GenReqDefForUpdateServerMetadata() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodPost). WithPath("/v1/{project_id}/cloudservers/{server_id}/metadata"). + WithResponse(new(model.UpdateServerMetadataResponse)). WithContentType("application/json;charset=UTF-8") + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("server_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithBodyJson(request.Body) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). + WithName("ServerId"). + WithJsonTag("server_id"). WithLocationType(def.Path)) reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + WithName("Body"). + WithLocationType(def.Body)) + + // response requestDef := reqDefBuilder.Build() return requestDef } -func GenRespForUpdateServerMetadata() (*model.UpdateServerMetadataResponse, *def.HttpResponseDef) { - resp := new(model.UpdateServerMetadataResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} - -func GenReqDefForShowJob(request *model.ShowJobRequest) *def.HttpRequestDef { +func GenReqDefForShowJob() *def.HttpRequestDef { reqDefBuilder := def.NewHttpRequestDefBuilder(). WithMethod(http.MethodGet). - WithPath("/v1/{project_id}/jobs/{job_id}") + WithPath("/v1/{project_id}/jobs/{job_id}"). + WithResponse(new(model.ShowJobResponse)) + // request reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("job_id"). + WithName("JobId"). + WithJsonTag("job_id"). WithLocationType(def.Path)) - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("project_id"). - WithLocationType(def.Path)) - - reqDefBuilder.WithRequestField(def.NewFieldDef(). - WithName("domain_id"). - WithLocationType(def.Path)) + // response requestDef := reqDefBuilder.Build() return requestDef } - -func GenRespForShowJob() (*model.ShowJobResponse, *def.HttpResponseDef) { - resp := new(model.ShowJobResponse) - respDefBuilder := def.NewHttpResponseDefBuilder().WithBodyJson(resp) - responseDef := respDefBuilder.Build() - return resp, responseDef -} From fefc130e81ec49f02b0fd68a44dc104cd622a2fa Mon Sep 17 00:00:00 2001 From: RainbowMango Date: Wed, 4 Nov 2020 11:16:43 +0800 Subject: [PATCH 2/5] get all scaling groups --- .../cloudprovider/huaweicloud/huaweicloud_service_manager.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_service_manager.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_service_manager.go index fe12b54470..fdeb46cf21 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_service_manager.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_service_manager.go @@ -266,9 +266,9 @@ func (csm *cloudServiceManager) ListScalingGroups() ([]AutoScalingGroup, error) return nil, fmt.Errorf("failed to list scaling groups due to can not get as client") } - requiredState := huaweicloudsdkasmodel.GetListScalingGroupsRequestScalingGroupStatusEnum().INSERVICE + // requiredState := huaweicloudsdkasmodel.GetListScalingGroupsRequestScalingGroupStatusEnum().INSERVICE opts := &huaweicloudsdkasmodel.ListScalingGroupsRequest{ - ScalingGroupStatus: &requiredState, + // ScalingGroupStatus: &requiredState, } response, err := asClient.ListScalingGroups(opts) if err != nil { From a8f5979fce17d30e25f11eb2e387aff807eb8b88 Mon Sep 17 00:00:00 2001 From: RainbowMango Date: Wed, 4 Nov 2020 11:39:21 +0800 Subject: [PATCH 3/5] add temp solution for sdk issue --- .../huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go index 2b6acd41ce..15173a55ee 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud-sdk-go-v3/core/sdktime/sdk_time.go @@ -30,5 +30,7 @@ func (t SdkTime) MarshalJSON() ([]byte, error) { } func (t SdkTime) String() string { - return time.Time(t).Format(`2006-01-02T15:04:05Z`) + // return time.Time(t).Format(`2006-01-02T15:04:05Z`) + // temp solution for: https://github.com/huaweicloud/huaweicloud-sdk-go-v3/issues/8 + return time.Time(t).Format(`2006-01-02T15:04Z`) } From 1f7ea9f9ae1ae67b6bdf9c795098f7cd43bf821e Mon Sep 17 00:00:00 2001 From: RainbowMango Date: Wed, 4 Nov 2020 12:42:04 +0800 Subject: [PATCH 4/5] fix instance id may be empty issue --- .../cloudprovider/huaweicloud/huaweicloud_service_manager.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_service_manager.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_service_manager.go index fdeb46cf21..07fdd1a868 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_service_manager.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_service_manager.go @@ -179,6 +179,11 @@ func (csm *cloudServiceManager) GetInstances(groupID string) ([]cloudprovider.In instances := make([]cloudprovider.Instance, 0, len(*response.ScalingGroupInstances)) for _, sgi := range *response.ScalingGroupInstances { + // When a new instance joining to the scaling group, the instance id maybe empty(nil). + if sgi.InstanceId == nil { + klog.Infof("ignore instance without instance id, maybe instance is joining.") + continue + } instance := cloudprovider.Instance{ Id: *sgi.InstanceId, Status: csm.transformInstanceState(*sgi.LifeCycleState, *sgi.HealthStatus), From 46eecdf6fec44c144952eab8090a1d8401e28fc3 Mon Sep 17 00:00:00 2001 From: RainbowMango Date: Wed, 4 Nov 2020 12:47:36 +0800 Subject: [PATCH 5/5] Fix find node from scaling groups would cause panic issue --- .../cloudprovider/huaweicloud/huaweicloud_cloud_provider.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_cloud_provider.go index a7b441ba2f..254e80e52d 100644 --- a/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/huaweicloud/huaweicloud_cloud_provider.go @@ -121,8 +121,8 @@ func (hcp *huaweicloudCloudProvider) NodeGroupForNode(node *apiv1.Node) (cloudpr return nil, err } - for i := range instances { - if instanceID == instances[i].Id { + for j := range instances { + if instanceID == instances[j].Id { pinnedGroup := hcp.autoScalingGroup[i] return &pinnedGroup, nil }