services/emr/resize_cluster_v2.go (110 lines of code) (raw):

package emr //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" ) // ResizeClusterV2 invokes the emr.ResizeClusterV2 API synchronously func (client *Client) ResizeClusterV2(request *ResizeClusterV2Request) (response *ResizeClusterV2Response, err error) { response = CreateResizeClusterV2Response() err = client.DoAction(request, response) return } // ResizeClusterV2WithChan invokes the emr.ResizeClusterV2 API asynchronously func (client *Client) ResizeClusterV2WithChan(request *ResizeClusterV2Request) (<-chan *ResizeClusterV2Response, <-chan error) { responseChan := make(chan *ResizeClusterV2Response, 1) errChan := make(chan error, 1) err := client.AddAsyncTask(func() { defer close(responseChan) defer close(errChan) response, err := client.ResizeClusterV2(request) if err != nil { errChan <- err } else { responseChan <- response } }) if err != nil { errChan <- err close(responseChan) close(errChan) } return responseChan, errChan } // ResizeClusterV2WithCallback invokes the emr.ResizeClusterV2 API asynchronously func (client *Client) ResizeClusterV2WithCallback(request *ResizeClusterV2Request, callback func(response *ResizeClusterV2Response, err error)) <-chan int { result := make(chan int, 1) err := client.AddAsyncTask(func() { var response *ResizeClusterV2Response var err error defer close(result) response, err = client.ResizeClusterV2(request) callback(response, err) result <- 1 }) if err != nil { defer close(result) callback(nil, err) result <- 0 } return result } // ResizeClusterV2Request is the request struct for api ResizeClusterV2 type ResizeClusterV2Request struct { *requests.RpcRequest IsOpenPublicIp requests.Boolean `position:"Query" name:"IsOpenPublicIp"` AutoPayOrder requests.Boolean `position:"Query" name:"AutoPayOrder"` ClusterId string `position:"Query" name:"ClusterId"` VswitchId string `position:"Query" name:"VswitchId"` HostComponentInfo *[]ResizeClusterV2HostComponentInfo `position:"Query" name:"HostComponentInfo" type:"Repeated"` ClickhouseConf string `position:"Query" name:"ClickhouseConf"` HostGroup *[]ResizeClusterV2HostGroup `position:"Query" name:"HostGroup" type:"Repeated"` PromotionInfo *[]ResizeClusterV2PromotionInfo `position:"Query" name:"PromotionInfo" type:"Repeated"` } // ResizeClusterV2HostComponentInfo is a repeated param struct in ResizeClusterV2Request type ResizeClusterV2HostComponentInfo struct { HostName string `name:"HostName"` ComponentNameList *[]string `name:"ComponentNameList" type:"Repeated"` ServiceName string `name:"ServiceName"` } // ResizeClusterV2HostGroup is a repeated param struct in ResizeClusterV2Request type ResizeClusterV2HostGroup struct { Period string `name:"Period"` SysDiskCapacity string `name:"SysDiskCapacity"` HostKeyPairName string `name:"HostKeyPairName"` PrivatePoolOptionsId string `name:"PrivatePoolOptionsId"` DiskCapacity string `name:"DiskCapacity"` SysDiskType string `name:"SysDiskType"` ClusterId string `name:"ClusterId"` DiskType string `name:"DiskType"` HostGroupName string `name:"HostGroupName"` VswitchId string `name:"VswitchId"` DiskCount string `name:"DiskCount"` AutoRenew string `name:"AutoRenew"` HostGroupId string `name:"HostGroupId"` NodeCount string `name:"NodeCount"` InstanceType string `name:"InstanceType"` Comment string `name:"Comment"` ChargeType string `name:"ChargeType"` CreateType string `name:"CreateType"` HostPassword string `name:"HostPassword"` HostGroupType string `name:"HostGroupType"` PrivatePoolOptionsMatchCriteria string `name:"PrivatePoolOptionsMatchCriteria"` } // ResizeClusterV2PromotionInfo is a repeated param struct in ResizeClusterV2Request type ResizeClusterV2PromotionInfo struct { PromotionOptionCode string `name:"PromotionOptionCode"` ProductCode string `name:"ProductCode"` PromotionOptionNo string `name:"PromotionOptionNo"` } // ResizeClusterV2Response is the response struct for api ResizeClusterV2 type ResizeClusterV2Response struct { *responses.BaseResponse RequestId string `json:"RequestId" xml:"RequestId"` ClusterId string `json:"ClusterId" xml:"ClusterId"` } // CreateResizeClusterV2Request creates a request to invoke ResizeClusterV2 API func CreateResizeClusterV2Request() (request *ResizeClusterV2Request) { request = &ResizeClusterV2Request{ RpcRequest: &requests.RpcRequest{}, } request.InitWithApiInfo("Emr", "2016-04-08", "ResizeClusterV2", "emr", "openAPI") request.Method = requests.POST return } // CreateResizeClusterV2Response creates a response to parse from ResizeClusterV2 response func CreateResizeClusterV2Response() (response *ResizeClusterV2Response) { response = &ResizeClusterV2Response{ BaseResponse: &responses.BaseResponse{}, } return }