packer-cn/vendor/github.com/denverdino/aliyungo/slb/loadbalancers.go

239 lines
6.3 KiB
Go

package slb
import (
"github.com/denverdino/aliyungo/common"
"github.com/denverdino/aliyungo/util"
)
type AddressType string
const (
InternetAddressType = AddressType("internet")
IntranetAddressType = AddressType("intranet")
)
type InternetChargeType string
const (
PayByBandwidth = InternetChargeType("paybybandwidth")
PayByTraffic = InternetChargeType("paybytraffic")
)
type CreateLoadBalancerArgs struct {
RegionId common.Region
LoadBalancerName string
AddressType AddressType
VSwitchId string
InternetChargeType InternetChargeType
Bandwidth int
ClientToken string
}
type CreateLoadBalancerResponse struct {
common.Response
LoadBalancerId string
Address string
NetworkType string
VpcId string
VSwitchId string
LoadBalancerName string
}
// CreateLoadBalancer create loadbalancer
//
// You can read doc at http://docs.aliyun.com/#/pub/slb/api-reference/api-related-loadbalancer&CreateLoadBalancer
func (client *Client) CreateLoadBalancer(args *CreateLoadBalancerArgs) (response *CreateLoadBalancerResponse, err error) {
response = &CreateLoadBalancerResponse{}
err = client.Invoke("CreateLoadBalancer", args, response)
if err != nil {
return nil, err
}
return response, err
}
type DeleteLoadBalancerArgs struct {
LoadBalancerId string
}
type DeleteLoadBalancerResponse struct {
common.Response
}
// DeleteLoadBalancer delete loadbalancer
//
// You can read doc at http://docs.aliyun.com/#/pub/slb/api-reference/api-related-loadbalancer&DeleteLoadBalancer
func (client *Client) DeleteLoadBalancer(loadBalancerId string) (err error) {
args := &DeleteLoadBalancerArgs{
LoadBalancerId: loadBalancerId,
}
response := &DeleteLoadBalancerResponse{}
err = client.Invoke("DeleteLoadBalancer", args, response)
return err
}
type ModifyLoadBalancerInternetSpecArgs struct {
LoadBalancerId string
InternetChargeType InternetChargeType
Bandwidth int
}
type ModifyLoadBalancerInternetSpecResponse struct {
common.Response
}
// ModifyLoadBalancerInternetSpec Modify loadbalancer internet spec
//
// You can read doc at http://docs.aliyun.com/#/pub/slb/api-reference/api-related-loadbalancer&ModifyLoadBalancerInternetSpec
func (client *Client) ModifyLoadBalancerInternetSpec(args *ModifyLoadBalancerInternetSpecArgs) (err error) {
response := &ModifyLoadBalancerInternetSpecResponse{}
err = client.Invoke("ModifyLoadBalancerInternetSpec", args, response)
return err
}
type Status string
const InactiveStatus = Status("inactive")
const ActiveStatus = Status("active")
const LockedStatus = Status("locked")
type SetLoadBalancerStatusArgs struct {
LoadBalancerId string
LoadBalancerStatus Status
}
type SetLoadBalancerStatusResponse struct {
common.Response
}
// SetLoadBalancerStatus Set loadbalancer status
//
// You can read doc at http://docs.aliyun.com/#/pub/slb/api-reference/api-related-loadbalancer&SetLoadBalancerStatus
func (client *Client) SetLoadBalancerStatus(loadBalancerId string, status Status) (err error) {
args := &SetLoadBalancerStatusArgs{
LoadBalancerId: loadBalancerId,
LoadBalancerStatus: status,
}
response := &SetLoadBalancerStatusResponse{}
err = client.Invoke("SetLoadBalancerStatus", args, response)
return err
}
type SetLoadBalancerNameArgs struct {
LoadBalancerId string
LoadBalancerName string
}
type SetLoadBalancerNameResponse struct {
common.Response
}
// SetLoadBalancerName Set loadbalancer name
//
// You can read doc at http://docs.aliyun.com/#/pub/slb/api-reference/api-related-loadbalancer&SetLoadBalancerName
func (client *Client) SetLoadBalancerName(loadBalancerId string, name string) (err error) {
args := &SetLoadBalancerNameArgs{
LoadBalancerId: loadBalancerId,
LoadBalancerName: name,
}
response := &SetLoadBalancerNameResponse{}
err = client.Invoke("SetLoadBalancerName", args, response)
return err
}
type DescribeLoadBalancersArgs struct {
RegionId common.Region
LoadBalancerId string
LoadBalancerName string
AddressType AddressType
NetworkType string
VpcId string
VSwitchId string
Address string
InternetChargeType InternetChargeType
ServerId string
}
type ListenerPortAndProtocolType struct {
ListenerPort int
ListenerProtocol string
}
type BackendServerType struct {
ServerId string
Weight int
}
type LoadBalancerType struct {
LoadBalancerId string
LoadBalancerName string
LoadBalancerStatus string
Address string
RegionId common.Region
RegionIdAlias string
AddressType AddressType
VSwitchId string
VpcId string
NetworkType string
Bandwidth int
InternetChargeType InternetChargeType
CreateTime string //Why not ISO 6801
CreateTimeStamp util.ISO6801Time
ListenerPorts struct {
ListenerPort []int
}
ListenerPortsAndProtocol struct {
ListenerPortAndProtocol []ListenerPortAndProtocolType
}
BackendServers struct {
BackendServer []BackendServerType
}
}
type DescribeLoadBalancersResponse struct {
common.Response
LoadBalancers struct {
LoadBalancer []LoadBalancerType
}
}
// DescribeLoadBalancers Describe loadbalancers
//
// You can read doc at http://docs.aliyun.com/#/pub/slb/api-reference/api-related-loadbalancer&DescribeLoadBalancers
func (client *Client) DescribeLoadBalancers(args *DescribeLoadBalancersArgs) (loadBalancers []LoadBalancerType, err error) {
response := &DescribeLoadBalancersResponse{}
err = client.Invoke("DescribeLoadBalancers", args, response)
if err != nil {
return nil, err
}
return response.LoadBalancers.LoadBalancer, err
}
type DescribeLoadBalancerAttributeArgs struct {
LoadBalancerId string
}
type DescribeLoadBalancerAttributeResponse struct {
common.Response
LoadBalancerType
}
// DescribeLoadBalancerAttribute Describe loadbalancer attribute
//
// You can read doc at http://docs.aliyun.com/#/pub/slb/api-reference/api-related-loadbalancer&DescribeLoadBalancerAttribute
func (client *Client) DescribeLoadBalancerAttribute(loadBalancerId string) (loadBalancer *LoadBalancerType, err error) {
args := &DescribeLoadBalancersArgs{
LoadBalancerId: loadBalancerId,
}
response := &DescribeLoadBalancerAttributeResponse{}
err = client.Invoke("DescribeLoadBalancerAttribute", args, response)
if err != nil {
return nil, err
}
return &response.LoadBalancerType, err
}