1package ecs 2 3//Licensed under the Apache License, Version 2.0 (the "License"); 4//you may not use this file except in compliance with the License. 5//You may obtain a copy of the License at 6// 7//http://www.apache.org/licenses/LICENSE-2.0 8// 9//Unless required by applicable law or agreed to in writing, software 10//distributed under the License is distributed on an "AS IS" BASIS, 11//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12//See the License for the specific language governing permissions and 13//limitations under the License. 14// 15// Code generated by Alibaba Cloud SDK Code Generator. 16// Changes may cause incorrect behavior and will be lost if the code is regenerated. 17 18import ( 19 "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests" 20 "github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses" 21) 22 23// CreateInstance invokes the ecs.CreateInstance API synchronously 24func (client *Client) CreateInstance(request *CreateInstanceRequest) (response *CreateInstanceResponse, err error) { 25 response = CreateCreateInstanceResponse() 26 err = client.DoAction(request, response) 27 return 28} 29 30// CreateInstanceWithChan invokes the ecs.CreateInstance API asynchronously 31func (client *Client) CreateInstanceWithChan(request *CreateInstanceRequest) (<-chan *CreateInstanceResponse, <-chan error) { 32 responseChan := make(chan *CreateInstanceResponse, 1) 33 errChan := make(chan error, 1) 34 err := client.AddAsyncTask(func() { 35 defer close(responseChan) 36 defer close(errChan) 37 response, err := client.CreateInstance(request) 38 if err != nil { 39 errChan <- err 40 } else { 41 responseChan <- response 42 } 43 }) 44 if err != nil { 45 errChan <- err 46 close(responseChan) 47 close(errChan) 48 } 49 return responseChan, errChan 50} 51 52// CreateInstanceWithCallback invokes the ecs.CreateInstance API asynchronously 53func (client *Client) CreateInstanceWithCallback(request *CreateInstanceRequest, callback func(response *CreateInstanceResponse, err error)) <-chan int { 54 result := make(chan int, 1) 55 err := client.AddAsyncTask(func() { 56 var response *CreateInstanceResponse 57 var err error 58 defer close(result) 59 response, err = client.CreateInstance(request) 60 callback(response, err) 61 result <- 1 62 }) 63 if err != nil { 64 defer close(result) 65 callback(nil, err) 66 result <- 0 67 } 68 return result 69} 70 71// CreateInstanceRequest is the request struct for api CreateInstance 72type CreateInstanceRequest struct { 73 *requests.RpcRequest 74 ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"` 75 HpcClusterId string `position:"Query" name:"HpcClusterId"` 76 HttpPutResponseHopLimit requests.Integer `position:"Query" name:"HttpPutResponseHopLimit"` 77 SecurityEnhancementStrategy string `position:"Query" name:"SecurityEnhancementStrategy"` 78 KeyPairName string `position:"Query" name:"KeyPairName"` 79 SpotPriceLimit requests.Float `position:"Query" name:"SpotPriceLimit"` 80 DeletionProtection requests.Boolean `position:"Query" name:"DeletionProtection"` 81 ResourceGroupId string `position:"Query" name:"ResourceGroupId"` 82 PrivatePoolOptionsMatchCriteria string `position:"Query" name:"PrivatePoolOptions.MatchCriteria"` 83 HostName string `position:"Query" name:"HostName"` 84 Password string `position:"Query" name:"Password"` 85 DeploymentSetGroupNo requests.Integer `position:"Query" name:"DeploymentSetGroupNo"` 86 StorageSetPartitionNumber requests.Integer `position:"Query" name:"StorageSetPartitionNumber"` 87 Tag *[]CreateInstanceTag `position:"Query" name:"Tag" type:"Repeated"` 88 PrivatePoolOptionsId string `position:"Query" name:"PrivatePoolOptions.Id"` 89 AutoRenewPeriod requests.Integer `position:"Query" name:"AutoRenewPeriod"` 90 NodeControllerId string `position:"Query" name:"NodeControllerId"` 91 Period requests.Integer `position:"Query" name:"Period"` 92 DryRun requests.Boolean `position:"Query" name:"DryRun"` 93 OwnerId requests.Integer `position:"Query" name:"OwnerId"` 94 CapacityReservationPreference string `position:"Query" name:"CapacityReservationPreference"` 95 VSwitchId string `position:"Query" name:"VSwitchId"` 96 PrivateIpAddress string `position:"Query" name:"PrivateIpAddress"` 97 SpotStrategy string `position:"Query" name:"SpotStrategy"` 98 PeriodUnit string `position:"Query" name:"PeriodUnit"` 99 InstanceName string `position:"Query" name:"InstanceName"` 100 AutoRenew requests.Boolean `position:"Query" name:"AutoRenew"` 101 InternetChargeType string `position:"Query" name:"InternetChargeType"` 102 ZoneId string `position:"Query" name:"ZoneId"` 103 InternetMaxBandwidthIn requests.Integer `position:"Query" name:"InternetMaxBandwidthIn"` 104 UseAdditionalService requests.Boolean `position:"Query" name:"UseAdditionalService"` 105 Affinity string `position:"Query" name:"Affinity"` 106 ImageId string `position:"Query" name:"ImageId"` 107 ClientToken string `position:"Query" name:"ClientToken"` 108 VlanId string `position:"Query" name:"VlanId"` 109 SpotInterruptionBehavior string `position:"Query" name:"SpotInterruptionBehavior"` 110 IoOptimized string `position:"Query" name:"IoOptimized"` 111 SecurityGroupId string `position:"Query" name:"SecurityGroupId"` 112 InternetMaxBandwidthOut requests.Integer `position:"Query" name:"InternetMaxBandwidthOut"` 113 HibernationOptionsConfigured requests.Boolean `position:"Query" name:"HibernationOptions.Configured"` 114 Description string `position:"Query" name:"Description"` 115 SystemDiskCategory string `position:"Query" name:"SystemDisk.Category"` 116 CapacityReservationId string `position:"Query" name:"CapacityReservationId"` 117 SystemDiskPerformanceLevel string `position:"Query" name:"SystemDisk.PerformanceLevel"` 118 UserData string `position:"Query" name:"UserData"` 119 PasswordInherit requests.Boolean `position:"Query" name:"PasswordInherit"` 120 HttpEndpoint string `position:"Query" name:"HttpEndpoint"` 121 InstanceType string `position:"Query" name:"InstanceType"` 122 Arn *[]CreateInstanceArn `position:"Query" name:"Arn" type:"Repeated"` 123 InstanceChargeType string `position:"Query" name:"InstanceChargeType"` 124 DeploymentSetId string `position:"Query" name:"DeploymentSetId"` 125 InnerIpAddress string `position:"Query" name:"InnerIpAddress"` 126 ResourceOwnerAccount string `position:"Query" name:"ResourceOwnerAccount"` 127 OwnerAccount string `position:"Query" name:"OwnerAccount"` 128 Tenancy string `position:"Query" name:"Tenancy"` 129 SystemDiskDiskName string `position:"Query" name:"SystemDisk.DiskName"` 130 RamRoleName string `position:"Query" name:"RamRoleName"` 131 DedicatedHostId string `position:"Query" name:"DedicatedHostId"` 132 ClusterId string `position:"Query" name:"ClusterId"` 133 CreditSpecification string `position:"Query" name:"CreditSpecification"` 134 SpotDuration requests.Integer `position:"Query" name:"SpotDuration"` 135 DataDisk *[]CreateInstanceDataDisk `position:"Query" name:"DataDisk" type:"Repeated"` 136 StorageSetId string `position:"Query" name:"StorageSetId"` 137 SystemDiskSize requests.Integer `position:"Query" name:"SystemDisk.Size"` 138 ImageFamily string `position:"Query" name:"ImageFamily"` 139 HttpTokens string `position:"Query" name:"HttpTokens"` 140 SystemDiskDescription string `position:"Query" name:"SystemDisk.Description"` 141} 142 143// CreateInstanceTag is a repeated param struct in CreateInstanceRequest 144type CreateInstanceTag struct { 145 Value string `name:"value"` 146 Key string `name:"Key"` 147} 148 149// CreateInstanceArn is a repeated param struct in CreateInstanceRequest 150type CreateInstanceArn struct { 151 Rolearn string `name:"Rolearn"` 152 RoleType string `name:"RoleType"` 153 AssumeRoleFor string `name:"AssumeRoleFor"` 154} 155 156// CreateInstanceDataDisk is a repeated param struct in CreateInstanceRequest 157type CreateInstanceDataDisk struct { 158 DiskName string `name:"DiskName"` 159 SnapshotId string `name:"SnapshotId"` 160 Size string `name:"Size"` 161 Encrypted string `name:"Encrypted"` 162 PerformanceLevel string `name:"PerformanceLevel"` 163 EncryptAlgorithm string `name:"EncryptAlgorithm"` 164 Description string `name:"Description"` 165 Category string `name:"Category"` 166 KMSKeyId string `name:"KMSKeyId"` 167 Device string `name:"Device"` 168 DeleteWithInstance string `name:"DeleteWithInstance"` 169} 170 171// CreateInstanceResponse is the response struct for api CreateInstance 172type CreateInstanceResponse struct { 173 *responses.BaseResponse 174 RequestId string `json:"RequestId" xml:"RequestId"` 175 InstanceId string `json:"InstanceId" xml:"InstanceId"` 176 OrderId string `json:"OrderId" xml:"OrderId"` 177 TradePrice float64 `json:"TradePrice" xml:"TradePrice"` 178} 179 180// CreateCreateInstanceRequest creates a request to invoke CreateInstance API 181func CreateCreateInstanceRequest() (request *CreateInstanceRequest) { 182 request = &CreateInstanceRequest{ 183 RpcRequest: &requests.RpcRequest{}, 184 } 185 request.InitWithApiInfo("Ecs", "2014-05-26", "CreateInstance", "ecs", "openAPI") 186 request.Method = requests.POST 187 return 188} 189 190// CreateCreateInstanceResponse creates a response to parse from CreateInstance response 191func CreateCreateInstanceResponse() (response *CreateInstanceResponse) { 192 response = &CreateInstanceResponse{ 193 BaseResponse: &responses.BaseResponse{}, 194 } 195 return 196} 197