services/appstream-center/create_app_instance_group.go (150 lines of code) (raw):
package appstream_center
//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"
)
// CreateAppInstanceGroup invokes the appstream_center.CreateAppInstanceGroup API synchronously
func (client *Client) CreateAppInstanceGroup(request *CreateAppInstanceGroupRequest) (response *CreateAppInstanceGroupResponse, err error) {
response = CreateCreateAppInstanceGroupResponse()
err = client.DoAction(request, response)
return
}
// CreateAppInstanceGroupWithChan invokes the appstream_center.CreateAppInstanceGroup API asynchronously
func (client *Client) CreateAppInstanceGroupWithChan(request *CreateAppInstanceGroupRequest) (<-chan *CreateAppInstanceGroupResponse, <-chan error) {
responseChan := make(chan *CreateAppInstanceGroupResponse, 1)
errChan := make(chan error, 1)
err := client.AddAsyncTask(func() {
defer close(responseChan)
defer close(errChan)
response, err := client.CreateAppInstanceGroup(request)
if err != nil {
errChan <- err
} else {
responseChan <- response
}
})
if err != nil {
errChan <- err
close(responseChan)
close(errChan)
}
return responseChan, errChan
}
// CreateAppInstanceGroupWithCallback invokes the appstream_center.CreateAppInstanceGroup API asynchronously
func (client *Client) CreateAppInstanceGroupWithCallback(request *CreateAppInstanceGroupRequest, callback func(response *CreateAppInstanceGroupResponse, err error)) <-chan int {
result := make(chan int, 1)
err := client.AddAsyncTask(func() {
var response *CreateAppInstanceGroupResponse
var err error
defer close(result)
response, err = client.CreateAppInstanceGroup(request)
callback(response, err)
result <- 1
})
if err != nil {
defer close(result)
callback(nil, err)
result <- 0
}
return result
}
// CreateAppInstanceGroupRequest is the request struct for api CreateAppInstanceGroup
type CreateAppInstanceGroupRequest struct {
*requests.RpcRequest
RuntimePolicy CreateAppInstanceGroupRuntimePolicy `position:"Body" name:"RuntimePolicy" type:"Struct"`
BizRegionId string `position:"Body" name:"BizRegionId"`
ScalingStep requests.Integer `position:"Body" name:"ScalingStep"`
ScalingDownAfterIdleMinutes requests.Integer `position:"Body" name:"ScalingDownAfterIdleMinutes"`
MinAmount requests.Integer `position:"Body" name:"MinAmount"`
ProductType string `position:"Body" name:"ProductType"`
Network CreateAppInstanceGroupNetwork `position:"Body" name:"Network" type:"Struct"`
ReserveMinAmount requests.Integer `position:"Body" name:"ReserveMinAmount"`
SessionTimeout requests.Integer `position:"Body" name:"SessionTimeout"`
ChargeResourceMode string `position:"Body" name:"ChargeResourceMode"`
AppCenterImageId string `position:"Body" name:"AppCenterImageId"`
ScalingUsageThreshold string `position:"Body" name:"ScalingUsageThreshold"`
UserInfo CreateAppInstanceGroupUserInfo `position:"Body" name:"UserInfo" type:"Struct"`
ReserveAmountRatio string `position:"Body" name:"ReserveAmountRatio"`
PreOpenAppId string `position:"Body" name:"PreOpenAppId"`
Amount requests.Integer `position:"Body" name:"Amount"`
Period requests.Integer `position:"Body" name:"Period"`
AutoPay requests.Boolean `position:"Body" name:"AutoPay"`
NodePool CreateAppInstanceGroupNodePool `position:"Body" name:"NodePool" type:"Struct"`
AppInstanceType string `position:"Body" name:"AppInstanceType"`
MaxAmount requests.Integer `position:"Body" name:"MaxAmount"`
SecurityPolicy CreateAppInstanceGroupSecurityPolicy `position:"Body" name:"SecurityPolicy" type:"Struct"`
PromotionId string `position:"Body" name:"PromotionId"`
Users *[]string `position:"Body" name:"Users" type:"Repeated"`
VideoPolicy CreateAppInstanceGroupVideoPolicy `position:"Body" name:"VideoPolicy" type:"Struct"`
AppInstanceGroupName string `position:"Body" name:"AppInstanceGroupName"`
PeriodUnit string `position:"Body" name:"PeriodUnit"`
ReserveMaxAmount requests.Integer `position:"Body" name:"ReserveMaxAmount"`
AutoRenew requests.Boolean `position:"Body" name:"AutoRenew"`
ChargeType string `position:"Body" name:"ChargeType"`
StrategyType string `position:"Body" name:"StrategyType"`
}
// CreateAppInstanceGroupRuntimePolicy is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupRuntimePolicy struct {
SessionType string `name:"SessionType"`
DebugMode string `name:"DebugMode"`
}
// CreateAppInstanceGroupNetwork is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupNetwork struct {
Routes *[]CreateAppInstanceGroupNetworkRoutesItem `name:"Routes" type:"Repeated"`
StrategyType string `name:"StrategyType"`
}
// CreateAppInstanceGroupUserInfo is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupUserInfo struct {
Type string `name:"Type"`
}
// CreateAppInstanceGroupNodePool is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupNodePool struct {
RecurrenceSchedules *[]CreateAppInstanceGroupNodePoolRecurrenceSchedulesItem `name:"RecurrenceSchedules" type:"Repeated"`
NodeAmount string `name:"NodeAmount"`
ScalingStep string `name:"ScalingStep"`
StrategyDisableDate string `name:"StrategyDisableDate"`
NodeInstanceType string `name:"NodeInstanceType"`
ScalingDownAfterIdleMinutes string `name:"ScalingDownAfterIdleMinutes"`
StrategyType string `name:"StrategyType"`
MaxScalingAmount string `name:"MaxScalingAmount"`
WarmUp string `name:"WarmUp"`
ScalingUsageThreshold string `name:"ScalingUsageThreshold"`
NodeCapacity string `name:"NodeCapacity"`
StrategyEnableDate string `name:"StrategyEnableDate"`
}
// CreateAppInstanceGroupSecurityPolicy is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupSecurityPolicy struct {
ResetAfterUnbind string `name:"ResetAfterUnbind"`
}
// CreateAppInstanceGroupVideoPolicy is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupVideoPolicy struct {
Webrtc string `name:"Webrtc"`
TerminalResolutionAdaptive string `name:"TerminalResolutionAdaptive"`
FrameRate string `name:"FrameRate"`
SessionResolutionWidth string `name:"SessionResolutionWidth"`
StreamingMode string `name:"StreamingMode"`
SessionResolutionHeight string `name:"SessionResolutionHeight"`
}
// CreateAppInstanceGroupNetworkRoutesItem is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupNetworkRoutesItem struct {
Mode string `name:"Mode"`
Destination string `name:"Destination"`
}
// CreateAppInstanceGroupNodePoolRecurrenceSchedulesItem is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupNodePoolRecurrenceSchedulesItem struct {
RecurrenceValues *[]string `name:"RecurrenceValues" type:"Repeated"`
RecurrenceType string `name:"RecurrenceType"`
TimerPeriods *[]CreateAppInstanceGroupNodePoolRecurrenceSchedulesItemTimerPeriodsItem `name:"TimerPeriods" type:"Repeated"`
}
// CreateAppInstanceGroupNodePoolRecurrenceSchedulesItemTimerPeriodsItem is a repeated param struct in CreateAppInstanceGroupRequest
type CreateAppInstanceGroupNodePoolRecurrenceSchedulesItemTimerPeriodsItem struct {
Amount string `name:"Amount"`
EndTime string `name:"EndTime"`
StartTime string `name:"StartTime"`
}
// CreateAppInstanceGroupResponse is the response struct for api CreateAppInstanceGroup
type CreateAppInstanceGroupResponse struct {
*responses.BaseResponse
RequestId string `json:"RequestId" xml:"RequestId"`
AppInstanceGroupModel AppInstanceGroupModel `json:"AppInstanceGroupModel" xml:"AppInstanceGroupModel"`
}
// CreateCreateAppInstanceGroupRequest creates a request to invoke CreateAppInstanceGroup API
func CreateCreateAppInstanceGroupRequest() (request *CreateAppInstanceGroupRequest) {
request = &CreateAppInstanceGroupRequest{
RpcRequest: &requests.RpcRequest{},
}
request.InitWithApiInfo("appstream-center", "2021-09-01", "CreateAppInstanceGroup", "", "")
request.Method = requests.POST
return
}
// CreateCreateAppInstanceGroupResponse creates a response to parse from CreateAppInstanceGroup response
func CreateCreateAppInstanceGroupResponse() (response *CreateAppInstanceGroupResponse) {
response = &CreateAppInstanceGroupResponse{
BaseResponse: &responses.BaseResponse{},
}
return
}