github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/builtin/providers/alicloud/extension_nat_gateway.go (about)

     1  package alicloud
     2  
     3  import (
     4  	"github.com/denverdino/aliyungo/common"
     5  	"github.com/denverdino/aliyungo/ecs"
     6  )
     7  
     8  type BandwidthPackageType struct {
     9  	IpCount   int
    10  	Bandwidth int
    11  	Zone      string
    12  }
    13  
    14  type CreateNatGatewayArgs struct {
    15  	RegionId         common.Region
    16  	VpcId            string
    17  	Spec             string
    18  	BandwidthPackage []BandwidthPackageType
    19  	Name             string
    20  	Description      string
    21  	ClientToken      string
    22  }
    23  
    24  type ForwardTableIdType struct {
    25  	ForwardTableId []string
    26  }
    27  
    28  type BandwidthPackageIdType struct {
    29  	BandwidthPackageId []string
    30  }
    31  
    32  type CreateNatGatewayResponse struct {
    33  	common.Response
    34  	NatGatewayId        string
    35  	ForwardTableIds     ForwardTableIdType
    36  	BandwidthPackageIds BandwidthPackageIdType
    37  }
    38  
    39  // CreateNatGateway creates Virtual Private Cloud
    40  //
    41  // You can read doc at http://docs.aliyun.com/#/pub/ecs/open-api/vpc&createvpc
    42  func CreateNatGateway(client *ecs.Client, args *CreateNatGatewayArgs) (resp *CreateNatGatewayResponse, err error) {
    43  	response := CreateNatGatewayResponse{}
    44  	err = client.Invoke("CreateNatGateway", args, &response)
    45  	if err != nil {
    46  		return nil, err
    47  	}
    48  	return &response, err
    49  }
    50  
    51  type NatGatewaySetType struct {
    52  	BusinessStatus      string
    53  	Description         string
    54  	BandwidthPackageIds BandwidthPackageIdType
    55  	ForwardTableIds     ForwardTableIdType
    56  	InstanceChargeType  string
    57  	Name                string
    58  	NatGatewayId        string
    59  	RegionId            common.Region
    60  	Spec                string
    61  	Status              string
    62  	VpcId               string
    63  }
    64  
    65  type DescribeNatGatewayResponse struct {
    66  	common.Response
    67  	common.PaginationResult
    68  	NatGateways struct {
    69  		NatGateway []NatGatewaySetType
    70  	}
    71  }
    72  
    73  type DescribeNatGatewaysArgs struct {
    74  	RegionId     common.Region
    75  	NatGatewayId string
    76  	VpcId        string
    77  	common.Pagination
    78  }
    79  
    80  func DescribeNatGateways(client *ecs.Client, args *DescribeNatGatewaysArgs) (natGateways []NatGatewaySetType,
    81  	pagination *common.PaginationResult, err error) {
    82  
    83  	args.Validate()
    84  	response := DescribeNatGatewayResponse{}
    85  
    86  	err = client.Invoke("DescribeNatGateways", args, &response)
    87  
    88  	if err == nil {
    89  		return response.NatGateways.NatGateway, &response.PaginationResult, nil
    90  	}
    91  
    92  	return nil, nil, err
    93  }
    94  
    95  type ModifyNatGatewayAttributeArgs struct {
    96  	RegionId     common.Region
    97  	NatGatewayId string
    98  	Name         string
    99  	Description  string
   100  }
   101  
   102  type ModifyNatGatewayAttributeResponse struct {
   103  	common.Response
   104  }
   105  
   106  func ModifyNatGatewayAttribute(client *ecs.Client, args *ModifyNatGatewayAttributeArgs) error {
   107  	response := ModifyNatGatewayAttributeResponse{}
   108  	return client.Invoke("ModifyNatGatewayAttribute", args, &response)
   109  }
   110  
   111  type ModifyNatGatewaySpecArgs struct {
   112  	RegionId     common.Region
   113  	NatGatewayId string
   114  	Spec         NatGatewaySpec
   115  }
   116  
   117  func ModifyNatGatewaySpec(client *ecs.Client, args *ModifyNatGatewaySpecArgs) error {
   118  	response := ModifyNatGatewayAttributeResponse{}
   119  	return client.Invoke("ModifyNatGatewaySpec", args, &response)
   120  }
   121  
   122  type DeleteNatGatewayArgs struct {
   123  	RegionId     common.Region
   124  	NatGatewayId string
   125  }
   126  
   127  type DeleteNatGatewayResponse struct {
   128  	common.Response
   129  }
   130  
   131  func DeleteNatGateway(client *ecs.Client, args *DeleteNatGatewayArgs) error {
   132  	response := DeleteNatGatewayResponse{}
   133  	err := client.Invoke("DeleteNatGateway", args, &response)
   134  	return err
   135  }
   136  
   137  type DescribeBandwidthPackagesArgs struct {
   138  	RegionId           common.Region
   139  	BandwidthPackageId string
   140  	NatGatewayId       string
   141  }
   142  
   143  type DescribeBandwidthPackageType struct {
   144  	Bandwidth          string
   145  	BandwidthPackageId string
   146  	IpCount            string
   147  }
   148  
   149  type DescribeBandwidthPackagesResponse struct {
   150  	common.Response
   151  	BandwidthPackages struct {
   152  		BandwidthPackage []DescribeBandwidthPackageType
   153  	}
   154  }
   155  
   156  func DescribeBandwidthPackages(client *ecs.Client, args *DescribeBandwidthPackagesArgs) ([]DescribeBandwidthPackageType, error) {
   157  	response := &DescribeBandwidthPackagesResponse{}
   158  	err := client.Invoke("DescribeBandwidthPackages", args, response)
   159  	if err != nil {
   160  		return nil, err
   161  	}
   162  	return response.BandwidthPackages.BandwidthPackage, err
   163  }
   164  
   165  type DeleteBandwidthPackageArgs struct {
   166  	RegionId           common.Region
   167  	BandwidthPackageId string
   168  }
   169  
   170  type DeleteBandwidthPackageResponse struct {
   171  	common.Response
   172  }
   173  
   174  func DeleteBandwidthPackage(client *ecs.Client, args *DeleteBandwidthPackageArgs) error {
   175  	response := DeleteBandwidthPackageResponse{}
   176  	err := client.Invoke("DeleteBandwidthPackage", args, &response)
   177  	return err
   178  }
   179  
   180  type DescribeSnatTableEntriesArgs struct {
   181  	RegionId common.Region
   182  }
   183  
   184  func DescribeSnatTableEntries(client *ecs.Client, args *DescribeSnatTableEntriesArgs) {
   185  
   186  }
   187  
   188  type NatGatewaySpec string
   189  
   190  const (
   191  	NatGatewaySmallSpec  = NatGatewaySpec("Small")
   192  	NatGatewayMiddleSpec = NatGatewaySpec("Middle")
   193  	NatGatewayLargeSpec  = NatGatewaySpec("Large")
   194  )