Explorar o código

ECS SDK Auto Released By shaoyi.qusy,Version:1.60.19

Signed-off-by: sdk-team <sdk-team@alibabacloud.com>
sdk-team %!s(int64=6) %!d(string=hai) anos
pai
achega
582d16a078

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2019-05-22 Version: 1.60.19
+1, Add EndTime parameter to api ModifyPrepayInstanceSpec
+2, Add RebootTime parameter to api ModifyPrepayInstanceSpec
+
 2019-05-20 Version: 1.60.18
 1, Added the cross zones supported.
 

+ 137 - 0
services/ecs/create_fleet.go

@@ -0,0 +1,137 @@
+package ecs
+
+//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"
+)
+
+// CreateFleet invokes the ecs.CreateFleet API synchronously
+// api document: https://help.aliyun.com/api/ecs/createfleet.html
+func (client *Client) CreateFleet(request *CreateFleetRequest) (response *CreateFleetResponse, err error) {
+	response = CreateCreateFleetResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateFleetWithChan invokes the ecs.CreateFleet API asynchronously
+// api document: https://help.aliyun.com/api/ecs/createfleet.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateFleetWithChan(request *CreateFleetRequest) (<-chan *CreateFleetResponse, <-chan error) {
+	responseChan := make(chan *CreateFleetResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateFleet(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateFleetWithCallback invokes the ecs.CreateFleet API asynchronously
+// api document: https://help.aliyun.com/api/ecs/createfleet.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateFleetWithCallback(request *CreateFleetRequest, callback func(response *CreateFleetResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateFleetResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateFleet(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateFleetRequest is the request struct for api CreateFleet
+type CreateFleetRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId                  requests.Integer                   `position:"Query" name:"ResourceOwnerId"`
+	FleetType                        string                             `position:"Query" name:"FleetType"`
+	Description                      string                             `position:"Query" name:"Description"`
+	TerminateInstancesWithExpiration requests.Boolean                   `position:"Query" name:"TerminateInstancesWithExpiration"`
+	OnDemandTargetCapacity           string                             `position:"Query" name:"OnDemandTargetCapacity"`
+	FleetName                        string                             `position:"Query" name:"FleetName"`
+	SpotAllocationStrategy           string                             `position:"Query" name:"SpotAllocationStrategy"`
+	TerminateInstances               requests.Boolean                   `position:"Query" name:"TerminateInstances"`
+	DefaultTargetCapacityType        string                             `position:"Query" name:"DefaultTargetCapacityType"`
+	ExcessCapacityTerminationPolicy  string                             `position:"Query" name:"ExcessCapacityTerminationPolicy"`
+	LaunchTemplateConfig             *[]CreateFleetLaunchTemplateConfig `position:"Query" name:"LaunchTemplateConfig"  type:"Repeated"`
+	ValidUntil                       string                             `position:"Query" name:"ValidUntil"`
+	FillGapWithOnDemand              string                             `position:"Query" name:"FillGapWithOnDemand"`
+	SpotInstanceInterruptionBehavior string                             `position:"Query" name:"SpotInstanceInterruptionBehavior"`
+	LaunchTemplateId                 string                             `position:"Query" name:"LaunchTemplateId"`
+	ResourceOwnerAccount             string                             `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount                     string                             `position:"Query" name:"OwnerAccount"`
+	SpotInstancePoolsToUseCount      requests.Integer                   `position:"Query" name:"SpotInstancePoolsToUseCount"`
+	OwnerId                          requests.Integer                   `position:"Query" name:"OwnerId"`
+	LaunchTemplateVersion            string                             `position:"Query" name:"LaunchTemplateVersion"`
+	TotalTargetCapacity              string                             `position:"Query" name:"TotalTargetCapacity"`
+	OnDemandAllocationStrategy       string                             `position:"Query" name:"OnDemandAllocationStrategy"`
+	SpotTargetCapacity               string                             `position:"Query" name:"SpotTargetCapacity"`
+	ValidFrom                        string                             `position:"Query" name:"ValidFrom"`
+	MaxSpotPrice                     requests.Float                     `position:"Query" name:"MaxSpotPrice"`
+}
+
+// CreateFleetLaunchTemplateConfig is a repeated param struct in CreateFleetRequest
+type CreateFleetLaunchTemplateConfig struct {
+	InstanceType     string `name:"InstanceType"`
+	MaxPrice         string `name:"MaxPrice"`
+	VSwitchId        string `name:"VSwitchId"`
+	WeightedCapacity string `name:"WeightedCapacity"`
+	Priority         string `name:"Priority"`
+}
+
+// CreateFleetResponse is the response struct for api CreateFleet
+type CreateFleetResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	FleetId   string `json:"FleetId" xml:"FleetId"`
+}
+
+// CreateCreateFleetRequest creates a request to invoke CreateFleet API
+func CreateCreateFleetRequest() (request *CreateFleetRequest) {
+	request = &CreateFleetRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ecs", "2014-05-26", "CreateFleet", "ecs", "openAPI")
+	return
+}
+
+// CreateCreateFleetResponse creates a response to parse from CreateFleet response
+func CreateCreateFleetResponse() (response *CreateFleetResponse) {
+	response = &CreateFleetResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 2
services/ecs/create_instance.go

@@ -162,8 +162,9 @@ type CreateInstanceDataDisk struct {
 // CreateInstanceResponse is the response struct for api CreateInstance
 type CreateInstanceResponse struct {
 	*responses.BaseResponse
-	RequestId  string `json:"RequestId" xml:"RequestId"`
-	InstanceId string `json:"InstanceId" xml:"InstanceId"`
+	RequestId  string  `json:"RequestId" xml:"RequestId"`
+	InstanceId string  `json:"InstanceId" xml:"InstanceId"`
+	TradePrice float64 `json:"TradePrice" xml:"TradePrice"`
 }
 
 // CreateCreateInstanceRequest creates a request to invoke CreateInstance API

+ 108 - 0
services/ecs/delete_fleet.go

@@ -0,0 +1,108 @@
+package ecs
+
+//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"
+)
+
+// DeleteFleet invokes the ecs.DeleteFleet API synchronously
+// api document: https://help.aliyun.com/api/ecs/deletefleet.html
+func (client *Client) DeleteFleet(request *DeleteFleetRequest) (response *DeleteFleetResponse, err error) {
+	response = CreateDeleteFleetResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteFleetWithChan invokes the ecs.DeleteFleet API asynchronously
+// api document: https://help.aliyun.com/api/ecs/deletefleet.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteFleetWithChan(request *DeleteFleetRequest) (<-chan *DeleteFleetResponse, <-chan error) {
+	responseChan := make(chan *DeleteFleetResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteFleet(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteFleetWithCallback invokes the ecs.DeleteFleet API asynchronously
+// api document: https://help.aliyun.com/api/ecs/deletefleet.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteFleetWithCallback(request *DeleteFleetRequest, callback func(response *DeleteFleetResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteFleetResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteFleet(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteFleetRequest is the request struct for api DeleteFleet
+type DeleteFleetRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	TerminateInstances   requests.Boolean `position:"Query" name:"TerminateInstances"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	FleetId              string           `position:"Query" name:"FleetId"`
+}
+
+// DeleteFleetResponse is the response struct for api DeleteFleet
+type DeleteFleetResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteFleetRequest creates a request to invoke DeleteFleet API
+func CreateDeleteFleetRequest() (request *DeleteFleetRequest) {
+	request = &DeleteFleetRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ecs", "2014-05-26", "DeleteFleet", "ecs", "openAPI")
+	return
+}
+
+// CreateDeleteFleetResponse creates a response to parse from DeleteFleet response
+func CreateDeleteFleetResponse() (response *DeleteFleetResponse) {
+	response = &DeleteFleetResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/ecs/describe_fleet_history.go

@@ -0,0 +1,111 @@
+package ecs
+
+//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"
+)
+
+// DescribeFleetHistory invokes the ecs.DescribeFleetHistory API synchronously
+// api document: https://help.aliyun.com/api/ecs/describefleethistory.html
+func (client *Client) DescribeFleetHistory(request *DescribeFleetHistoryRequest) (response *DescribeFleetHistoryResponse, err error) {
+	response = CreateDescribeFleetHistoryResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeFleetHistoryWithChan invokes the ecs.DescribeFleetHistory API asynchronously
+// api document: https://help.aliyun.com/api/ecs/describefleethistory.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeFleetHistoryWithChan(request *DescribeFleetHistoryRequest) (<-chan *DescribeFleetHistoryResponse, <-chan error) {
+	responseChan := make(chan *DescribeFleetHistoryResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeFleetHistory(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeFleetHistoryWithCallback invokes the ecs.DescribeFleetHistory API asynchronously
+// api document: https://help.aliyun.com/api/ecs/describefleethistory.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeFleetHistoryWithCallback(request *DescribeFleetHistoryRequest, callback func(response *DescribeFleetHistoryResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeFleetHistoryResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeFleetHistory(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeFleetHistoryRequest is the request struct for api DescribeFleetHistory
+type DescribeFleetHistoryRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	FleetId              string           `position:"Query" name:"FleetId"`
+}
+
+// DescribeFleetHistoryResponse is the response struct for api DescribeFleetHistory
+type DescribeFleetHistoryResponse struct {
+	*responses.BaseResponse
+	RequestId     string        `json:"RequestId" xml:"RequestId"`
+	TotalCount    int           `json:"TotalCount" xml:"TotalCount"`
+	PageNumber    int           `json:"PageNumber" xml:"PageNumber"`
+	PageSize      int           `json:"PageSize" xml:"PageSize"`
+	FleetHistorys FleetHistorys `json:"FleetHistorys" xml:"FleetHistorys"`
+}
+
+// CreateDescribeFleetHistoryRequest creates a request to invoke DescribeFleetHistory API
+func CreateDescribeFleetHistoryRequest() (request *DescribeFleetHistoryRequest) {
+	request = &DescribeFleetHistoryRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ecs", "2014-05-26", "DescribeFleetHistory", "ecs", "openAPI")
+	return
+}
+
+// CreateDescribeFleetHistoryResponse creates a response to parse from DescribeFleetHistory response
+func CreateDescribeFleetHistoryResponse() (response *DescribeFleetHistoryResponse) {
+	response = &DescribeFleetHistoryResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/ecs/describe_fleet_instances.go

@@ -0,0 +1,113 @@
+package ecs
+
+//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"
+)
+
+// DescribeFleetInstances invokes the ecs.DescribeFleetInstances API synchronously
+// api document: https://help.aliyun.com/api/ecs/describefleetinstances.html
+func (client *Client) DescribeFleetInstances(request *DescribeFleetInstancesRequest) (response *DescribeFleetInstancesResponse, err error) {
+	response = CreateDescribeFleetInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeFleetInstancesWithChan invokes the ecs.DescribeFleetInstances API asynchronously
+// api document: https://help.aliyun.com/api/ecs/describefleetinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeFleetInstancesWithChan(request *DescribeFleetInstancesRequest) (<-chan *DescribeFleetInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeFleetInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeFleetInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeFleetInstancesWithCallback invokes the ecs.DescribeFleetInstances API asynchronously
+// api document: https://help.aliyun.com/api/ecs/describefleetinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeFleetInstancesWithCallback(request *DescribeFleetInstancesRequest, callback func(response *DescribeFleetInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeFleetInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeFleetInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeFleetInstancesRequest is the request struct for api DescribeFleetInstances
+type DescribeFleetInstancesRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	FleetId              string           `position:"Query" name:"FleetId"`
+}
+
+// DescribeFleetInstancesResponse is the response struct for api DescribeFleetInstances
+type DescribeFleetInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId  string                            `json:"RequestId" xml:"RequestId"`
+	TotalCount int                               `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int                               `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int                               `json:"PageSize" xml:"PageSize"`
+	Instances  InstancesInDescribeFleetInstances `json:"Instances" xml:"Instances"`
+}
+
+// CreateDescribeFleetInstancesRequest creates a request to invoke DescribeFleetInstances API
+func CreateDescribeFleetInstancesRequest() (request *DescribeFleetInstancesRequest) {
+	request = &DescribeFleetInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ecs", "2014-05-26", "DescribeFleetInstances", "ecs", "openAPI")
+	return
+}
+
+// CreateDescribeFleetInstancesResponse creates a response to parse from DescribeFleetInstances response
+func CreateDescribeFleetInstancesResponse() (response *DescribeFleetInstancesResponse) {
+	response = &DescribeFleetInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/ecs/describe_fleets.go

@@ -0,0 +1,115 @@
+package ecs
+
+//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"
+)
+
+// DescribeFleets invokes the ecs.DescribeFleets API synchronously
+// api document: https://help.aliyun.com/api/ecs/describefleets.html
+func (client *Client) DescribeFleets(request *DescribeFleetsRequest) (response *DescribeFleetsResponse, err error) {
+	response = CreateDescribeFleetsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeFleetsWithChan invokes the ecs.DescribeFleets API asynchronously
+// api document: https://help.aliyun.com/api/ecs/describefleets.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeFleetsWithChan(request *DescribeFleetsRequest) (<-chan *DescribeFleetsResponse, <-chan error) {
+	responseChan := make(chan *DescribeFleetsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeFleets(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeFleetsWithCallback invokes the ecs.DescribeFleets API asynchronously
+// api document: https://help.aliyun.com/api/ecs/describefleets.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeFleetsWithCallback(request *DescribeFleetsRequest, callback func(response *DescribeFleetsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeFleetsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeFleets(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeFleetsRequest is the request struct for api DescribeFleets
+type DescribeFleetsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	FleetName            string           `position:"Query" name:"FleetName"`
+	FleetStatus          *[]string        `position:"Query" name:"FleetStatus"  type:"Repeated"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	FleetId              *[]string        `position:"Query" name:"FleetId"  type:"Repeated"`
+}
+
+// DescribeFleetsResponse is the response struct for api DescribeFleets
+type DescribeFleetsResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Fleets     Fleets `json:"Fleets" xml:"Fleets"`
+}
+
+// CreateDescribeFleetsRequest creates a request to invoke DescribeFleets API
+func CreateDescribeFleetsRequest() (request *DescribeFleetsRequest) {
+	request = &DescribeFleetsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ecs", "2014-05-26", "DescribeFleets", "ecs", "openAPI")
+	return
+}
+
+// CreateDescribeFleetsResponse creates a response to parse from DescribeFleets response
+func CreateDescribeFleetsResponse() (response *DescribeFleetsResponse) {
+	response = &DescribeFleetsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/ecs/describe_tags.go

@@ -82,6 +82,7 @@ type DescribeTagsRequest struct {
 	PageSize             requests.Integer   `position:"Query" name:"PageSize"`
 	Tag                  *[]DescribeTagsTag `position:"Query" name:"Tag"  type:"Repeated"`
 	OwnerId              requests.Integer   `position:"Query" name:"OwnerId"`
+	Category             string             `position:"Query" name:"Category"`
 	ResourceType         string             `position:"Query" name:"ResourceType"`
 	PageNumber           requests.Integer   `position:"Query" name:"PageNumber"`
 }

+ 114 - 0
services/ecs/modify_fleet.go

@@ -0,0 +1,114 @@
+package ecs
+
+//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"
+)
+
+// ModifyFleet invokes the ecs.ModifyFleet API synchronously
+// api document: https://help.aliyun.com/api/ecs/modifyfleet.html
+func (client *Client) ModifyFleet(request *ModifyFleetRequest) (response *ModifyFleetResponse, err error) {
+	response = CreateModifyFleetResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyFleetWithChan invokes the ecs.ModifyFleet API asynchronously
+// api document: https://help.aliyun.com/api/ecs/modifyfleet.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyFleetWithChan(request *ModifyFleetRequest) (<-chan *ModifyFleetResponse, <-chan error) {
+	responseChan := make(chan *ModifyFleetResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyFleet(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyFleetWithCallback invokes the ecs.ModifyFleet API asynchronously
+// api document: https://help.aliyun.com/api/ecs/modifyfleet.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyFleetWithCallback(request *ModifyFleetRequest, callback func(response *ModifyFleetResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyFleetResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyFleet(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyFleetRequest is the request struct for api ModifyFleet
+type ModifyFleetRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId                  requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	TerminateInstancesWithExpiration requests.Boolean `position:"Query" name:"TerminateInstancesWithExpiration"`
+	OnDemandTargetCapacity           string           `position:"Query" name:"OnDemandTargetCapacity"`
+	DefaultTargetCapacityType        string           `position:"Query" name:"DefaultTargetCapacityType"`
+	ExcessCapacityTerminationPolicy  string           `position:"Query" name:"ExcessCapacityTerminationPolicy"`
+	ResourceOwnerAccount             string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount                     string           `position:"Query" name:"OwnerAccount"`
+	OwnerId                          requests.Integer `position:"Query" name:"OwnerId"`
+	FleetId                          string           `position:"Query" name:"FleetId"`
+	TotalTargetCapacity              string           `position:"Query" name:"TotalTargetCapacity"`
+	SpotTargetCapacity               string           `position:"Query" name:"SpotTargetCapacity"`
+	MaxSpotPrice                     requests.Float   `position:"Query" name:"MaxSpotPrice"`
+}
+
+// ModifyFleetResponse is the response struct for api ModifyFleet
+type ModifyFleetResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyFleetRequest creates a request to invoke ModifyFleet API
+func CreateModifyFleetRequest() (request *ModifyFleetRequest) {
+	request = &ModifyFleetRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ecs", "2014-05-26", "ModifyFleet", "ecs", "openAPI")
+	return
+}
+
+// CreateModifyFleetResponse creates a response to parse from ModifyFleet response
+func CreateModifyFleetResponse() (response *ModifyFleetResponse) {
+	response = &ModifyFleetResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 0
services/ecs/modify_prepay_instance_spec.go

@@ -81,9 +81,11 @@ type ModifyPrepayInstanceSpecRequest struct {
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	ClientToken          string           `position:"Query" name:"ClientToken"`
 	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 	OperatorType         string           `position:"Query" name:"OperatorType"`
 	SystemDiskCategory   string           `position:"Query" name:"SystemDisk.Category"`
+	RebootTime           string           `position:"Query" name:"RebootTime"`
 	InstanceId           string           `position:"Query" name:"InstanceId"`
 	MigrateAcrossZone    requests.Boolean `position:"Query" name:"MigrateAcrossZone"`
 	InstanceType         string           `position:"Query" name:"InstanceType"`

+ 113 - 0
services/ecs/report_instances_status.go

@@ -0,0 +1,113 @@
+package ecs
+
+//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"
+)
+
+// ReportInstancesStatus invokes the ecs.ReportInstancesStatus API synchronously
+// api document: https://help.aliyun.com/api/ecs/reportinstancesstatus.html
+func (client *Client) ReportInstancesStatus(request *ReportInstancesStatusRequest) (response *ReportInstancesStatusResponse, err error) {
+	response = CreateReportInstancesStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ReportInstancesStatusWithChan invokes the ecs.ReportInstancesStatus API asynchronously
+// api document: https://help.aliyun.com/api/ecs/reportinstancesstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ReportInstancesStatusWithChan(request *ReportInstancesStatusRequest) (<-chan *ReportInstancesStatusResponse, <-chan error) {
+	responseChan := make(chan *ReportInstancesStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ReportInstancesStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ReportInstancesStatusWithCallback invokes the ecs.ReportInstancesStatus API asynchronously
+// api document: https://help.aliyun.com/api/ecs/reportinstancesstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ReportInstancesStatusWithCallback(request *ReportInstancesStatusRequest, callback func(response *ReportInstancesStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ReportInstancesStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.ReportInstancesStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ReportInstancesStatusRequest is the request struct for api ReportInstancesStatus
+type ReportInstancesStatusRequest struct {
+	*requests.RpcRequest
+	Reason               string           `position:"Query" name:"Reason"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Description          string           `position:"Query" name:"Description"`
+	StartTime            string           `position:"Query" name:"StartTime"`
+	DiskId               *[]string        `position:"Query" name:"DiskId"  type:"Repeated"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	EndTime              string           `position:"Query" name:"EndTime"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	InstanceId           *[]string        `position:"Query" name:"InstanceId"  type:"Repeated"`
+	Device               *[]string        `position:"Query" name:"Device"  type:"Repeated"`
+}
+
+// ReportInstancesStatusResponse is the response struct for api ReportInstancesStatus
+type ReportInstancesStatusResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateReportInstancesStatusRequest creates a request to invoke ReportInstancesStatus API
+func CreateReportInstancesStatusRequest() (request *ReportInstancesStatusRequest) {
+	request = &ReportInstancesStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Ecs", "2014-05-26", "ReportInstancesStatus", "ecs", "openAPI")
+	return
+}
+
+// CreateReportInstancesStatusResponse creates a response to parse from ReportInstancesStatus response
+func CreateReportInstancesStatusResponse() (response *ReportInstancesStatusResponse) {
+	response = &ReportInstancesStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/ecs/run_instances.go

@@ -171,6 +171,7 @@ type RunInstancesDataDisk struct {
 type RunInstancesResponse struct {
 	*responses.BaseResponse
 	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	TradePrice     float64        `json:"TradePrice" xml:"TradePrice"`
 	InstanceIdSets InstanceIdSets `json:"InstanceIdSets" xml:"InstanceIdSets"`
 }
 

+ 22 - 0
services/ecs/struct_activity_detail.go

@@ -0,0 +1,22 @@
+package ecs
+
+//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.
+
+// ActivityDetail is a nested struct in ecs response
+type ActivityDetail struct {
+	Detail string  `json:"Detail" xml:"Detail"`
+	Status float64 `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/ecs/struct_activity_details.go

@@ -0,0 +1,21 @@
+package ecs
+
+//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.
+
+// ActivityDetails is a nested struct in ecs response
+type ActivityDetails struct {
+	ActivityDetail []ActivityDetail `json:"ActivityDetail" xml:"ActivityDetail"`
+}

+ 39 - 0
services/ecs/struct_fleet.go

@@ -0,0 +1,39 @@
+package ecs
+
+//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.
+
+// Fleet is a nested struct in ecs response
+type Fleet struct {
+	FleetId                          string                      `json:"FleetId" xml:"FleetId"`
+	FleetName                        string                      `json:"FleetName" xml:"FleetName"`
+	FleetType                        string                      `json:"FleetType" xml:"FleetType"`
+	Status                           string                      `json:"Status" xml:"Status"`
+	State                            string                      `json:"State" xml:"State"`
+	RegionId                         string                      `json:"RegionId" xml:"RegionId"`
+	ValidFrom                        string                      `json:"ValidFrom" xml:"ValidFrom"`
+	ValidUntil                       string                      `json:"ValidUntil" xml:"ValidUntil"`
+	ExcessCapacityTerminationPolicy  string                      `json:"ExcessCapacityTerminationPolicy" xml:"ExcessCapacityTerminationPolicy"`
+	MaxSpotPrice                     float64                     `json:"MaxSpotPrice" xml:"MaxSpotPrice"`
+	LaunchTemplateId                 string                      `json:"LaunchTemplateId" xml:"LaunchTemplateId"`
+	LaunchTemplateVersion            string                      `json:"LaunchTemplateVersion" xml:"LaunchTemplateVersion"`
+	TerminateInstances               bool                        `json:"TerminateInstances" xml:"TerminateInstances"`
+	TerminateInstancesWithExpiration bool                        `json:"TerminateInstancesWithExpiration" xml:"TerminateInstancesWithExpiration"`
+	CreationTime                     string                      `json:"CreationTime" xml:"CreationTime"`
+	SpotOptions                      SpotOptions                 `json:"SpotOptions" xml:"SpotOptions"`
+	OnDemandOptions                  OnDemandOptions             `json:"OnDemandOptions" xml:"OnDemandOptions"`
+	TargetCapacitySpecification      TargetCapacitySpecification `json:"TargetCapacitySpecification" xml:"TargetCapacitySpecification"`
+	LaunchTemplateConfigs            LaunchTemplateConfigs       `json:"launchTemplateConfigs" xml:"launchTemplateConfigs"`
+}

+ 25 - 0
services/ecs/struct_fleet_history.go

@@ -0,0 +1,25 @@
+package ecs
+
+//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.
+
+// FleetHistory is a nested struct in ecs response
+type FleetHistory struct {
+	TaskId          string          `json:"TaskId" xml:"TaskId"`
+	Status          string          `json:"Status" xml:"Status"`
+	LastEventTime   string          `json:"LastEventTime" xml:"LastEventTime"`
+	StartTime       string          `json:"StartTime" xml:"StartTime"`
+	ActivityDetails ActivityDetails `json:"ActivityDetails" xml:"ActivityDetails"`
+}

+ 21 - 0
services/ecs/struct_fleet_historys.go

@@ -0,0 +1,21 @@
+package ecs
+
+//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.
+
+// FleetHistorys is a nested struct in ecs response
+type FleetHistorys struct {
+	FleetHistory []FleetHistory `json:"FleetHistory" xml:"FleetHistory"`
+}

+ 21 - 0
services/ecs/struct_fleets.go

@@ -0,0 +1,21 @@
+package ecs
+
+//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.
+
+// Fleets is a nested struct in ecs response
+type Fleets struct {
+	Fleet []Fleet `json:"Fleet" xml:"Fleet"`
+}

+ 8 - 2
services/ecs/struct_instance.go

@@ -17,49 +17,55 @@ package ecs
 
 // Instance is a nested struct in ecs response
 type Instance struct {
+	Cores                      int                                  `json:"Cores" xml:"Cores"`
 	ImageId                    string                               `json:"ImageId" xml:"ImageId"`
 	InstanceType               string                               `json:"InstanceType" xml:"InstanceType"`
 	AutoReleaseTime            string                               `json:"AutoReleaseTime" xml:"AutoReleaseTime"`
 	DeviceAvailable            bool                                 `json:"DeviceAvailable" xml:"DeviceAvailable"`
 	InstanceNetworkType        string                               `json:"InstanceNetworkType" xml:"InstanceNetworkType"`
 	LocalStorageAmount         int                                  `json:"LocalStorageAmount" xml:"LocalStorageAmount"`
+	IsSpot                     bool                                 `json:"IsSpot" xml:"IsSpot"`
 	InstanceChargeType         string                               `json:"InstanceChargeType" xml:"InstanceChargeType"`
 	ClusterId                  string                               `json:"ClusterId" xml:"ClusterId"`
 	InstanceName               string                               `json:"InstanceName" xml:"InstanceName"`
 	CreditSpecification        string                               `json:"CreditSpecification" xml:"CreditSpecification"`
 	GPUAmount                  int                                  `json:"GPUAmount" xml:"GPUAmount"`
+	ZoneNo                     string                               `json:"ZoneNo" xml:"ZoneNo"`
 	StartTime                  string                               `json:"StartTime" xml:"StartTime"`
 	ZoneId                     string                               `json:"ZoneId" xml:"ZoneId"`
 	InternetChargeType         string                               `json:"InternetChargeType" xml:"InternetChargeType"`
 	InternetMaxBandwidthIn     int                                  `json:"InternetMaxBandwidthIn" xml:"InternetMaxBandwidthIn"`
 	HostName                   string                               `json:"HostName" xml:"HostName"`
-	Cpu                        int                                  `json:"Cpu" xml:"Cpu"`
 	Status                     string                               `json:"Status" xml:"Status"`
+	Cpu                        int                                  `json:"Cpu" xml:"Cpu"`
 	SpotPriceLimit             float64                              `json:"SpotPriceLimit" xml:"SpotPriceLimit"`
 	OSName                     string                               `json:"OSName" xml:"OSName"`
 	OSNameEn                   string                               `json:"OSNameEn" xml:"OSNameEn"`
 	SerialNumber               string                               `json:"SerialNumber" xml:"SerialNumber"`
 	RegionId                   string                               `json:"RegionId" xml:"RegionId"`
-	InternetMaxBandwidthOut    int                                  `json:"InternetMaxBandwidthOut" xml:"InternetMaxBandwidthOut"`
 	IoOptimized                bool                                 `json:"IoOptimized" xml:"IoOptimized"`
+	InternetMaxBandwidthOut    int                                  `json:"InternetMaxBandwidthOut" xml:"InternetMaxBandwidthOut"`
 	ResourceGroupId            string                               `json:"ResourceGroupId" xml:"ResourceGroupId"`
 	InstanceTypeFamily         string                               `json:"InstanceTypeFamily" xml:"InstanceTypeFamily"`
 	InstanceId                 string                               `json:"InstanceId" xml:"InstanceId"`
 	DeploymentSetId            string                               `json:"DeploymentSetId" xml:"DeploymentSetId"`
 	GPUSpec                    string                               `json:"GPUSpec" xml:"GPUSpec"`
 	Description                string                               `json:"Description" xml:"Description"`
+	IzNo                       string                               `json:"IzNo" xml:"IzNo"`
 	Recyclable                 bool                                 `json:"Recyclable" xml:"Recyclable"`
 	SaleCycle                  string                               `json:"SaleCycle" xml:"SaleCycle"`
 	ExpiredTime                string                               `json:"ExpiredTime" xml:"ExpiredTime"`
 	OSType                     string                               `json:"OSType" xml:"OSType"`
 	Memory                     int                                  `json:"Memory" xml:"Memory"`
 	CreationTime               string                               `json:"CreationTime" xml:"CreationTime"`
+	NetworkType                bool                                 `json:"NetworkType" xml:"NetworkType"`
 	KeyPairName                string                               `json:"KeyPairName" xml:"KeyPairName"`
 	HpcClusterId               string                               `json:"HpcClusterId" xml:"HpcClusterId"`
 	LocalStorageCapacity       int64                                `json:"LocalStorageCapacity" xml:"LocalStorageCapacity"`
 	VlanId                     string                               `json:"VlanId" xml:"VlanId"`
 	StoppedMode                string                               `json:"StoppedMode" xml:"StoppedMode"`
 	SpotStrategy               string                               `json:"SpotStrategy" xml:"SpotStrategy"`
+	OsType                     bool                                 `json:"OsType" xml:"OsType"`
 	DeletionProtection         bool                                 `json:"DeletionProtection" xml:"DeletionProtection"`
 	SecurityGroupIds           SecurityGroupIdsInDescribeInstances  `json:"SecurityGroupIds" xml:"SecurityGroupIds"`
 	InnerIpAddress             InnerIpAddressInDescribeInstances    `json:"InnerIpAddress" xml:"InnerIpAddress"`

+ 21 - 0
services/ecs/struct_instances_in_describe_fleet_instances.go

@@ -0,0 +1,21 @@
+package ecs
+
+//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.
+
+// InstancesInDescribeFleetInstances is a nested struct in ecs response
+type InstancesInDescribeFleetInstances struct {
+	Instance []Instance `json:"Instance" xml:"Instance"`
+}

+ 25 - 0
services/ecs/struct_launch_template_config.go

@@ -0,0 +1,25 @@
+package ecs
+
+//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.
+
+// LaunchTemplateConfig is a nested struct in ecs response
+type LaunchTemplateConfig struct {
+	InstanceType     string  `json:"InstanceType" xml:"InstanceType"`
+	MaxPrice         float64 `json:"MaxPrice" xml:"MaxPrice"`
+	VSWitchId        string  `json:"VSWitchId" xml:"VSWitchId"`
+	WeightedCapacity float64 `json:"WeightedCapacity" xml:"WeightedCapacity"`
+	Priority         float64 `json:"Priority" xml:"Priority"`
+}

+ 21 - 0
services/ecs/struct_launch_template_configs.go

@@ -0,0 +1,21 @@
+package ecs
+
+//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.
+
+// LaunchTemplateConfigs is a nested struct in ecs response
+type LaunchTemplateConfigs struct {
+	LaunchTemplateConfig []LaunchTemplateConfig `json:"LaunchTemplateConfig" xml:"LaunchTemplateConfig"`
+}

+ 21 - 0
services/ecs/struct_on_demand_options.go

@@ -0,0 +1,21 @@
+package ecs
+
+//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.
+
+// OnDemandOptions is a nested struct in ecs response
+type OnDemandOptions struct {
+	AllocationStrategy string `json:"AllocationStrategy" xml:"AllocationStrategy"`
+}

+ 23 - 0
services/ecs/struct_spot_options.go

@@ -0,0 +1,23 @@
+package ecs
+
+//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.
+
+// SpotOptions is a nested struct in ecs response
+type SpotOptions struct {
+	AllocationStrategy           string `json:"AllocationStrategy" xml:"AllocationStrategy"`
+	InstanceInterruptionBehavior string `json:"InstanceInterruptionBehavior" xml:"InstanceInterruptionBehavior"`
+	InstancePoolsToUseCount      int    `json:"InstancePoolsToUseCount" xml:"InstancePoolsToUseCount"`
+}

+ 25 - 0
services/ecs/struct_target_capacity_specification.go

@@ -0,0 +1,25 @@
+package ecs
+
+//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.
+
+// TargetCapacitySpecification is a nested struct in ecs response
+type TargetCapacitySpecification struct {
+	TotalTargetCapacity       float64 `json:"TotalTargetCapacity" xml:"TotalTargetCapacity"`
+	OnDemandTargetCapacity    float64 `json:"OnDemandTargetCapacity" xml:"OnDemandTargetCapacity"`
+	SpotTargetCapacity        float64 `json:"SpotTargetCapacity" xml:"SpotTargetCapacity"`
+	DefaultTargetCapacityType string  `json:"DefaultTargetCapacityType" xml:"DefaultTargetCapacityType"`
+	FillGapWithOnDemand       bool    `json:"FillGapWithOnDemand" xml:"FillGapWithOnDemand"`
+}