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 )