nat_gateway.go 4.7 KB

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