1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
package ess
import (
"encoding/base64"
"github.com/denverdino/aliyungo/common"
"github.com/denverdino/aliyungo/ecs"
)
type CreateScalingConfigurationArgs struct {
ScalingGroupId string
ImageId string
InstanceType string
IoOptimized ecs.IoOptimized
SecurityGroupId string
ScalingConfigurationName string
InternetChargeType common.InternetChargeType
InternetMaxBandwidthIn int
InternetMaxBandwidthOut *int
SystemDisk_Category common.UnderlineString
SystemDisk_Size common.UnderlineString
DataDisk []DataDiskType
UserData string
KeyPairName string
RamRoleName string
Tags string
InstanceName string
}
type DataDiskType struct {
Category string
SnapshotId string
Device string
Size int
}
type CreateScalingConfigurationResponse struct {
ScalingConfigurationId string
common.Response
}
// CreateScalingConfiguration create scaling configuration
//
// You can read doc at https://help.aliyun.com/document_detail/25944.html?spm=5176.doc25942.6.625.KcE5ir
func (client *Client) CreateScalingConfiguration(args *CreateScalingConfigurationArgs) (resp *CreateScalingConfigurationResponse, err error) {
if args.UserData != "" {
// Encode to base64 string
args.UserData = base64.StdEncoding.EncodeToString([]byte(args.UserData))
}
response := CreateScalingConfigurationResponse{}
err = client.InvokeByFlattenMethod("CreateScalingConfiguration", args, &response)
if err != nil {
return nil, err
}
return &response, nil
}
type DescribeScalingConfigurationsArgs struct {
RegionId common.Region
ScalingGroupId string
ScalingConfigurationId common.FlattenArray
ScalingConfigurationName common.FlattenArray
common.Pagination
}
type DescribeScalingConfigurationsResponse struct {
common.Response
common.PaginationResult
ScalingConfigurations struct {
ScalingConfiguration []ScalingConfigurationItemType
}
}
type TagItemType struct {
Key string
Value string
}
type ScalingConfigurationItemType struct {
ScalingConfigurationId string
ScalingConfigurationName string
ScalingGroupId string
ImageId string
InstanceType string
InstanceName string
IoOptimized string
SecurityGroupId string
InternetChargeType string
LifecycleState LifecycleState
CreationTime string
InternetMaxBandwidthIn int
InternetMaxBandwidthOut int
SystemDiskCategory string
DataDisks struct {
DataDisk []DataDiskItemType
}
KeyPairName string
RamRoleName string
UserData string
Tags struct {
Tag []TagItemType
}
}
type DataDiskItemType struct {
Size int
Category string
SnapshotId string
Device string
}
// DescribeScalingConfigurations describes scaling configuration
//
// You can read doc at https://help.aliyun.com/document_detail/25945.html?spm=5176.doc25944.6.626.knG0zz
func (client *Client) DescribeScalingConfigurations(args *DescribeScalingConfigurationsArgs) (configs []ScalingConfigurationItemType, pagination *common.PaginationResult, err error) {
args.Validate()
response := DescribeScalingConfigurationsResponse{}
err = client.InvokeByFlattenMethod("DescribeScalingConfigurations", args, &response)
if err == nil {
return response.ScalingConfigurations.ScalingConfiguration, &response.PaginationResult, nil
}
return nil, nil, err
}
type DeleteScalingConfigurationArgs struct {
ScalingConfigurationId string
ScalingGroupId string
ImageId string
}
type DeleteScalingConfigurationResponse struct {
common.Response
}
// DeleteScalingConfiguration delete scaling configuration
//
// You can read doc at https://help.aliyun.com/document_detail/25946.html?spm=5176.doc25944.6.627.MjkuuL
func (client *Client) DeleteScalingConfiguration(args *DeleteScalingConfigurationArgs) (resp *DeleteScalingConfigurationResponse, err error) {
response := DeleteScalingConfigurationResponse{}
err = client.InvokeByFlattenMethod("DeleteScalingConfiguration", args, &response)
if err != nil {
return nil, err
}
return &response, nil
}
type DeactivateScalingConfigurationArgs struct {
ScalingConfigurationId string
}
type DeactivateScalingConfigurationResponse struct {
common.Response
}
// DeactivateScalingConfiguration deactivate scaling configuration
//
func (client *Client) DeactivateScalingConfiguration(args *DeactivateScalingConfigurationArgs) (resp *DeactivateScalingConfigurationResponse, err error) {
response := DeactivateScalingConfigurationResponse{}
err = client.InvokeByFlattenMethod("DeactivateScalingConfiguration", args, &response)
if err != nil {
return nil, err
}
return &response, nil
}
|