Просмотр исходного кода

由武进发起的ESS SDK自动发布, 版本号:1.9.2

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 7 лет назад
Родитель
Сommit
caf17c757c

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2018-04-23 Version: 1.9.2
+1, Add notificationConfiguration.
+2, Add standby status.
+
 2018-04-20 Version: 1.9.1
 1, Interface DescribeAlarmHistory/ListAlarmHistory Add return value instanceName.
 

+ 107 - 0
services/ess/create_notification_configuration.go

@@ -0,0 +1,107 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateNotificationConfiguration invokes the ess.CreateNotificationConfiguration API synchronously
+// api document: https://help.aliyun.com/api/ess/createnotificationconfiguration.html
+func (client *Client) CreateNotificationConfiguration(request *CreateNotificationConfigurationRequest) (response *CreateNotificationConfigurationResponse, err error) {
+	response = CreateCreateNotificationConfigurationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateNotificationConfigurationWithChan invokes the ess.CreateNotificationConfiguration API asynchronously
+// api document: https://help.aliyun.com/api/ess/createnotificationconfiguration.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNotificationConfigurationWithChan(request *CreateNotificationConfigurationRequest) (<-chan *CreateNotificationConfigurationResponse, <-chan error) {
+	responseChan := make(chan *CreateNotificationConfigurationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateNotificationConfiguration(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateNotificationConfigurationWithCallback invokes the ess.CreateNotificationConfiguration API asynchronously
+// api document: https://help.aliyun.com/api/ess/createnotificationconfiguration.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateNotificationConfigurationWithCallback(request *CreateNotificationConfigurationRequest, callback func(response *CreateNotificationConfigurationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateNotificationConfigurationResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateNotificationConfiguration(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateNotificationConfigurationRequest is the request struct for api CreateNotificationConfiguration
+type CreateNotificationConfigurationRequest struct {
+	*requests.RpcRequest
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ScalingGroupId       string           `position:"Query" name:"ScalingGroupId"`
+	NotificationArn      string           `position:"Query" name:"NotificationArn"`
+	NotificationType     *[]string        `position:"Query" name:"NotificationType"  type:"Repeated"`
+}
+
+// CreateNotificationConfigurationResponse is the response struct for api CreateNotificationConfiguration
+type CreateNotificationConfigurationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCreateNotificationConfigurationRequest creates a request to invoke CreateNotificationConfiguration API
+func CreateCreateNotificationConfigurationRequest() (request *CreateNotificationConfigurationRequest) {
+	request = &CreateNotificationConfigurationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ess", "2014-08-28", "CreateNotificationConfiguration", "ess", "openAPI")
+	return
+}
+
+// CreateCreateNotificationConfigurationResponse creates a response to parse from CreateNotificationConfiguration response
+func CreateCreateNotificationConfigurationResponse() (response *CreateNotificationConfigurationResponse) {
+	response = &CreateNotificationConfigurationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 50 - 42
services/ess/create_scaling_configuration.go

@@ -76,48 +76,56 @@ func (client *Client) CreateScalingConfigurationWithCallback(request *CreateScal
 // CreateScalingConfigurationRequest is the request struct for api CreateScalingConfiguration
 type CreateScalingConfigurationRequest struct {
 	*requests.RpcRequest
-	OwnerId                     requests.Integer `position:"Query" name:"OwnerId"`
-	ResourceOwnerAccount        string           `position:"Query" name:"ResourceOwnerAccount"`
-	ScalingGroupId              string           `position:"Query" name:"ScalingGroupId"`
-	ImageId                     string           `position:"Query" name:"ImageId"`
-	InstanceType                string           `position:"Query" name:"InstanceType"`
-	InstanceTypes               *[]string        `position:"Query" name:"InstanceTypes"  type:"Repeated"`
-	SecurityGroupId             string           `position:"Query" name:"SecurityGroupId"`
-	IoOptimized                 string           `position:"Query" name:"IoOptimized"`
-	InternetChargeType          string           `position:"Query" name:"InternetChargeType"`
-	InternetMaxBandwidthIn      requests.Integer `position:"Query" name:"InternetMaxBandwidthIn"`
-	InternetMaxBandwidthOut     requests.Integer `position:"Query" name:"InternetMaxBandwidthOut"`
-	SystemDiskCategory          string           `position:"Query" name:"SystemDisk.Category"`
-	SystemDiskSize              requests.Integer `position:"Query" name:"SystemDisk.Size"`
-	ScalingConfigurationName    string           `position:"Query" name:"ScalingConfigurationName"`
-	DataDisk1Size               requests.Integer `position:"Query" name:"DataDisk.1.Size"`
-	DataDisk2Size               requests.Integer `position:"Query" name:"DataDisk.2.Size"`
-	DataDisk3Size               requests.Integer `position:"Query" name:"DataDisk.3.Size"`
-	DataDisk4Size               requests.Integer `position:"Query" name:"DataDisk.4.Size"`
-	DataDisk1Category           string           `position:"Query" name:"DataDisk.1.Category"`
-	DataDisk2Category           string           `position:"Query" name:"DataDisk.2.Category"`
-	DataDisk3Category           string           `position:"Query" name:"DataDisk.3.Category"`
-	DataDisk4Category           string           `position:"Query" name:"DataDisk.4.Category"`
-	DataDisk1SnapshotId         string           `position:"Query" name:"DataDisk.1.SnapshotId"`
-	DataDisk2SnapshotId         string           `position:"Query" name:"DataDisk.2.SnapshotId"`
-	DataDisk3SnapshotId         string           `position:"Query" name:"DataDisk.3.SnapshotId"`
-	DataDisk4SnapshotId         string           `position:"Query" name:"DataDisk.4.SnapshotId"`
-	DataDisk1Device             string           `position:"Query" name:"DataDisk.1.Device"`
-	DataDisk2Device             string           `position:"Query" name:"DataDisk.2.Device"`
-	DataDisk3Device             string           `position:"Query" name:"DataDisk.3.Device"`
-	DataDisk4Device             string           `position:"Query" name:"DataDisk.4.Device"`
-	DataDisk1DeleteWithInstance string           `position:"Query" name:"DataDisk.1.DeleteWithInstance"`
-	DataDisk2DeleteWithInstance string           `position:"Query" name:"DataDisk.2.DeleteWithInstance"`
-	DataDisk3DeleteWithInstance string           `position:"Query" name:"DataDisk.3.DeleteWithInstance"`
-	DataDisk4DeleteWithInstance string           `position:"Query" name:"DataDisk.4.DeleteWithInstance"`
-	LoadBalancerWeight          requests.Integer `position:"Query" name:"LoadBalancerWeight"`
-	OwnerAccount                string           `position:"Query" name:"OwnerAccount"`
-	Tags                        string           `position:"Query" name:"Tags"`
-	UserData                    string           `position:"Query" name:"UserData"`
-	KeyPairName                 string           `position:"Query" name:"KeyPairName"`
-	RamRoleName                 string           `position:"Query" name:"RamRoleName"`
-	SecurityEnhancementStrategy string           `position:"Query" name:"SecurityEnhancementStrategy"`
-	InstanceName                string           `position:"Query" name:"InstanceName"`
+	OwnerId                     requests.Integer                    `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount        string                              `position:"Query" name:"ResourceOwnerAccount"`
+	ScalingGroupId              string                              `position:"Query" name:"ScalingGroupId"`
+	ImageId                     string                              `position:"Query" name:"ImageId"`
+	InstanceType                string                              `position:"Query" name:"InstanceType"`
+	InstanceTypes               *[]string                           `position:"Query" name:"InstanceTypes"  type:"Repeated"`
+	SecurityGroupId             string                              `position:"Query" name:"SecurityGroupId"`
+	IoOptimized                 string                              `position:"Query" name:"IoOptimized"`
+	InternetChargeType          string                              `position:"Query" name:"InternetChargeType"`
+	InternetMaxBandwidthIn      requests.Integer                    `position:"Query" name:"InternetMaxBandwidthIn"`
+	InternetMaxBandwidthOut     requests.Integer                    `position:"Query" name:"InternetMaxBandwidthOut"`
+	SystemDiskCategory          string                              `position:"Query" name:"SystemDisk.Category"`
+	SystemDiskSize              requests.Integer                    `position:"Query" name:"SystemDisk.Size"`
+	ScalingConfigurationName    string                              `position:"Query" name:"ScalingConfigurationName"`
+	DataDisk1Size               requests.Integer                    `position:"Query" name:"DataDisk.1.Size"`
+	DataDisk2Size               requests.Integer                    `position:"Query" name:"DataDisk.2.Size"`
+	DataDisk3Size               requests.Integer                    `position:"Query" name:"DataDisk.3.Size"`
+	DataDisk4Size               requests.Integer                    `position:"Query" name:"DataDisk.4.Size"`
+	DataDisk1Category           string                              `position:"Query" name:"DataDisk.1.Category"`
+	DataDisk2Category           string                              `position:"Query" name:"DataDisk.2.Category"`
+	DataDisk3Category           string                              `position:"Query" name:"DataDisk.3.Category"`
+	DataDisk4Category           string                              `position:"Query" name:"DataDisk.4.Category"`
+	DataDisk1SnapshotId         string                              `position:"Query" name:"DataDisk.1.SnapshotId"`
+	DataDisk2SnapshotId         string                              `position:"Query" name:"DataDisk.2.SnapshotId"`
+	DataDisk3SnapshotId         string                              `position:"Query" name:"DataDisk.3.SnapshotId"`
+	DataDisk4SnapshotId         string                              `position:"Query" name:"DataDisk.4.SnapshotId"`
+	DataDisk1Device             string                              `position:"Query" name:"DataDisk.1.Device"`
+	DataDisk2Device             string                              `position:"Query" name:"DataDisk.2.Device"`
+	DataDisk3Device             string                              `position:"Query" name:"DataDisk.3.Device"`
+	DataDisk4Device             string                              `position:"Query" name:"DataDisk.4.Device"`
+	DataDisk1DeleteWithInstance string                              `position:"Query" name:"DataDisk.1.DeleteWithInstance"`
+	DataDisk2DeleteWithInstance string                              `position:"Query" name:"DataDisk.2.DeleteWithInstance"`
+	DataDisk3DeleteWithInstance string                              `position:"Query" name:"DataDisk.3.DeleteWithInstance"`
+	DataDisk4DeleteWithInstance string                              `position:"Query" name:"DataDisk.4.DeleteWithInstance"`
+	LoadBalancerWeight          requests.Integer                    `position:"Query" name:"LoadBalancerWeight"`
+	OwnerAccount                string                              `position:"Query" name:"OwnerAccount"`
+	Tags                        string                              `position:"Query" name:"Tags"`
+	UserData                    string                              `position:"Query" name:"UserData"`
+	KeyPairName                 string                              `position:"Query" name:"KeyPairName"`
+	RamRoleName                 string                              `position:"Query" name:"RamRoleName"`
+	SecurityEnhancementStrategy string                              `position:"Query" name:"SecurityEnhancementStrategy"`
+	InstanceName                string                              `position:"Query" name:"InstanceName"`
+	SpotStrategy                string                              `position:"Query" name:"SpotStrategy"`
+	SpotPriceLimit              *[]CreateScalingConfigurationString `position:"Query" name:"SpotPriceLimit"  type:"Repeated"`
+}
+
+// CreateScalingConfigurationString is a repeated param struct in CreateScalingConfigurationRequest
+type CreateScalingConfigurationString struct {
+	InstanceType string `name:"InstanceType"`
+	PriceLimit   string `name:"PriceLimit"`
 }
 
 // CreateScalingConfigurationResponse is the response struct for api CreateScalingConfiguration

+ 106 - 0
services/ess/delete_notification_configuration.go

@@ -0,0 +1,106 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DeleteNotificationConfiguration invokes the ess.DeleteNotificationConfiguration API synchronously
+// api document: https://help.aliyun.com/api/ess/deletenotificationconfiguration.html
+func (client *Client) DeleteNotificationConfiguration(request *DeleteNotificationConfigurationRequest) (response *DeleteNotificationConfigurationResponse, err error) {
+	response = CreateDeleteNotificationConfigurationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteNotificationConfigurationWithChan invokes the ess.DeleteNotificationConfiguration API asynchronously
+// api document: https://help.aliyun.com/api/ess/deletenotificationconfiguration.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteNotificationConfigurationWithChan(request *DeleteNotificationConfigurationRequest) (<-chan *DeleteNotificationConfigurationResponse, <-chan error) {
+	responseChan := make(chan *DeleteNotificationConfigurationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteNotificationConfiguration(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteNotificationConfigurationWithCallback invokes the ess.DeleteNotificationConfiguration API asynchronously
+// api document: https://help.aliyun.com/api/ess/deletenotificationconfiguration.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteNotificationConfigurationWithCallback(request *DeleteNotificationConfigurationRequest, callback func(response *DeleteNotificationConfigurationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteNotificationConfigurationResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteNotificationConfiguration(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteNotificationConfigurationRequest is the request struct for api DeleteNotificationConfiguration
+type DeleteNotificationConfigurationRequest struct {
+	*requests.RpcRequest
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ScalingGroupId       string           `position:"Query" name:"ScalingGroupId"`
+	NotificationArn      string           `position:"Query" name:"NotificationArn"`
+}
+
+// DeleteNotificationConfigurationResponse is the response struct for api DeleteNotificationConfiguration
+type DeleteNotificationConfigurationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteNotificationConfigurationRequest creates a request to invoke DeleteNotificationConfiguration API
+func CreateDeleteNotificationConfigurationRequest() (request *DeleteNotificationConfigurationRequest) {
+	request = &DeleteNotificationConfigurationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ess", "2014-08-28", "DeleteNotificationConfiguration", "ess", "openAPI")
+	return
+}
+
+// CreateDeleteNotificationConfigurationResponse creates a response to parse from DeleteNotificationConfiguration response
+func CreateDeleteNotificationConfigurationResponse() (response *DeleteNotificationConfigurationResponse) {
+	response = &DeleteNotificationConfigurationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/ess/describe_notification_configurations.go

@@ -0,0 +1,106 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeNotificationConfigurations invokes the ess.DescribeNotificationConfigurations API synchronously
+// api document: https://help.aliyun.com/api/ess/describenotificationconfigurations.html
+func (client *Client) DescribeNotificationConfigurations(request *DescribeNotificationConfigurationsRequest) (response *DescribeNotificationConfigurationsResponse, err error) {
+	response = CreateDescribeNotificationConfigurationsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeNotificationConfigurationsWithChan invokes the ess.DescribeNotificationConfigurations API asynchronously
+// api document: https://help.aliyun.com/api/ess/describenotificationconfigurations.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNotificationConfigurationsWithChan(request *DescribeNotificationConfigurationsRequest) (<-chan *DescribeNotificationConfigurationsResponse, <-chan error) {
+	responseChan := make(chan *DescribeNotificationConfigurationsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeNotificationConfigurations(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeNotificationConfigurationsWithCallback invokes the ess.DescribeNotificationConfigurations API asynchronously
+// api document: https://help.aliyun.com/api/ess/describenotificationconfigurations.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNotificationConfigurationsWithCallback(request *DescribeNotificationConfigurationsRequest, callback func(response *DescribeNotificationConfigurationsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeNotificationConfigurationsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeNotificationConfigurations(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeNotificationConfigurationsRequest is the request struct for api DescribeNotificationConfigurations
+type DescribeNotificationConfigurationsRequest struct {
+	*requests.RpcRequest
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ScalingGroupId       string           `position:"Query" name:"ScalingGroupId"`
+}
+
+// DescribeNotificationConfigurationsResponse is the response struct for api DescribeNotificationConfigurations
+type DescribeNotificationConfigurationsResponse struct {
+	*responses.BaseResponse
+	RequestId                       string                          `json:"RequestId" xml:"RequestId"`
+	NotificationConfigurationModels NotificationConfigurationModels `json:"NotificationConfigurationModels" xml:"NotificationConfigurationModels"`
+}
+
+// CreateDescribeNotificationConfigurationsRequest creates a request to invoke DescribeNotificationConfigurations API
+func CreateDescribeNotificationConfigurationsRequest() (request *DescribeNotificationConfigurationsRequest) {
+	request = &DescribeNotificationConfigurationsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ess", "2014-08-28", "DescribeNotificationConfigurations", "ess", "openAPI")
+	return
+}
+
+// CreateDescribeNotificationConfigurationsResponse creates a response to parse from DescribeNotificationConfigurations response
+func CreateDescribeNotificationConfigurationsResponse() (response *DescribeNotificationConfigurationsResponse) {
+	response = &DescribeNotificationConfigurationsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/ess/describe_notification_types.go

@@ -0,0 +1,105 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeNotificationTypes invokes the ess.DescribeNotificationTypes API synchronously
+// api document: https://help.aliyun.com/api/ess/describenotificationtypes.html
+func (client *Client) DescribeNotificationTypes(request *DescribeNotificationTypesRequest) (response *DescribeNotificationTypesResponse, err error) {
+	response = CreateDescribeNotificationTypesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeNotificationTypesWithChan invokes the ess.DescribeNotificationTypes API asynchronously
+// api document: https://help.aliyun.com/api/ess/describenotificationtypes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNotificationTypesWithChan(request *DescribeNotificationTypesRequest) (<-chan *DescribeNotificationTypesResponse, <-chan error) {
+	responseChan := make(chan *DescribeNotificationTypesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeNotificationTypes(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeNotificationTypesWithCallback invokes the ess.DescribeNotificationTypes API asynchronously
+// api document: https://help.aliyun.com/api/ess/describenotificationtypes.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeNotificationTypesWithCallback(request *DescribeNotificationTypesRequest, callback func(response *DescribeNotificationTypesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeNotificationTypesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeNotificationTypes(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeNotificationTypesRequest is the request struct for api DescribeNotificationTypes
+type DescribeNotificationTypesRequest struct {
+	*requests.RpcRequest
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+}
+
+// DescribeNotificationTypesResponse is the response struct for api DescribeNotificationTypes
+type DescribeNotificationTypesResponse struct {
+	*responses.BaseResponse
+	RequestId         string                                       `json:"RequestId" xml:"RequestId"`
+	NotificationTypes NotificationTypesInDescribeNotificationTypes `json:"NotificationTypes" xml:"NotificationTypes"`
+}
+
+// CreateDescribeNotificationTypesRequest creates a request to invoke DescribeNotificationTypes API
+func CreateDescribeNotificationTypesRequest() (request *DescribeNotificationTypesRequest) {
+	request = &DescribeNotificationTypesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ess", "2014-08-28", "DescribeNotificationTypes", "ess", "openAPI")
+	return
+}
+
+// CreateDescribeNotificationTypesResponse creates a response to parse from DescribeNotificationTypes response
+func CreateDescribeNotificationTypesResponse() (response *DescribeNotificationTypesResponse) {
+	response = &DescribeNotificationTypesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/ess/enter_standby.go

@@ -0,0 +1,106 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// EnterStandby invokes the ess.EnterStandby API synchronously
+// api document: https://help.aliyun.com/api/ess/enterstandby.html
+func (client *Client) EnterStandby(request *EnterStandbyRequest) (response *EnterStandbyResponse, err error) {
+	response = CreateEnterStandbyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// EnterStandbyWithChan invokes the ess.EnterStandby API asynchronously
+// api document: https://help.aliyun.com/api/ess/enterstandby.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnterStandbyWithChan(request *EnterStandbyRequest) (<-chan *EnterStandbyResponse, <-chan error) {
+	responseChan := make(chan *EnterStandbyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.EnterStandby(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// EnterStandbyWithCallback invokes the ess.EnterStandby API asynchronously
+// api document: https://help.aliyun.com/api/ess/enterstandby.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnterStandbyWithCallback(request *EnterStandbyRequest, callback func(response *EnterStandbyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *EnterStandbyResponse
+		var err error
+		defer close(result)
+		response, err = client.EnterStandby(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// EnterStandbyRequest is the request struct for api EnterStandby
+type EnterStandbyRequest struct {
+	*requests.RpcRequest
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ScalingGroupId       string           `position:"Query" name:"ScalingGroupId"`
+	InstanceId           *[]string        `position:"Query" name:"InstanceId"  type:"Repeated"`
+}
+
+// EnterStandbyResponse is the response struct for api EnterStandby
+type EnterStandbyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateEnterStandbyRequest creates a request to invoke EnterStandby API
+func CreateEnterStandbyRequest() (request *EnterStandbyRequest) {
+	request = &EnterStandbyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ess", "2014-08-28", "EnterStandby", "ess", "openAPI")
+	return
+}
+
+// CreateEnterStandbyResponse creates a response to parse from EnterStandby response
+func CreateEnterStandbyResponse() (response *EnterStandbyResponse) {
+	response = &EnterStandbyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/ess/exit_standby.go

@@ -0,0 +1,106 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ExitStandby invokes the ess.ExitStandby API synchronously
+// api document: https://help.aliyun.com/api/ess/exitstandby.html
+func (client *Client) ExitStandby(request *ExitStandbyRequest) (response *ExitStandbyResponse, err error) {
+	response = CreateExitStandbyResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ExitStandbyWithChan invokes the ess.ExitStandby API asynchronously
+// api document: https://help.aliyun.com/api/ess/exitstandby.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ExitStandbyWithChan(request *ExitStandbyRequest) (<-chan *ExitStandbyResponse, <-chan error) {
+	responseChan := make(chan *ExitStandbyResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ExitStandby(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ExitStandbyWithCallback invokes the ess.ExitStandby API asynchronously
+// api document: https://help.aliyun.com/api/ess/exitstandby.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ExitStandbyWithCallback(request *ExitStandbyRequest, callback func(response *ExitStandbyResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ExitStandbyResponse
+		var err error
+		defer close(result)
+		response, err = client.ExitStandby(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ExitStandbyRequest is the request struct for api ExitStandby
+type ExitStandbyRequest struct {
+	*requests.RpcRequest
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ScalingGroupId       string           `position:"Query" name:"ScalingGroupId"`
+	InstanceId           *[]string        `position:"Query" name:"InstanceId"  type:"Repeated"`
+}
+
+// ExitStandbyResponse is the response struct for api ExitStandby
+type ExitStandbyResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateExitStandbyRequest creates a request to invoke ExitStandby API
+func CreateExitStandbyRequest() (request *ExitStandbyRequest) {
+	request = &ExitStandbyRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ess", "2014-08-28", "ExitStandby", "ess", "openAPI")
+	return
+}
+
+// CreateExitStandbyResponse creates a response to parse from ExitStandby response
+func CreateExitStandbyResponse() (response *ExitStandbyResponse) {
+	response = &ExitStandbyResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/ess/modify_notification_configuration.go

@@ -0,0 +1,107 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyNotificationConfiguration invokes the ess.ModifyNotificationConfiguration API synchronously
+// api document: https://help.aliyun.com/api/ess/modifynotificationconfiguration.html
+func (client *Client) ModifyNotificationConfiguration(request *ModifyNotificationConfigurationRequest) (response *ModifyNotificationConfigurationResponse, err error) {
+	response = CreateModifyNotificationConfigurationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyNotificationConfigurationWithChan invokes the ess.ModifyNotificationConfiguration API asynchronously
+// api document: https://help.aliyun.com/api/ess/modifynotificationconfiguration.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyNotificationConfigurationWithChan(request *ModifyNotificationConfigurationRequest) (<-chan *ModifyNotificationConfigurationResponse, <-chan error) {
+	responseChan := make(chan *ModifyNotificationConfigurationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyNotificationConfiguration(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyNotificationConfigurationWithCallback invokes the ess.ModifyNotificationConfiguration API asynchronously
+// api document: https://help.aliyun.com/api/ess/modifynotificationconfiguration.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyNotificationConfigurationWithCallback(request *ModifyNotificationConfigurationRequest, callback func(response *ModifyNotificationConfigurationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyNotificationConfigurationResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyNotificationConfiguration(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyNotificationConfigurationRequest is the request struct for api ModifyNotificationConfiguration
+type ModifyNotificationConfigurationRequest struct {
+	*requests.RpcRequest
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ScalingGroupId       string           `position:"Query" name:"ScalingGroupId"`
+	NotificationArn      string           `position:"Query" name:"NotificationArn"`
+	NotificationType     *[]string        `position:"Query" name:"NotificationType"  type:"Repeated"`
+}
+
+// ModifyNotificationConfigurationResponse is the response struct for api ModifyNotificationConfiguration
+type ModifyNotificationConfigurationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyNotificationConfigurationRequest creates a request to invoke ModifyNotificationConfiguration API
+func CreateModifyNotificationConfigurationRequest() (request *ModifyNotificationConfigurationRequest) {
+	request = &ModifyNotificationConfigurationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ess", "2014-08-28", "ModifyNotificationConfiguration", "ess", "openAPI")
+	return
+}
+
+// CreateModifyNotificationConfigurationResponse creates a response to parse from ModifyNotificationConfiguration response
+func CreateModifyNotificationConfigurationResponse() (response *ModifyNotificationConfigurationResponse) {
+	response = &ModifyNotificationConfigurationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 23 - 0
services/ess/struct_notification_configuration_model.go

@@ -0,0 +1,23 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// NotificationConfigurationModel is a nested struct in ess response
+type NotificationConfigurationModel struct {
+	ScalingGroupId    string                                                `json:"ScalingGroupId" xml:"ScalingGroupId"`
+	NotificationArn   string                                                `json:"NotificationArn" xml:"NotificationArn"`
+	NotificationTypes NotificationTypesInDescribeNotificationConfigurations `json:"NotificationTypes" xml:"NotificationTypes"`
+}

+ 21 - 0
services/ess/struct_notification_configuration_models.go

@@ -0,0 +1,21 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// NotificationConfigurationModels is a nested struct in ess response
+type NotificationConfigurationModels struct {
+	NotificationConfigurationModel []NotificationConfigurationModel `json:"NotificationConfigurationModel" xml:"NotificationConfigurationModel"`
+}

+ 21 - 0
services/ess/struct_notification_types_in_describe_notification_configurations.go

@@ -0,0 +1,21 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// NotificationTypesInDescribeNotificationConfigurations is a nested struct in ess response
+type NotificationTypesInDescribeNotificationConfigurations struct {
+	NotificationType []string `json:"NotificationType" xml:"NotificationType"`
+}

+ 21 - 0
services/ess/struct_notification_types_in_describe_notification_types.go

@@ -0,0 +1,21 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// NotificationTypesInDescribeNotificationTypes is a nested struct in ess response
+type NotificationTypesInDescribeNotificationTypes struct {
+	NotificationType []string `json:"NotificationType" xml:"NotificationType"`
+}

+ 27 - 25
services/ess/struct_scaling_configuration.go

@@ -17,29 +17,31 @@ package ess
 
 // ScalingConfiguration is a nested struct in ess response
 type ScalingConfiguration struct {
-	ScalingConfigurationId      string        `json:"ScalingConfigurationId" xml:"ScalingConfigurationId"`
-	ScalingConfigurationName    string        `json:"ScalingConfigurationName" xml:"ScalingConfigurationName"`
-	ScalingGroupId              string        `json:"ScalingGroupId" xml:"ScalingGroupId"`
-	InstanceName                string        `json:"InstanceName" xml:"InstanceName"`
-	ImageId                     string        `json:"ImageId" xml:"ImageId"`
-	InstanceType                string        `json:"InstanceType" xml:"InstanceType"`
-	InstanceGeneration          string        `json:"InstanceGeneration" xml:"InstanceGeneration"`
-	SecurityGroupId             string        `json:"SecurityGroupId" xml:"SecurityGroupId"`
-	IoOptimized                 string        `json:"IoOptimized" xml:"IoOptimized"`
-	InternetChargeType          string        `json:"InternetChargeType" xml:"InternetChargeType"`
-	InternetMaxBandwidthIn      int           `json:"InternetMaxBandwidthIn" xml:"InternetMaxBandwidthIn"`
-	InternetMaxBandwidthOut     int           `json:"InternetMaxBandwidthOut" xml:"InternetMaxBandwidthOut"`
-	SystemDiskCategory          string        `json:"SystemDiskCategory" xml:"SystemDiskCategory"`
-	SystemDiskSize              int           `json:"SystemDiskSize" xml:"SystemDiskSize"`
-	LifecycleState              string        `json:"LifecycleState" xml:"LifecycleState"`
-	CreationTime                string        `json:"CreationTime" xml:"CreationTime"`
-	LoadBalancerWeight          int           `json:"LoadBalancerWeight" xml:"LoadBalancerWeight"`
-	UserData                    string        `json:"UserData" xml:"UserData"`
-	KeyPairName                 string        `json:"KeyPairName" xml:"KeyPairName"`
-	RamRoleName                 string        `json:"RamRoleName" xml:"RamRoleName"`
-	DeploymentSetId             string        `json:"DeploymentSetId" xml:"DeploymentSetId"`
-	SecurityEnhancementStrategy string        `json:"SecurityEnhancementStrategy" xml:"SecurityEnhancementStrategy"`
-	InstanceTypes               InstanceTypes `json:"InstanceTypes" xml:"InstanceTypes"`
-	DataDisks                   DataDisks     `json:"DataDisks" xml:"DataDisks"`
-	Tags                        Tags          `json:"Tags" xml:"Tags"`
+	ScalingConfigurationId      string         `json:"ScalingConfigurationId" xml:"ScalingConfigurationId"`
+	ScalingConfigurationName    string         `json:"ScalingConfigurationName" xml:"ScalingConfigurationName"`
+	ScalingGroupId              string         `json:"ScalingGroupId" xml:"ScalingGroupId"`
+	InstanceName                string         `json:"InstanceName" xml:"InstanceName"`
+	ImageId                     string         `json:"ImageId" xml:"ImageId"`
+	InstanceType                string         `json:"InstanceType" xml:"InstanceType"`
+	InstanceGeneration          string         `json:"InstanceGeneration" xml:"InstanceGeneration"`
+	SecurityGroupId             string         `json:"SecurityGroupId" xml:"SecurityGroupId"`
+	IoOptimized                 string         `json:"IoOptimized" xml:"IoOptimized"`
+	InternetChargeType          string         `json:"InternetChargeType" xml:"InternetChargeType"`
+	InternetMaxBandwidthIn      int            `json:"InternetMaxBandwidthIn" xml:"InternetMaxBandwidthIn"`
+	InternetMaxBandwidthOut     int            `json:"InternetMaxBandwidthOut" xml:"InternetMaxBandwidthOut"`
+	SystemDiskCategory          string         `json:"SystemDiskCategory" xml:"SystemDiskCategory"`
+	SystemDiskSize              int            `json:"SystemDiskSize" xml:"SystemDiskSize"`
+	LifecycleState              string         `json:"LifecycleState" xml:"LifecycleState"`
+	CreationTime                string         `json:"CreationTime" xml:"CreationTime"`
+	LoadBalancerWeight          int            `json:"LoadBalancerWeight" xml:"LoadBalancerWeight"`
+	UserData                    string         `json:"UserData" xml:"UserData"`
+	KeyPairName                 string         `json:"KeyPairName" xml:"KeyPairName"`
+	RamRoleName                 string         `json:"RamRoleName" xml:"RamRoleName"`
+	DeploymentSetId             string         `json:"DeploymentSetId" xml:"DeploymentSetId"`
+	SecurityEnhancementStrategy string         `json:"SecurityEnhancementStrategy" xml:"SecurityEnhancementStrategy"`
+	SpotStrategy                string         `json:"SpotStrategy" xml:"SpotStrategy"`
+	InstanceTypes               InstanceTypes  `json:"InstanceTypes" xml:"InstanceTypes"`
+	DataDisks                   DataDisks      `json:"DataDisks" xml:"DataDisks"`
+	Tags                        Tags           `json:"Tags" xml:"Tags"`
+	SpotPriceLimit              SpotPriceLimit `json:"SpotPriceLimit" xml:"SpotPriceLimit"`
 }

+ 1 - 0
services/ess/struct_scaling_group.go

@@ -23,6 +23,7 @@ type ScalingGroup struct {
 	RemovingCapacity             int             `json:"RemovingCapacity" xml:"RemovingCapacity"`
 	ScalingGroupName             string          `json:"ScalingGroupName" xml:"ScalingGroupName"`
 	ActiveCapacity               int             `json:"ActiveCapacity" xml:"ActiveCapacity"`
+	StandbyCapacity              int             `json:"StandbyCapacity" xml:"StandbyCapacity"`
 	ActiveScalingConfigurationId string          `json:"ActiveScalingConfigurationId" xml:"ActiveScalingConfigurationId"`
 	ScalingGroupId               string          `json:"ScalingGroupId" xml:"ScalingGroupId"`
 	RegionId                     string          `json:"RegionId" xml:"RegionId"`

+ 21 - 0
services/ess/struct_spot_price_limit.go

@@ -0,0 +1,21 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// SpotPriceLimit is a nested struct in ess response
+type SpotPriceLimit struct {
+	SpotPriceModel []SpotPriceModel `json:"SpotPriceModel" xml:"SpotPriceModel"`
+}

+ 22 - 0
services/ess/struct_spot_price_model.go

@@ -0,0 +1,22 @@
+package ess
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// SpotPriceModel is a nested struct in ess response
+type SpotPriceModel struct {
+	InstanceType string  `json:"InstanceType" xml:"InstanceType"`
+	PriceLimit   float64 `json:"PriceLimit" xml:"PriceLimit"`
+}