243 lines
6.8 KiB
Go
243 lines
6.8 KiB
Go
|
package ess
|
||
|
|
||
|
import "github.com/denverdino/aliyungo/common"
|
||
|
|
||
|
type LifecycleState string
|
||
|
|
||
|
const (
|
||
|
Active = LifecycleState("Active")
|
||
|
Inacitve = LifecycleState("Inacitve")
|
||
|
Deleting = LifecycleState("Deleting")
|
||
|
InService = LifecycleState("InService")
|
||
|
Pending = LifecycleState("Pending")
|
||
|
Removing = LifecycleState("Removing")
|
||
|
)
|
||
|
|
||
|
type CreateScalingGroupArgs struct {
|
||
|
RegionId common.Region
|
||
|
ScalingGroupName string
|
||
|
LoadBalancerId string
|
||
|
VpcId string
|
||
|
VSwitchId string
|
||
|
MaxSize int
|
||
|
MinSize int
|
||
|
DefaultCooldown int
|
||
|
RemovalPolicy common.FlattenArray
|
||
|
DBInstanceId common.FlattenArray
|
||
|
}
|
||
|
|
||
|
type CreateScalingGroupResponse struct {
|
||
|
common.Response
|
||
|
ScalingGroupId string
|
||
|
}
|
||
|
|
||
|
// CreateScalingGroup create scaling group
|
||
|
//
|
||
|
// You can read doc at https://help.aliyun.com/document_detail/25936.html?spm=5176.doc25940.6.617.vm6LXF
|
||
|
func (client *Client) CreateScalingGroup(args *CreateScalingGroupArgs) (resp *CreateScalingGroupResponse, err error) {
|
||
|
response := CreateScalingGroupResponse{}
|
||
|
err = client.InvokeByFlattenMethod("CreateScalingGroup", args, &response)
|
||
|
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &response, nil
|
||
|
}
|
||
|
|
||
|
type ModifyScalingGroupArgs struct {
|
||
|
ScalingGroupId string
|
||
|
ScalingGroupName string
|
||
|
ActiveScalingConfigurationId string
|
||
|
MinSize int
|
||
|
MaxSize int
|
||
|
DefaultCooldown int
|
||
|
RemovalPolicy common.FlattenArray
|
||
|
}
|
||
|
|
||
|
type ModifyScalingGroupResponse struct {
|
||
|
common.Response
|
||
|
}
|
||
|
|
||
|
// ModifyScalingGroup modify scaling group
|
||
|
//
|
||
|
// You can read doc at https://help.aliyun.com/document_detail/25937.html?spm=5176.doc25936.6.618.iwDcXT
|
||
|
func (client *Client) ModifyScalingGroup(args *ModifyScalingGroupArgs) (resp *ModifyScalingGroupResponse, err error) {
|
||
|
response := ModifyScalingGroupResponse{}
|
||
|
err = client.InvokeByFlattenMethod("ModifyScalingGroup", args, &response)
|
||
|
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &response, nil
|
||
|
}
|
||
|
|
||
|
type DescribeScalingGroupsArgs struct {
|
||
|
RegionId common.Region
|
||
|
ScalingGroupId common.FlattenArray
|
||
|
ScalingGroupName common.FlattenArray
|
||
|
common.Pagination
|
||
|
}
|
||
|
|
||
|
type DescribeInstancesResponse struct {
|
||
|
common.Response
|
||
|
common.PaginationResult
|
||
|
ScalingGroups struct {
|
||
|
ScalingGroup []ScalingGroupItemType
|
||
|
}
|
||
|
}
|
||
|
|
||
|
type ScalingGroupItemType struct {
|
||
|
ScalingGroupId string
|
||
|
ScalingGroupName string
|
||
|
ActiveScalingConfigurationId string
|
||
|
RegionId string
|
||
|
LoadBalancerId string
|
||
|
VSwitchId string
|
||
|
CreationTime string
|
||
|
LifecycleState LifecycleState
|
||
|
MinSize int
|
||
|
MaxSize int
|
||
|
DefaultCooldown int
|
||
|
TotalCapacity int
|
||
|
ActiveCapacity int
|
||
|
PendingCapacity int
|
||
|
RemovingCapacity int
|
||
|
RemovalPolicies RemovalPolicySetType
|
||
|
DBInstanceIds DBInstanceIdSetType
|
||
|
}
|
||
|
|
||
|
type RemovalPolicySetType struct {
|
||
|
RemovalPolicy []string
|
||
|
}
|
||
|
|
||
|
type DBInstanceIdSetType struct {
|
||
|
DBInstanceId []string
|
||
|
}
|
||
|
|
||
|
// DescribeScalingGroups describes scaling groups
|
||
|
//
|
||
|
// You can read doc at https://help.aliyun.com/document_detail/25938.html?spm=5176.doc25937.6.619.sUUOT7
|
||
|
func (client *Client) DescribeScalingGroups(args *DescribeScalingGroupsArgs) (groups []ScalingGroupItemType, pagination *common.PaginationResult, err error) {
|
||
|
args.Validate()
|
||
|
response := DescribeInstancesResponse{}
|
||
|
|
||
|
err = client.InvokeByFlattenMethod("DescribeScalingGroups", args, &response)
|
||
|
|
||
|
if err == nil {
|
||
|
return response.ScalingGroups.ScalingGroup, &response.PaginationResult, nil
|
||
|
}
|
||
|
|
||
|
return nil, nil, err
|
||
|
}
|
||
|
|
||
|
type DescribeScalingInstancesArgs struct {
|
||
|
RegionId common.Region
|
||
|
ScalingGroupId string
|
||
|
ScalingConfigurationId string
|
||
|
HealthStatus string
|
||
|
CreationType string
|
||
|
LifecycleState LifecycleState
|
||
|
InstanceId common.FlattenArray
|
||
|
common.Pagination
|
||
|
}
|
||
|
|
||
|
type DescribeScalingInstancesResponse struct {
|
||
|
common.Response
|
||
|
common.PaginationResult
|
||
|
ScalingInstances struct {
|
||
|
ScalingInstance []ScalingInstanceItemType
|
||
|
}
|
||
|
}
|
||
|
|
||
|
type ScalingInstanceItemType struct {
|
||
|
InstanceId string
|
||
|
ScalingGroupId string
|
||
|
ScalingConfigurationId string
|
||
|
HealthStatus string
|
||
|
CreationTime string
|
||
|
CreationType string
|
||
|
LifecycleState LifecycleState
|
||
|
}
|
||
|
|
||
|
// DescribeScalingInstances describes scaling instances
|
||
|
//
|
||
|
// You can read doc at https://help.aliyun.com/document_detail/25942.html?spm=5176.doc25941.6.623.2xA0Uj
|
||
|
func (client *Client) DescribeScalingInstances(args *DescribeScalingInstancesArgs) (instances []ScalingInstanceItemType, pagination *common.PaginationResult, err error) {
|
||
|
args.Validate()
|
||
|
response := DescribeScalingInstancesResponse{}
|
||
|
|
||
|
err = client.InvokeByFlattenMethod("DescribeScalingInstances", args, &response)
|
||
|
|
||
|
if err == nil {
|
||
|
return response.ScalingInstances.ScalingInstance, &response.PaginationResult, nil
|
||
|
}
|
||
|
|
||
|
return nil, nil, err
|
||
|
}
|
||
|
|
||
|
type EnableScalingGroupArgs struct {
|
||
|
ScalingGroupId string
|
||
|
ActiveScalingConfigurationId string
|
||
|
InstanceId common.FlattenArray
|
||
|
}
|
||
|
|
||
|
type EnableScalingGroupResponse struct {
|
||
|
common.Response
|
||
|
}
|
||
|
|
||
|
// EnableScalingGroup enable scaling group
|
||
|
//
|
||
|
// You can read doc at https://help.aliyun.com/document_detail/25939.html?spm=5176.doc25938.6.620.JiJhkx
|
||
|
func (client *Client) EnableScalingGroup(args *EnableScalingGroupArgs) (resp *EnableScalingGroupResponse, err error) {
|
||
|
response := EnableScalingGroupResponse{}
|
||
|
err = client.InvokeByFlattenMethod("EnableScalingGroup", args, &response)
|
||
|
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &response, nil
|
||
|
}
|
||
|
|
||
|
type DisableScalingGroupArgs struct {
|
||
|
ScalingGroupId string
|
||
|
}
|
||
|
|
||
|
type DisableScalingGroupResponse struct {
|
||
|
common.Response
|
||
|
}
|
||
|
|
||
|
// DisableScalingGroup disable scaling group
|
||
|
//
|
||
|
// You can read doc at https://help.aliyun.com/document_detail/25940.html?spm=5176.doc25939.6.621.M8GuuY
|
||
|
func (client *Client) DisableScalingGroup(args *DisableScalingGroupArgs) (resp *DisableScalingGroupResponse, err error) {
|
||
|
response := DisableScalingGroupResponse{}
|
||
|
err = client.InvokeByFlattenMethod("DisableScalingGroup", args, &response)
|
||
|
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &response, nil
|
||
|
}
|
||
|
|
||
|
type DeleteScalingGroupArgs struct {
|
||
|
ScalingGroupId string
|
||
|
ForceDelete bool
|
||
|
}
|
||
|
|
||
|
type DeleteScalingGroupResponse struct {
|
||
|
common.Response
|
||
|
}
|
||
|
|
||
|
// DeleteScalingGroup delete scaling group
|
||
|
//
|
||
|
// You can read doc at https://help.aliyun.com/document_detail/25941.html?spm=5176.doc25940.6.622.mRBCuw
|
||
|
func (client *Client) DeleteScalingGroup(args *DeleteScalingGroupArgs) (resp *DeleteScalingGroupResponse, err error) {
|
||
|
response := DeleteScalingGroupResponse{}
|
||
|
err = client.InvokeByFlattenMethod("DeleteScalingGroup", args, &response)
|
||
|
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &response, nil
|
||
|
}
|