services/ecs/create_image_pipeline.go (139 lines of code) (raw):
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"
)
// CreateImagePipeline invokes the ecs.CreateImagePipeline API synchronously
func (client *Client) CreateImagePipeline(request *CreateImagePipelineRequest) (response *CreateImagePipelineResponse, err error) {
response = CreateCreateImagePipelineResponse()
err = client.DoAction(request, response)
return
}
// CreateImagePipelineWithChan invokes the ecs.CreateImagePipeline API asynchronously
func (client *Client) CreateImagePipelineWithChan(request *CreateImagePipelineRequest) (<-chan *CreateImagePipelineResponse, <-chan error) {
responseChan := make(chan *CreateImagePipelineResponse, 1)
errChan := make(chan error, 1)
err := client.AddAsyncTask(func() {
defer close(responseChan)
defer close(errChan)
response, err := client.CreateImagePipeline(request)
if err != nil {
errChan <- err
} else {
responseChan <- response
}
})
if err != nil {
errChan <- err
close(responseChan)
close(errChan)
}
return responseChan, errChan
}
// CreateImagePipelineWithCallback invokes the ecs.CreateImagePipeline API asynchronously
func (client *Client) CreateImagePipelineWithCallback(request *CreateImagePipelineRequest, callback func(response *CreateImagePipelineResponse, err error)) <-chan int {
result := make(chan int, 1)
err := client.AddAsyncTask(func() {
var response *CreateImagePipelineResponse
var err error
defer close(result)
response, err = client.CreateImagePipeline(request)
callback(response, err)
result <- 1
})
if err != nil {
defer close(result)
callback(nil, err)
result <- 0
}
return result
}
// CreateImagePipelineRequest is the request struct for api CreateImagePipeline
type CreateImagePipelineRequest struct {
*requests.RpcRequest
BaseImageType string `position:"Query" name:"BaseImageType"`
ResourceOwnerId requests.Integer `position:"Query" name:"ResourceOwnerId"`
ResourceGroupId string `position:"Query" name:"ResourceGroupId"`
ImageOptions CreateImagePipelineImageOptions `position:"Query" name:"ImageOptions" type:"Struct"`
SystemDiskSize requests.Integer `position:"Query" name:"SystemDiskSize"`
Tag *[]CreateImagePipelineTag `position:"Query" name:"Tag" type:"Repeated"`
AdvancedOptions CreateImagePipelineAdvancedOptions `position:"Query" name:"AdvancedOptions" type:"Struct"`
RepairMode string `position:"Query" name:"RepairMode"`
OwnerId requests.Integer `position:"Query" name:"OwnerId"`
VSwitchId string `position:"Query" name:"VSwitchId"`
AddAccount *[]string `position:"Query" name:"AddAccount" type:"Repeated"`
DeleteInstanceOnFailure requests.Boolean `position:"Query" name:"DeleteInstanceOnFailure"`
Name string `position:"Query" name:"Name"`
ImportImageOptions CreateImagePipelineImportImageOptions `position:"Query" name:"ImportImageOptions" type:"Struct"`
TestContent string `position:"Query" name:"TestContent"`
ClientToken string `position:"Query" name:"ClientToken"`
ToRegionId *[]string `position:"Query" name:"ToRegionId" type:"Repeated"`
InternetMaxBandwidthOut requests.Integer `position:"Query" name:"InternetMaxBandwidthOut"`
Description string `position:"Query" name:"Description"`
ImageName string `position:"Query" name:"ImageName"`
InstanceType string `position:"Query" name:"InstanceType"`
NvmeSupport string `position:"Query" name:"NvmeSupport"`
ResourceOwnerAccount string `position:"Query" name:"ResourceOwnerAccount"`
OwnerAccount string `position:"Query" name:"OwnerAccount"`
BaseImage string `position:"Query" name:"BaseImage"`
ImageFamily string `position:"Query" name:"ImageFamily"`
BuildContent string `position:"Query" name:"BuildContent"`
}
// CreateImagePipelineImageOptions is a repeated param struct in CreateImagePipelineRequest
type CreateImagePipelineImageOptions struct {
ImageName string `name:"ImageName"`
ImageFamily string `name:"ImageFamily"`
Description string `name:"Description"`
ImageFeatures CreateImagePipelineImageOptionsImageFeatures `name:"ImageFeatures" type:"Struct"`
ImageTags *[]CreateImagePipelineImageOptionsImageTagsItem `name:"ImageTags" type:"Repeated"`
}
// CreateImagePipelineTag is a repeated param struct in CreateImagePipelineRequest
type CreateImagePipelineTag struct {
Key string `name:"Key"`
Value string `name:"Value"`
}
// CreateImagePipelineAdvancedOptions is a repeated param struct in CreateImagePipelineRequest
type CreateImagePipelineAdvancedOptions struct {
RetainCloudAssistant string `name:"RetainCloudAssistant"`
SkipBuildImage string `name:"SkipBuildImage"`
SkipCheckImage string `name:"SkipCheckImage"`
ImageNameSuffix string `name:"ImageNameSuffix"`
}
// CreateImagePipelineImportImageOptions is a repeated param struct in CreateImagePipelineRequest
type CreateImagePipelineImportImageOptions struct {
Architecture string `name:"Architecture"`
OSType string `name:"OSType"`
Platform string `name:"Platform"`
BootMode string `name:"BootMode"`
LicenseType string `name:"LicenseType"`
DiskDeviceMappings *[]CreateImagePipelineImportImageOptionsDiskDeviceMappingsItem `name:"DiskDeviceMappings" type:"Repeated"`
Features CreateImagePipelineImportImageOptionsFeatures `name:"Features" type:"Struct"`
RetainImportedImage string `name:"RetainImportedImage"`
}
// CreateImagePipelineImageOptionsImageFeatures is a repeated param struct in CreateImagePipelineRequest
type CreateImagePipelineImageOptionsImageFeatures struct {
NvmeSupport string `name:"NvmeSupport"`
}
// CreateImagePipelineImageOptionsImageTagsItem is a repeated param struct in CreateImagePipelineRequest
type CreateImagePipelineImageOptionsImageTagsItem struct {
Key string `name:"Key"`
Value string `name:"Value"`
}
// CreateImagePipelineImportImageOptionsDiskDeviceMappingsItem is a repeated param struct in CreateImagePipelineRequest
type CreateImagePipelineImportImageOptionsDiskDeviceMappingsItem struct {
OSSBucket string `name:"OSSBucket"`
OSSObject string `name:"OSSObject"`
Format string `name:"Format"`
DiskImageSize string `name:"DiskImageSize"`
}
// CreateImagePipelineImportImageOptionsFeatures is a repeated param struct in CreateImagePipelineRequest
type CreateImagePipelineImportImageOptionsFeatures struct {
NvmeSupport string `name:"NvmeSupport"`
}
// CreateImagePipelineResponse is the response struct for api CreateImagePipeline
type CreateImagePipelineResponse struct {
*responses.BaseResponse
ImagePipelineId string `json:"ImagePipelineId" xml:"ImagePipelineId"`
RequestId string `json:"RequestId" xml:"RequestId"`
}
// CreateCreateImagePipelineRequest creates a request to invoke CreateImagePipeline API
func CreateCreateImagePipelineRequest() (request *CreateImagePipelineRequest) {
request = &CreateImagePipelineRequest{
RpcRequest: &requests.RpcRequest{},
}
request.InitWithApiInfo("Ecs", "2014-05-26", "CreateImagePipeline", "ecs", "openAPI")
request.Method = requests.POST
return
}
// CreateCreateImagePipelineResponse creates a response to parse from CreateImagePipeline response
func CreateCreateImagePipelineResponse() (response *CreateImagePipelineResponse) {
response = &CreateImagePipelineResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}