211 lines
4.9 KiB
Go
211 lines
4.9 KiB
Go
|
package ecs
|
||
|
|
||
|
import (
|
||
|
"github.com/denverdino/aliyungo/common"
|
||
|
)
|
||
|
|
||
|
type BandwidthPackageType struct {
|
||
|
IpCount int
|
||
|
Bandwidth int
|
||
|
Zone string
|
||
|
}
|
||
|
|
||
|
type CreateNatGatewayArgs struct {
|
||
|
RegionId common.Region
|
||
|
VpcId string
|
||
|
Spec string
|
||
|
BandwidthPackage []BandwidthPackageType
|
||
|
Name string
|
||
|
Description string
|
||
|
ClientToken string
|
||
|
}
|
||
|
|
||
|
type ForwardTableIdType struct {
|
||
|
ForwardTableId []string
|
||
|
}
|
||
|
|
||
|
type SnatTableIdType struct {
|
||
|
SnatTableId []string
|
||
|
}
|
||
|
|
||
|
type BandwidthPackageIdType struct {
|
||
|
BandwidthPackageId []string
|
||
|
}
|
||
|
|
||
|
type CreateNatGatewayResponse struct {
|
||
|
common.Response
|
||
|
NatGatewayId string
|
||
|
ForwardTableIds ForwardTableIdType
|
||
|
BandwidthPackageIds BandwidthPackageIdType
|
||
|
}
|
||
|
|
||
|
// CreateNatGateway creates Virtual Private Cloud
|
||
|
//
|
||
|
// You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/vpc&createvpc
|
||
|
func (client *Client) CreateNatGateway(args *CreateNatGatewayArgs) (resp *CreateNatGatewayResponse, err error) {
|
||
|
response := CreateNatGatewayResponse{}
|
||
|
err = client.Invoke("CreateNatGateway", args, &response)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
return &response, err
|
||
|
}
|
||
|
|
||
|
type NatGatewaySetType struct {
|
||
|
BusinessStatus string
|
||
|
Description string
|
||
|
BandwidthPackageIds BandwidthPackageIdType
|
||
|
ForwardTableIds ForwardTableIdType
|
||
|
SnatTableIds SnatTableIdType
|
||
|
InstanceChargeType string
|
||
|
Name string
|
||
|
NatGatewayId string
|
||
|
RegionId common.Region
|
||
|
Spec string
|
||
|
Status string
|
||
|
VpcId string
|
||
|
}
|
||
|
|
||
|
type DescribeNatGatewayResponse struct {
|
||
|
common.Response
|
||
|
common.PaginationResult
|
||
|
NatGateways struct {
|
||
|
NatGateway []NatGatewaySetType
|
||
|
}
|
||
|
}
|
||
|
|
||
|
type DescribeNatGatewaysArgs struct {
|
||
|
RegionId common.Region
|
||
|
NatGatewayId string
|
||
|
VpcId string
|
||
|
common.Pagination
|
||
|
}
|
||
|
|
||
|
func (client *Client) DescribeNatGateways(args *DescribeNatGatewaysArgs) (natGateways []NatGatewaySetType,
|
||
|
pagination *common.PaginationResult, err error) {
|
||
|
response, err := client.DescribeNatGatewaysWithRaw(args)
|
||
|
if err == nil {
|
||
|
return response.NatGateways.NatGateway, &response.PaginationResult, nil
|
||
|
}
|
||
|
|
||
|
return nil, nil, err
|
||
|
}
|
||
|
|
||
|
func (client *Client) DescribeNatGatewaysWithRaw(args *DescribeNatGatewaysArgs) (response *DescribeNatGatewayResponse, err error) {
|
||
|
args.Validate()
|
||
|
response = &DescribeNatGatewayResponse{}
|
||
|
|
||
|
err = client.Invoke("DescribeNatGateways", args, response)
|
||
|
|
||
|
if err == nil {
|
||
|
return response, nil
|
||
|
}
|
||
|
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
type ModifyNatGatewayAttributeArgs struct {
|
||
|
RegionId common.Region
|
||
|
NatGatewayId string
|
||
|
Name string
|
||
|
Description string
|
||
|
}
|
||
|
|
||
|
type ModifyNatGatewayAttributeResponse struct {
|
||
|
common.Response
|
||
|
}
|
||
|
|
||
|
func (client *Client) ModifyNatGatewayAttribute(args *ModifyNatGatewayAttributeArgs) error {
|
||
|
response := ModifyNatGatewayAttributeResponse{}
|
||
|
return client.Invoke("ModifyNatGatewayAttribute", args, &response)
|
||
|
}
|
||
|
|
||
|
type ModifyNatGatewaySpecArgs struct {
|
||
|
RegionId common.Region
|
||
|
NatGatewayId string
|
||
|
Spec NatGatewaySpec
|
||
|
}
|
||
|
|
||
|
func (client *Client) ModifyNatGatewaySpec(args *ModifyNatGatewaySpecArgs) error {
|
||
|
response := ModifyNatGatewayAttributeResponse{}
|
||
|
return client.Invoke("ModifyNatGatewaySpec", args, &response)
|
||
|
}
|
||
|
|
||
|
type DeleteNatGatewayArgs struct {
|
||
|
RegionId common.Region
|
||
|
NatGatewayId string
|
||
|
}
|
||
|
|
||
|
type DeleteNatGatewayResponse struct {
|
||
|
common.Response
|
||
|
}
|
||
|
|
||
|
func (client *Client) DeleteNatGateway(args *DeleteNatGatewayArgs) error {
|
||
|
response := DeleteNatGatewayResponse{}
|
||
|
err := client.Invoke("DeleteNatGateway", args, &response)
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
type DescribeBandwidthPackagesArgs struct {
|
||
|
RegionId common.Region
|
||
|
BandwidthPackageId string
|
||
|
NatGatewayId string
|
||
|
}
|
||
|
|
||
|
type PublicIpAddresseType struct {
|
||
|
AllocationId string
|
||
|
IpAddress string
|
||
|
}
|
||
|
|
||
|
type DescribeBandwidthPackageType struct {
|
||
|
Bandwidth string
|
||
|
BandwidthPackageId string
|
||
|
IpCount string
|
||
|
PublicIpAddresses struct {
|
||
|
PublicIpAddresse []PublicIpAddresseType
|
||
|
}
|
||
|
|
||
|
ZoneId string
|
||
|
}
|
||
|
|
||
|
type DescribeBandwidthPackagesResponse struct {
|
||
|
common.Response
|
||
|
BandwidthPackages struct {
|
||
|
BandwidthPackage []DescribeBandwidthPackageType
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (client *Client) DescribeBandwidthPackages(args *DescribeBandwidthPackagesArgs) ([]DescribeBandwidthPackageType, error) {
|
||
|
response := &DescribeBandwidthPackagesResponse{}
|
||
|
|
||
|
err := client.Invoke("DescribeBandwidthPackages", args, response)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
return response.BandwidthPackages.BandwidthPackage, err
|
||
|
}
|
||
|
|
||
|
type DeleteBandwidthPackageArgs struct {
|
||
|
RegionId common.Region
|
||
|
BandwidthPackageId string
|
||
|
}
|
||
|
|
||
|
type DeleteBandwidthPackageResponse struct {
|
||
|
common.Response
|
||
|
}
|
||
|
|
||
|
func (client *Client) DeleteBandwidthPackage(args *DeleteBandwidthPackageArgs) error {
|
||
|
response := DeleteBandwidthPackageResponse{}
|
||
|
err := client.Invoke("DeleteBandwidthPackage", args, &response)
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
type NatGatewaySpec string
|
||
|
|
||
|
const (
|
||
|
NatGatewaySmallSpec = NatGatewaySpec("Small")
|
||
|
NatGatewayMiddleSpec = NatGatewaySpec("Middle")
|
||
|
NatGatewayLargeSpec = NatGatewaySpec("Large")
|
||
|
)
|