cluster-autoscaler/cloudprovider/alicloud/alibaba-cloud-sdk-go/services/ess/remove_instances.go (93 lines of code) (raw):

/* Copyright 2018 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ package ess import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/alicloud/alibaba-cloud-sdk-go/sdk/requests" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/alicloud/alibaba-cloud-sdk-go/sdk/responses" ) // RemoveInstances invokes the ess.RemoveInstances API synchronously // api document: https://help.aliyun.com/api/ess/removeinstances.html func (client *Client) RemoveInstances(request *RemoveInstancesRequest) (response *RemoveInstancesResponse, err error) { response = CreateRemoveInstancesResponse() err = client.DoAction(request, response) return } // RemoveInstancesWithChan invokes the ess.RemoveInstances API asynchronously // api document: https://help.aliyun.com/api/ess/removeinstances.html // asynchronous document: https://help.aliyun.com/document_detail/66220.html func (client *Client) RemoveInstancesWithChan(request *RemoveInstancesRequest) (<-chan *RemoveInstancesResponse, <-chan error) { responseChan := make(chan *RemoveInstancesResponse, 1) errChan := make(chan error, 1) err := client.AddAsyncTask(func() { defer close(responseChan) defer close(errChan) response, err := client.RemoveInstances(request) if err != nil { errChan <- err } else { responseChan <- response } }) if err != nil { errChan <- err close(responseChan) close(errChan) } return responseChan, errChan } // RemoveInstancesWithCallback invokes the ess.RemoveInstances API asynchronously // api document: https://help.aliyun.com/api/ess/removeinstances.html // asynchronous document: https://help.aliyun.com/document_detail/66220.html func (client *Client) RemoveInstancesWithCallback(request *RemoveInstancesRequest, callback func(response *RemoveInstancesResponse, err error)) <-chan int { result := make(chan int, 1) err := client.AddAsyncTask(func() { var response *RemoveInstancesResponse var err error defer close(result) response, err = client.RemoveInstances(request) callback(response, err) result <- 1 }) if err != nil { defer close(result) callback(nil, err) result <- 0 } return result } // RemoveInstancesRequest is the request struct for api RemoveInstances type RemoveInstancesRequest struct { *requests.RpcRequest InstanceId10 string `position:"Query" name:"InstanceId.10"` ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"` InstanceId12 string `position:"Query" name:"InstanceId.12"` InstanceId11 string `position:"Query" name:"InstanceId.11"` ScalingGroupId string `position:"Query" name:"ScalingGroupId"` InstanceId20 string `position:"Query" name:"InstanceId.20"` InstanceId1 string `position:"Query" name:"InstanceId.1"` InstanceId3 string `position:"Query" name:"InstanceId.3"` ResourceOwnerAccount string `position:"Query" name:"ResourceOwnerAccount"` InstanceId2 string `position:"Query" name:"InstanceId.2"` InstanceId5 string `position:"Query" name:"InstanceId.5"` InstanceId4 string `position:"Query" name:"InstanceId.4"` OwnerAccount string `position:"Query" name:"OwnerAccount"` InstanceId7 string `position:"Query" name:"InstanceId.7"` InstanceId6 string `position:"Query" name:"InstanceId.6"` InstanceId9 string `position:"Query" name:"InstanceId.9"` InstanceId8 string `position:"Query" name:"InstanceId.8"` OwnerId requests.Integer `position:"Query" name:"OwnerId"` InstanceId18 string `position:"Query" name:"InstanceId.18"` InstanceId17 string `position:"Query" name:"InstanceId.17"` InstanceId19 string `position:"Query" name:"InstanceId.19"` InstanceId14 string `position:"Query" name:"InstanceId.14"` InstanceId13 string `position:"Query" name:"InstanceId.13"` InstanceId16 string `position:"Query" name:"InstanceId.16"` InstanceId15 string `position:"Query" name:"InstanceId.15"` } // RemoveInstancesResponse is the response struct for api RemoveInstances type RemoveInstancesResponse struct { *responses.BaseResponse ScalingActivityId string `json:"ScalingActivityId" xml:"ScalingActivityId"` RequestId string `json:"RequestId" xml:"RequestId"` } // CreateRemoveInstancesRequest creates a request to invoke RemoveInstances API func CreateRemoveInstancesRequest() (request *RemoveInstancesRequest) { request = &RemoveInstancesRequest{ RpcRequest: &requests.RpcRequest{}, } request.InitWithApiInfo("Ess", "2014-08-28", "RemoveInstances", "ess", "openAPI") return } // CreateRemoveInstancesResponse creates a response to parse from RemoveInstances response func CreateRemoveInstancesResponse() (response *RemoveInstancesResponse) { response = &RemoveInstancesResponse{ BaseResponse: &responses.BaseResponse{}, } return }