Przeglądaj źródła

Supported DryRun for Vpc and VSwitch.

sdk-team 6 lat temu
rodzic
commit
07798873de
44 zmienionych plików z 1442 dodań i 2 usunięć
  1. 3 0
      ChangeLog.txt
  2. 1 0
      services/vpc/allocate_eip_address.go
  3. 25 0
      services/vpc/client.go
  4. 1 0
      services/vpc/create_bgp_peer.go
  5. 118 0
      services/vpc/create_express_cloud_connection.go
  6. 2 0
      services/vpc/create_ha_vip.go
  7. 3 2
      services/vpc/create_physical_connection_setup_order.go
  8. 1 0
      services/vpc/create_vpn_pbr_route_entry.go
  9. 1 0
      services/vpc/create_vpn_route_entry.go
  10. 1 0
      services/vpc/delete_vpn_pbr_route_entry.go
  11. 1 0
      services/vpc/delete_vpn_route_entry.go
  12. 110 0
      services/vpc/describe_eip_gateway_info.go
  13. 119 0
      services/vpc/describe_express_cloud_connections.go
  14. 1 0
      services/vpc/describe_v_switch_attributes.go
  15. 1 0
      services/vpc/describe_v_switches.go
  16. 1 0
      services/vpc/describe_vpc_attribute.go
  17. 1 0
      services/vpc/describe_vpcs.go
  18. 117 0
      services/vpc/describe_vpn_ssl_server_logs.go
  19. 30 0
      services/vpc/endpoint.go
  20. 114 0
      services/vpc/list_tag_resources.go
  21. 111 0
      services/vpc/modify_bgp_peer_attribute.go
  22. 109 0
      services/vpc/modify_express_cloud_connection_attribute.go
  23. 108 0
      services/vpc/modify_express_cloud_connection_bandwidth.go
  24. 1 0
      services/vpc/modify_ha_vip_attribute.go
  25. 3 0
      services/vpc/modify_virtual_border_router_attribute.go
  26. 1 0
      services/vpc/modify_vpn_pbr_route_entry_weight.go
  27. 1 0
      services/vpc/modify_vpn_route_entry_weight.go
  28. 1 0
      services/vpc/struct_bgp_peer.go
  29. 21 0
      services/vpc/struct_data.go
  30. 23 0
      services/vpc/struct_eip_info.go
  31. 21 0
      services/vpc/struct_eip_infos.go
  32. 21 0
      services/vpc/struct_express_cloud_connection_set.go
  33. 52 0
      services/vpc/struct_express_cloud_connection_type.go
  34. 2 0
      services/vpc/struct_ha_vip.go
  35. 2 0
      services/vpc/struct_route_entry.go
  36. 24 0
      services/vpc/struct_tag_resource.go
  37. 21 0
      services/vpc/struct_tag_resources.go
  38. 3 0
      services/vpc/struct_virtual_border_router_for_physical_connection_type.go
  39. 23 0
      services/vpc/struct_virtual_border_router_model.go
  40. 21 0
      services/vpc/struct_virtual_border_router_models.go
  41. 5 0
      services/vpc/struct_virtual_border_router_type.go
  42. 1 0
      services/vpc/struct_vpc.go
  43. 111 0
      services/vpc/tag_resources.go
  44. 105 0
      services/vpc/un_tag_resources.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2019-08-08 Version: 1.60.95
+- Supported DryRun for Vpc and VSwitch.
+
 2019-08-08 Version: 1.60.94
 - Add CreateStorageSet api to support storageSet.
 - Add DeleteStorageSet api to support storageSet.

+ 1 - 0
services/vpc/allocate_eip_address.go

@@ -85,6 +85,7 @@ type AllocateEipAddressRequest struct {
 	ISP                  string           `position:"Query" name:"ISP"`
 	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ActivityId           requests.Integer `position:"Query" name:"ActivityId"`
 	ResourceGroupId      string           `position:"Query" name:"ResourceGroupId"`
 	InternetChargeType   string           `position:"Query" name:"InternetChargeType"`
 	Netmode              string           `position:"Query" name:"Netmode"`

+ 25 - 0
services/vpc/client.go

@@ -16,6 +16,8 @@ package vpc
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
 import (
+	"reflect"
+
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials/provider"
@@ -26,10 +28,25 @@ type Client struct {
 	sdk.Client
 }
 
+// SetClientProperty Set Property by Reflect
+func SetClientProperty(client *Client, propertyName string, propertyValue interface{}) {
+	v := reflect.ValueOf(client).Elem()
+	if v.FieldByName(propertyName).IsValid() && v.FieldByName(propertyName).CanSet() {
+		v.FieldByName(propertyName).Set(reflect.ValueOf(propertyValue))
+	}
+}
+
+// SetEndpointDataToClient Set EndpointMap and ENdpointType
+func SetEndpointDataToClient(client *Client) {
+	SetClientProperty(client, "EndpointMap", GetEndpointMap())
+	SetClientProperty(client, "EndpointType", GetEndpointType())
+}
+
 // NewClient creates a sdk client with environment variables
 func NewClient() (client *Client, err error) {
 	client = &Client{}
 	err = client.Init()
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -44,6 +61,7 @@ func NewClientWithProvider(regionId string, providers ...provider.Provider) (cli
 		pc = provider.NewProviderChain(providers)
 	}
 	err = client.InitWithProviderChain(regionId, pc)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -52,6 +70,7 @@ func NewClientWithProvider(regionId string, providers ...provider.Provider) (cli
 func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithOptions(regionId, config, credential)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -60,6 +79,7 @@ func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.C
 func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -68,6 +88,7 @@ func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (clie
 func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -76,6 +97,7 @@ func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToke
 func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -84,6 +106,7 @@ func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, role
 func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithRamRoleArnAndPolicy(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName, policy)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -92,6 +115,7 @@ func NewClientWithRamRoleArnAndPolicy(regionId string, accessKeyId, accessKeySec
 func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithEcsRamRole(regionId, roleName)
+	SetEndpointDataToClient(client)
 	return
 }
 
@@ -100,5 +124,6 @@ func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client,
 func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
 	client = &Client{}
 	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	SetEndpointDataToClient(client)
 	return
 }

+ 1 - 0
services/vpc/create_bgp_peer.go

@@ -77,6 +77,7 @@ func (client *Client) CreateBgpPeerWithCallback(request *CreateBgpPeerRequest, c
 type CreateBgpPeerRequest struct {
 	*requests.RpcRequest
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	EnableBfd            requests.Boolean `position:"Query" name:"EnableBfd"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	ClientToken          string           `position:"Query" name:"ClientToken"`
 	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`

+ 118 - 0
services/vpc/create_express_cloud_connection.go

@@ -0,0 +1,118 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// CreateExpressCloudConnection invokes the vpc.CreateExpressCloudConnection API synchronously
+// api document: https://help.aliyun.com/api/vpc/createexpresscloudconnection.html
+func (client *Client) CreateExpressCloudConnection(request *CreateExpressCloudConnectionRequest) (response *CreateExpressCloudConnectionResponse, err error) {
+	response = CreateCreateExpressCloudConnectionResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateExpressCloudConnectionWithChan invokes the vpc.CreateExpressCloudConnection API asynchronously
+// api document: https://help.aliyun.com/api/vpc/createexpresscloudconnection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateExpressCloudConnectionWithChan(request *CreateExpressCloudConnectionRequest) (<-chan *CreateExpressCloudConnectionResponse, <-chan error) {
+	responseChan := make(chan *CreateExpressCloudConnectionResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateExpressCloudConnection(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateExpressCloudConnectionWithCallback invokes the vpc.CreateExpressCloudConnection API asynchronously
+// api document: https://help.aliyun.com/api/vpc/createexpresscloudconnection.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateExpressCloudConnectionWithCallback(request *CreateExpressCloudConnectionRequest, callback func(response *CreateExpressCloudConnectionResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateExpressCloudConnectionResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateExpressCloudConnection(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateExpressCloudConnectionRequest is the request struct for api CreateExpressCloudConnection
+type CreateExpressCloudConnectionRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PeerLocation         string           `position:"Query" name:"PeerLocation"`
+	PortType             string           `position:"Query" name:"PortType"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	Bandwidth            requests.Integer `position:"Query" name:"Bandwidth"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	Description          string           `position:"Query" name:"Description"`
+	PeerCity             string           `position:"Query" name:"PeerCity"`
+	IDCardNo             string           `position:"Query" name:"IDCardNo"`
+	RedundantEccId       string           `position:"Query" name:"RedundantEccId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ContactMail          string           `position:"Query" name:"ContactMail"`
+	ContactTel           string           `position:"Query" name:"ContactTel"`
+	IdcSP                string           `position:"Query" name:"IdcSP"`
+	Name                 string           `position:"Query" name:"Name"`
+}
+
+// CreateExpressCloudConnectionResponse is the response struct for api CreateExpressCloudConnection
+type CreateExpressCloudConnectionResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	EccId     string `json:"EccId" xml:"EccId"`
+}
+
+// CreateCreateExpressCloudConnectionRequest creates a request to invoke CreateExpressCloudConnection API
+func CreateCreateExpressCloudConnectionRequest() (request *CreateExpressCloudConnectionRequest) {
+	request = &CreateExpressCloudConnectionRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "CreateExpressCloudConnection", "vpc", "openAPI")
+	return
+}
+
+// CreateCreateExpressCloudConnectionResponse creates a response to parse from CreateExpressCloudConnection response
+func CreateCreateExpressCloudConnectionResponse() (response *CreateExpressCloudConnectionResponse) {
+	response = &CreateExpressCloudConnectionResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 0
services/vpc/create_ha_vip.go

@@ -82,6 +82,7 @@ type CreateHaVipRequest struct {
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	ClientToken          string           `position:"Query" name:"ClientToken"`
 	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	Name                 string           `position:"Query" name:"Name"`
 	Description          string           `position:"Query" name:"Description"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 }
@@ -91,6 +92,7 @@ type CreateHaVipResponse struct {
 	*responses.BaseResponse
 	RequestId string `json:"RequestId" xml:"RequestId"`
 	HaVipId   string `json:"HaVipId" xml:"HaVipId"`
+	IpAddress string `json:"IpAddress" xml:"IpAddress"`
 }
 
 // CreateCreateHaVipRequest creates a request to invoke CreateHaVip API

+ 3 - 2
services/vpc/create_physical_connection_setup_order.go

@@ -91,8 +91,9 @@ type CreatePhysicalConnectionSetupOrderRequest struct {
 // CreatePhysicalConnectionSetupOrderResponse is the response struct for api CreatePhysicalConnectionSetupOrder
 type CreatePhysicalConnectionSetupOrderResponse struct {
 	*responses.BaseResponse
-	RequestId string `json:"RequestId" xml:"RequestId"`
-	OrderId   string `json:"OrderId" xml:"OrderId"`
+	RequestId            string `json:"RequestId" xml:"RequestId"`
+	OrderId              string `json:"OrderId" xml:"OrderId"`
+	PhysicalConnectionId string `json:"PhysicalConnectionId" xml:"PhysicalConnectionId"`
 }
 
 // CreateCreatePhysicalConnectionSetupOrderRequest creates a request to invoke CreatePhysicalConnectionSetupOrder API

+ 1 - 0
services/vpc/create_vpn_pbr_route_entry.go

@@ -88,6 +88,7 @@ type CreateVpnPbrRouteEntryRequest struct {
 	RouteDest            string           `position:"Query" name:"RouteDest"`
 	NextHop              string           `position:"Query" name:"NextHop"`
 	PublishVpc           requests.Boolean `position:"Query" name:"PublishVpc"`
+	OverlayMode          string           `position:"Query" name:"OverlayMode"`
 }
 
 // CreateVpnPbrRouteEntryResponse is the response struct for api CreateVpnPbrRouteEntry

+ 1 - 0
services/vpc/create_vpn_route_entry.go

@@ -87,6 +87,7 @@ type CreateVpnRouteEntryRequest struct {
 	RouteDest            string           `position:"Query" name:"RouteDest"`
 	NextHop              string           `position:"Query" name:"NextHop"`
 	PublishVpc           requests.Boolean `position:"Query" name:"PublishVpc"`
+	OverlayMode          string           `position:"Query" name:"OverlayMode"`
 }
 
 // CreateVpnRouteEntryResponse is the response struct for api CreateVpnRouteEntry

+ 1 - 0
services/vpc/delete_vpn_pbr_route_entry.go

@@ -86,6 +86,7 @@ type DeleteVpnPbrRouteEntryRequest struct {
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 	RouteDest            string           `position:"Query" name:"RouteDest"`
 	NextHop              string           `position:"Query" name:"NextHop"`
+	OverlayMode          string           `position:"Query" name:"OverlayMode"`
 }
 
 // DeleteVpnPbrRouteEntryResponse is the response struct for api DeleteVpnPbrRouteEntry

+ 1 - 0
services/vpc/delete_vpn_route_entry.go

@@ -85,6 +85,7 @@ type DeleteVpnRouteEntryRequest struct {
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 	RouteDest            string           `position:"Query" name:"RouteDest"`
 	NextHop              string           `position:"Query" name:"NextHop"`
+	OverlayMode          string           `position:"Query" name:"OverlayMode"`
 }
 
 // DeleteVpnRouteEntryResponse is the response struct for api DeleteVpnRouteEntry

+ 110 - 0
services/vpc/describe_eip_gateway_info.go

@@ -0,0 +1,110 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeEipGatewayInfo invokes the vpc.DescribeEipGatewayInfo API synchronously
+// api document: https://help.aliyun.com/api/vpc/describeeipgatewayinfo.html
+func (client *Client) DescribeEipGatewayInfo(request *DescribeEipGatewayInfoRequest) (response *DescribeEipGatewayInfoResponse, err error) {
+	response = CreateDescribeEipGatewayInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeEipGatewayInfoWithChan invokes the vpc.DescribeEipGatewayInfo API asynchronously
+// api document: https://help.aliyun.com/api/vpc/describeeipgatewayinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeEipGatewayInfoWithChan(request *DescribeEipGatewayInfoRequest) (<-chan *DescribeEipGatewayInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeEipGatewayInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeEipGatewayInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeEipGatewayInfoWithCallback invokes the vpc.DescribeEipGatewayInfo API asynchronously
+// api document: https://help.aliyun.com/api/vpc/describeeipgatewayinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeEipGatewayInfoWithCallback(request *DescribeEipGatewayInfoRequest, callback func(response *DescribeEipGatewayInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeEipGatewayInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeEipGatewayInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeEipGatewayInfoRequest is the request struct for api DescribeEipGatewayInfo
+type DescribeEipGatewayInfoRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	InstanceId           string           `position:"Query" name:"InstanceId"`
+}
+
+// DescribeEipGatewayInfoResponse is the response struct for api DescribeEipGatewayInfo
+type DescribeEipGatewayInfoResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Code      string   `json:"Code" xml:"Code"`
+	Message   string   `json:"Message" xml:"Message"`
+	EipInfos  EipInfos `json:"EipInfos" xml:"EipInfos"`
+}
+
+// CreateDescribeEipGatewayInfoRequest creates a request to invoke DescribeEipGatewayInfo API
+func CreateDescribeEipGatewayInfoRequest() (request *DescribeEipGatewayInfoRequest) {
+	request = &DescribeEipGatewayInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "DescribeEipGatewayInfo", "vpc", "openAPI")
+	return
+}
+
+// CreateDescribeEipGatewayInfoResponse creates a response to parse from DescribeEipGatewayInfo response
+func CreateDescribeEipGatewayInfoResponse() (response *DescribeEipGatewayInfoResponse) {
+	response = &DescribeEipGatewayInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 119 - 0
services/vpc/describe_express_cloud_connections.go

@@ -0,0 +1,119 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeExpressCloudConnections invokes the vpc.DescribeExpressCloudConnections API synchronously
+// api document: https://help.aliyun.com/api/vpc/describeexpresscloudconnections.html
+func (client *Client) DescribeExpressCloudConnections(request *DescribeExpressCloudConnectionsRequest) (response *DescribeExpressCloudConnectionsResponse, err error) {
+	response = CreateDescribeExpressCloudConnectionsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeExpressCloudConnectionsWithChan invokes the vpc.DescribeExpressCloudConnections API asynchronously
+// api document: https://help.aliyun.com/api/vpc/describeexpresscloudconnections.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeExpressCloudConnectionsWithChan(request *DescribeExpressCloudConnectionsRequest) (<-chan *DescribeExpressCloudConnectionsResponse, <-chan error) {
+	responseChan := make(chan *DescribeExpressCloudConnectionsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeExpressCloudConnections(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeExpressCloudConnectionsWithCallback invokes the vpc.DescribeExpressCloudConnections API asynchronously
+// api document: https://help.aliyun.com/api/vpc/describeexpresscloudconnections.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeExpressCloudConnectionsWithCallback(request *DescribeExpressCloudConnectionsRequest, callback func(response *DescribeExpressCloudConnectionsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeExpressCloudConnectionsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeExpressCloudConnections(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeExpressCloudConnectionsRequest is the request struct for api DescribeExpressCloudConnections
+type DescribeExpressCloudConnectionsRequest struct {
+	*requests.RpcRequest
+	Filter               *[]DescribeExpressCloudConnectionsFilter `position:"Query" name:"Filter"  type:"Repeated"`
+	ResourceOwnerId      requests.Integer                         `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string                                   `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string                                   `position:"Query" name:"OwnerAccount"`
+	PageSize             requests.Integer                         `position:"Query" name:"PageSize"`
+	OwnerId              requests.Integer                         `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer                         `position:"Query" name:"PageNumber"`
+}
+
+// DescribeExpressCloudConnectionsFilter is a repeated param struct in DescribeExpressCloudConnectionsRequest
+type DescribeExpressCloudConnectionsFilter struct {
+	Value *[]string `name:"Value" type:"Repeated"`
+	Key   string    `name:"Key"`
+}
+
+// DescribeExpressCloudConnectionsResponse is the response struct for api DescribeExpressCloudConnections
+type DescribeExpressCloudConnectionsResponse struct {
+	*responses.BaseResponse
+	RequestId                 string                    `json:"RequestId" xml:"RequestId"`
+	PageNumber                int                       `json:"PageNumber" xml:"PageNumber"`
+	PageSize                  int                       `json:"PageSize" xml:"PageSize"`
+	TotalCount                int                       `json:"TotalCount" xml:"TotalCount"`
+	ExpressCloudConnectionSet ExpressCloudConnectionSet `json:"ExpressCloudConnectionSet" xml:"ExpressCloudConnectionSet"`
+}
+
+// CreateDescribeExpressCloudConnectionsRequest creates a request to invoke DescribeExpressCloudConnections API
+func CreateDescribeExpressCloudConnectionsRequest() (request *DescribeExpressCloudConnectionsRequest) {
+	request = &DescribeExpressCloudConnectionsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "DescribeExpressCloudConnections", "vpc", "openAPI")
+	return
+}
+
+// CreateDescribeExpressCloudConnectionsResponse creates a response to parse from DescribeExpressCloudConnections response
+func CreateDescribeExpressCloudConnectionsResponse() (response *DescribeExpressCloudConnectionsResponse) {
+	response = &DescribeExpressCloudConnectionsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/vpc/describe_v_switch_attributes.go

@@ -78,6 +78,7 @@ type DescribeVSwitchAttributesRequest struct {
 	*requests.RpcRequest
 	VSwitchId            string           `position:"Query" name:"VSwitchId"`
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	DryRun               requests.Boolean `position:"Query" name:"DryRun"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`

+ 1 - 0
services/vpc/describe_v_switches.go

@@ -77,6 +77,7 @@ func (client *Client) DescribeVSwitchesWithCallback(request *DescribeVSwitchesRe
 type DescribeVSwitchesRequest struct {
 	*requests.RpcRequest
 	ResourceOwnerId      requests.Integer        `position:"Query" name:"ResourceOwnerId"`
+	DryRun               requests.Boolean        `position:"Query" name:"DryRun"`
 	ResourceOwnerAccount string                  `position:"Query" name:"ResourceOwnerAccount"`
 	OwnerAccount         string                  `position:"Query" name:"OwnerAccount"`
 	OwnerId              requests.Integer        `position:"Query" name:"OwnerId"`

+ 1 - 0
services/vpc/describe_vpc_attribute.go

@@ -77,6 +77,7 @@ func (client *Client) DescribeVpcAttributeWithCallback(request *DescribeVpcAttri
 type DescribeVpcAttributeRequest struct {
 	*requests.RpcRequest
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	DryRun               requests.Boolean `position:"Query" name:"DryRun"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	VpcId                string           `position:"Query" name:"VpcId"`
 	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`

+ 1 - 0
services/vpc/describe_vpcs.go

@@ -77,6 +77,7 @@ func (client *Client) DescribeVpcsWithCallback(request *DescribeVpcsRequest, cal
 type DescribeVpcsRequest struct {
 	*requests.RpcRequest
 	ResourceOwnerId      requests.Integer   `position:"Query" name:"ResourceOwnerId"`
+	DryRun               requests.Boolean   `position:"Query" name:"DryRun"`
 	ResourceOwnerAccount string             `position:"Query" name:"ResourceOwnerAccount"`
 	OwnerAccount         string             `position:"Query" name:"OwnerAccount"`
 	OwnerId              requests.Integer   `position:"Query" name:"OwnerId"`

+ 117 - 0
services/vpc/describe_vpn_ssl_server_logs.go

@@ -0,0 +1,117 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// DescribeVpnSslServerLogs invokes the vpc.DescribeVpnSslServerLogs API synchronously
+// api document: https://help.aliyun.com/api/vpc/describevpnsslserverlogs.html
+func (client *Client) DescribeVpnSslServerLogs(request *DescribeVpnSslServerLogsRequest) (response *DescribeVpnSslServerLogsResponse, err error) {
+	response = CreateDescribeVpnSslServerLogsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeVpnSslServerLogsWithChan invokes the vpc.DescribeVpnSslServerLogs API asynchronously
+// api document: https://help.aliyun.com/api/vpc/describevpnsslserverlogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeVpnSslServerLogsWithChan(request *DescribeVpnSslServerLogsRequest) (<-chan *DescribeVpnSslServerLogsResponse, <-chan error) {
+	responseChan := make(chan *DescribeVpnSslServerLogsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeVpnSslServerLogs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeVpnSslServerLogsWithCallback invokes the vpc.DescribeVpnSslServerLogs API asynchronously
+// api document: https://help.aliyun.com/api/vpc/describevpnsslserverlogs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeVpnSslServerLogsWithCallback(request *DescribeVpnSslServerLogsRequest, callback func(response *DescribeVpnSslServerLogsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeVpnSslServerLogsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeVpnSslServerLogs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeVpnSslServerLogsRequest is the request struct for api DescribeVpnSslServerLogs
+type DescribeVpnSslServerLogsRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	MinutePeriod         requests.Integer `position:"Query" name:"MinutePeriod"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	VpnSslServerId       string           `position:"Query" name:"VpnSslServerId"`
+	From                 requests.Integer `position:"Query" name:"From"`
+	To                   requests.Integer `position:"Query" name:"To"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+}
+
+// DescribeVpnSslServerLogsResponse is the response struct for api DescribeVpnSslServerLogs
+type DescribeVpnSslServerLogsResponse struct {
+	*responses.BaseResponse
+	RequestId   string `json:"RequestId" xml:"RequestId"`
+	Count       int    `json:"Count" xml:"Count"`
+	IsCompleted bool   `json:"IsCompleted" xml:"IsCompleted"`
+	PageNumber  int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize    int    `json:"PageSize" xml:"PageSize"`
+	Data        Data   `json:"Data" xml:"Data"`
+}
+
+// CreateDescribeVpnSslServerLogsRequest creates a request to invoke DescribeVpnSslServerLogs API
+func CreateDescribeVpnSslServerLogsRequest() (request *DescribeVpnSslServerLogsRequest) {
+	request = &DescribeVpnSslServerLogsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "DescribeVpnSslServerLogs", "vpc", "openAPI")
+	return
+}
+
+// CreateDescribeVpnSslServerLogsResponse creates a response to parse from DescribeVpnSslServerLogs response
+func CreateDescribeVpnSslServerLogsResponse() (response *DescribeVpnSslServerLogsResponse) {
+	response = &DescribeVpnSslServerLogsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 30 - 0
services/vpc/endpoint.go

@@ -0,0 +1,30 @@
+package vpc
+
+// EndpointMap Endpoint Data
+var EndpointMap map[string]string
+
+// EndpointType regional or central
+var EndpointType = "regional"
+
+// GetEndpointMap Get Endpoint Data Map
+func GetEndpointMap() map[string]string {
+	if EndpointMap == nil {
+		EndpointMap = map[string]string{
+			"cn-shenzhen":    "vpc.aliyuncs.com",
+			"cn-qingdao":     "vpc.aliyuncs.com",
+			"cn-beijing":     "vpc.aliyuncs.com",
+			"cn-shanghai":    "vpc.aliyuncs.com",
+			"cn-hongkong":    "vpc.aliyuncs.com",
+			"ap-southeast-1": "vpc.aliyuncs.com",
+			"us-east-1":      "vpc.aliyuncs.com",
+			"us-west-1":      "vpc.aliyuncs.com",
+			"cn-hangzhou":    "vpc.aliyuncs.com",
+		}
+	}
+	return EndpointMap
+}
+
+// GetEndpointType Get Endpoint Type Value
+func GetEndpointType() string {
+	return EndpointType
+}

+ 114 - 0
services/vpc/list_tag_resources.go

@@ -0,0 +1,114 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ListTagResources invokes the vpc.ListTagResources API synchronously
+// api document: https://help.aliyun.com/api/vpc/listtagresources.html
+func (client *Client) ListTagResources(request *ListTagResourcesRequest) (response *ListTagResourcesResponse, err error) {
+	response = CreateListTagResourcesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ListTagResourcesWithChan invokes the vpc.ListTagResources API asynchronously
+// api document: https://help.aliyun.com/api/vpc/listtagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagResourcesWithChan(request *ListTagResourcesRequest) (<-chan *ListTagResourcesResponse, <-chan error) {
+	responseChan := make(chan *ListTagResourcesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ListTagResources(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ListTagResourcesWithCallback invokes the vpc.ListTagResources API asynchronously
+// api document: https://help.aliyun.com/api/vpc/listtagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ListTagResourcesWithCallback(request *ListTagResourcesRequest, callback func(response *ListTagResourcesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ListTagResourcesResponse
+		var err error
+		defer close(result)
+		response, err = client.ListTagResources(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ListTagResourcesRequest is the request struct for api ListTagResources
+type ListTagResourcesRequest struct {
+	*requests.RpcRequest
+	ResourceId   *[]string              `position:"Query" name:"ResourceId"  type:"Repeated"`
+	NextToken    string                 `position:"Query" name:"NextToken"`
+	Tag          *[]ListTagResourcesTag `position:"Query" name:"Tag"  type:"Repeated"`
+	ResourceType string                 `position:"Query" name:"ResourceType"`
+}
+
+// ListTagResourcesTag is a repeated param struct in ListTagResourcesRequest
+type ListTagResourcesTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// ListTagResourcesResponse is the response struct for api ListTagResources
+type ListTagResourcesResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	NextToken    string       `json:"NextToken" xml:"NextToken"`
+	TagResources TagResources `json:"TagResources" xml:"TagResources"`
+}
+
+// CreateListTagResourcesRequest creates a request to invoke ListTagResources API
+func CreateListTagResourcesRequest() (request *ListTagResourcesRequest) {
+	request = &ListTagResourcesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "ListTagResources", "vpc", "openAPI")
+	return
+}
+
+// CreateListTagResourcesResponse creates a response to parse from ListTagResources response
+func CreateListTagResourcesResponse() (response *ListTagResourcesResponse) {
+	response = &ListTagResourcesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/vpc/modify_bgp_peer_attribute.go

@@ -0,0 +1,111 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyBgpPeerAttribute invokes the vpc.ModifyBgpPeerAttribute API synchronously
+// api document: https://help.aliyun.com/api/vpc/modifybgppeerattribute.html
+func (client *Client) ModifyBgpPeerAttribute(request *ModifyBgpPeerAttributeRequest) (response *ModifyBgpPeerAttributeResponse, err error) {
+	response = CreateModifyBgpPeerAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyBgpPeerAttributeWithChan invokes the vpc.ModifyBgpPeerAttribute API asynchronously
+// api document: https://help.aliyun.com/api/vpc/modifybgppeerattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyBgpPeerAttributeWithChan(request *ModifyBgpPeerAttributeRequest) (<-chan *ModifyBgpPeerAttributeResponse, <-chan error) {
+	responseChan := make(chan *ModifyBgpPeerAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyBgpPeerAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyBgpPeerAttributeWithCallback invokes the vpc.ModifyBgpPeerAttribute API asynchronously
+// api document: https://help.aliyun.com/api/vpc/modifybgppeerattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyBgpPeerAttributeWithCallback(request *ModifyBgpPeerAttributeRequest, callback func(response *ModifyBgpPeerAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyBgpPeerAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyBgpPeerAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyBgpPeerAttributeRequest is the request struct for api ModifyBgpPeerAttribute
+type ModifyBgpPeerAttributeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	EnableBfd            requests.Boolean `position:"Query" name:"EnableBfd"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ClientToken          string           `position:"Query" name:"ClientToken"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	BgpGroupId           string           `position:"Query" name:"BgpGroupId"`
+	BgpPeerId            string           `position:"Query" name:"BgpPeerId"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	PeerIpAddress        string           `position:"Query" name:"PeerIpAddress"`
+}
+
+// ModifyBgpPeerAttributeResponse is the response struct for api ModifyBgpPeerAttribute
+type ModifyBgpPeerAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyBgpPeerAttributeRequest creates a request to invoke ModifyBgpPeerAttribute API
+func CreateModifyBgpPeerAttributeRequest() (request *ModifyBgpPeerAttributeRequest) {
+	request = &ModifyBgpPeerAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "ModifyBgpPeerAttribute", "vpc", "openAPI")
+	return
+}
+
+// CreateModifyBgpPeerAttributeResponse creates a response to parse from ModifyBgpPeerAttribute response
+func CreateModifyBgpPeerAttributeResponse() (response *ModifyBgpPeerAttributeResponse) {
+	response = &ModifyBgpPeerAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/vpc/modify_express_cloud_connection_attribute.go

@@ -0,0 +1,109 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyExpressCloudConnectionAttribute invokes the vpc.ModifyExpressCloudConnectionAttribute API synchronously
+// api document: https://help.aliyun.com/api/vpc/modifyexpresscloudconnectionattribute.html
+func (client *Client) ModifyExpressCloudConnectionAttribute(request *ModifyExpressCloudConnectionAttributeRequest) (response *ModifyExpressCloudConnectionAttributeResponse, err error) {
+	response = CreateModifyExpressCloudConnectionAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyExpressCloudConnectionAttributeWithChan invokes the vpc.ModifyExpressCloudConnectionAttribute API asynchronously
+// api document: https://help.aliyun.com/api/vpc/modifyexpresscloudconnectionattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyExpressCloudConnectionAttributeWithChan(request *ModifyExpressCloudConnectionAttributeRequest) (<-chan *ModifyExpressCloudConnectionAttributeResponse, <-chan error) {
+	responseChan := make(chan *ModifyExpressCloudConnectionAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyExpressCloudConnectionAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyExpressCloudConnectionAttributeWithCallback invokes the vpc.ModifyExpressCloudConnectionAttribute API asynchronously
+// api document: https://help.aliyun.com/api/vpc/modifyexpresscloudconnectionattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyExpressCloudConnectionAttributeWithCallback(request *ModifyExpressCloudConnectionAttributeRequest, callback func(response *ModifyExpressCloudConnectionAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyExpressCloudConnectionAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyExpressCloudConnectionAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyExpressCloudConnectionAttributeRequest is the request struct for api ModifyExpressCloudConnectionAttribute
+type ModifyExpressCloudConnectionAttributeRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	Name                 string           `position:"Query" name:"Name"`
+	Description          string           `position:"Query" name:"Description"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	EccId                string           `position:"Query" name:"EccId"`
+}
+
+// ModifyExpressCloudConnectionAttributeResponse is the response struct for api ModifyExpressCloudConnectionAttribute
+type ModifyExpressCloudConnectionAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyExpressCloudConnectionAttributeRequest creates a request to invoke ModifyExpressCloudConnectionAttribute API
+func CreateModifyExpressCloudConnectionAttributeRequest() (request *ModifyExpressCloudConnectionAttributeRequest) {
+	request = &ModifyExpressCloudConnectionAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "ModifyExpressCloudConnectionAttribute", "vpc", "openAPI")
+	return
+}
+
+// CreateModifyExpressCloudConnectionAttributeResponse creates a response to parse from ModifyExpressCloudConnectionAttribute response
+func CreateModifyExpressCloudConnectionAttributeResponse() (response *ModifyExpressCloudConnectionAttributeResponse) {
+	response = &ModifyExpressCloudConnectionAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/vpc/modify_express_cloud_connection_bandwidth.go

@@ -0,0 +1,108 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// ModifyExpressCloudConnectionBandwidth invokes the vpc.ModifyExpressCloudConnectionBandwidth API synchronously
+// api document: https://help.aliyun.com/api/vpc/modifyexpresscloudconnectionbandwidth.html
+func (client *Client) ModifyExpressCloudConnectionBandwidth(request *ModifyExpressCloudConnectionBandwidthRequest) (response *ModifyExpressCloudConnectionBandwidthResponse, err error) {
+	response = CreateModifyExpressCloudConnectionBandwidthResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyExpressCloudConnectionBandwidthWithChan invokes the vpc.ModifyExpressCloudConnectionBandwidth API asynchronously
+// api document: https://help.aliyun.com/api/vpc/modifyexpresscloudconnectionbandwidth.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyExpressCloudConnectionBandwidthWithChan(request *ModifyExpressCloudConnectionBandwidthRequest) (<-chan *ModifyExpressCloudConnectionBandwidthResponse, <-chan error) {
+	responseChan := make(chan *ModifyExpressCloudConnectionBandwidthResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyExpressCloudConnectionBandwidth(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyExpressCloudConnectionBandwidthWithCallback invokes the vpc.ModifyExpressCloudConnectionBandwidth API asynchronously
+// api document: https://help.aliyun.com/api/vpc/modifyexpresscloudconnectionbandwidth.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyExpressCloudConnectionBandwidthWithCallback(request *ModifyExpressCloudConnectionBandwidthRequest, callback func(response *ModifyExpressCloudConnectionBandwidthResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyExpressCloudConnectionBandwidthResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyExpressCloudConnectionBandwidth(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyExpressCloudConnectionBandwidthRequest is the request struct for api ModifyExpressCloudConnectionBandwidth
+type ModifyExpressCloudConnectionBandwidthRequest struct {
+	*requests.RpcRequest
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	Bandwidth            string           `position:"Query" name:"Bandwidth"`
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	EccId                string           `position:"Query" name:"EccId"`
+}
+
+// ModifyExpressCloudConnectionBandwidthResponse is the response struct for api ModifyExpressCloudConnectionBandwidth
+type ModifyExpressCloudConnectionBandwidthResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyExpressCloudConnectionBandwidthRequest creates a request to invoke ModifyExpressCloudConnectionBandwidth API
+func CreateModifyExpressCloudConnectionBandwidthRequest() (request *ModifyExpressCloudConnectionBandwidthRequest) {
+	request = &ModifyExpressCloudConnectionBandwidthRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "ModifyExpressCloudConnectionBandwidth", "vpc", "openAPI")
+	return
+}
+
+// CreateModifyExpressCloudConnectionBandwidthResponse creates a response to parse from ModifyExpressCloudConnectionBandwidth response
+func CreateModifyExpressCloudConnectionBandwidthResponse() (response *ModifyExpressCloudConnectionBandwidthResponse) {
+	response = &ModifyExpressCloudConnectionBandwidthResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/vpc/modify_ha_vip_attribute.go

@@ -81,6 +81,7 @@ type ModifyHaVipAttributeRequest struct {
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	ClientToken          string           `position:"Query" name:"ClientToken"`
 	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	Name                 string           `position:"Query" name:"Name"`
 	Description          string           `position:"Query" name:"Description"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 }

+ 3 - 0
services/vpc/modify_virtual_border_router_attribute.go

@@ -86,10 +86,13 @@ type ModifyVirtualBorderRouterAttributeRequest struct {
 	Description                   string           `position:"Query" name:"Description"`
 	VbrId                         string           `position:"Query" name:"VbrId"`
 	OwnerId                       requests.Integer `position:"Query" name:"OwnerId"`
+	MinRxInterval                 requests.Integer `position:"Query" name:"MinRxInterval"`
 	PeerGatewayIp                 string           `position:"Query" name:"PeerGatewayIp"`
+	DetectMultiplier              requests.Integer `position:"Query" name:"DetectMultiplier"`
 	PeeringSubnetMask             string           `position:"Query" name:"PeeringSubnetMask"`
 	Name                          string           `position:"Query" name:"Name"`
 	LocalGatewayIp                string           `position:"Query" name:"LocalGatewayIp"`
+	MinTxInterval                 requests.Integer `position:"Query" name:"MinTxInterval"`
 }
 
 // ModifyVirtualBorderRouterAttributeResponse is the response struct for api ModifyVirtualBorderRouterAttribute

+ 1 - 0
services/vpc/modify_vpn_pbr_route_entry_weight.go

@@ -87,6 +87,7 @@ type ModifyVpnPbrRouteEntryWeightRequest struct {
 	NewWeight            requests.Integer `position:"Query" name:"NewWeight"`
 	RouteDest            string           `position:"Query" name:"RouteDest"`
 	NextHop              string           `position:"Query" name:"NextHop"`
+	OverlayMode          string           `position:"Query" name:"OverlayMode"`
 }
 
 // ModifyVpnPbrRouteEntryWeightResponse is the response struct for api ModifyVpnPbrRouteEntryWeight

+ 1 - 0
services/vpc/modify_vpn_route_entry_weight.go

@@ -86,6 +86,7 @@ type ModifyVpnRouteEntryWeightRequest struct {
 	NewWeight            requests.Integer `position:"Query" name:"NewWeight"`
 	RouteDest            string           `position:"Query" name:"RouteDest"`
 	NextHop              string           `position:"Query" name:"NextHop"`
+	OverlayMode          string           `position:"Query" name:"OverlayMode"`
 }
 
 // ModifyVpnRouteEntryWeightResponse is the response struct for api ModifyVpnRouteEntryWeight

+ 1 - 0
services/vpc/struct_bgp_peer.go

@@ -33,4 +33,5 @@ type BgpPeer struct {
 	IsFake        string `json:"IsFake" xml:"IsFake"`
 	RouteLimit    string `json:"RouteLimit" xml:"RouteLimit"`
 	RegionId      string `json:"RegionId" xml:"RegionId"`
+	EnableBfd     bool   `json:"EnableBfd" xml:"EnableBfd"`
 }

+ 21 - 0
services/vpc/struct_data.go

@@ -0,0 +1,21 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// Data is a nested struct in vpc response
+type Data struct {
+	Logs []string `json:"Logs" xml:"Logs"`
+}

+ 23 - 0
services/vpc/struct_eip_info.go

@@ -0,0 +1,23 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// EipInfo is a nested struct in vpc response
+type EipInfo struct {
+	Ip     string `json:"Ip" xml:"Ip"`
+	IpGw   string `json:"IpGw" xml:"IpGw"`
+	IpMask string `json:"IpMask" xml:"IpMask"`
+}

+ 21 - 0
services/vpc/struct_eip_infos.go

@@ -0,0 +1,21 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// EipInfos is a nested struct in vpc response
+type EipInfos struct {
+	EipInfo []EipInfo `json:"EipInfo" xml:"EipInfo"`
+}

+ 21 - 0
services/vpc/struct_express_cloud_connection_set.go

@@ -0,0 +1,21 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ExpressCloudConnectionSet is a nested struct in vpc response
+type ExpressCloudConnectionSet struct {
+	ExpressCloudConnectionType []ExpressCloudConnectionType `json:"ExpressCloudConnectionType" xml:"ExpressCloudConnectionType"`
+}

+ 52 - 0
services/vpc/struct_express_cloud_connection_type.go

@@ -0,0 +1,52 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// ExpressCloudConnectionType is a nested struct in vpc response
+type ExpressCloudConnectionType struct {
+	InstanceId                    string                    `json:"InstanceId" xml:"InstanceId"`
+	Status                        string                    `json:"Status" xml:"Status"`
+	Name                          string                    `json:"Name" xml:"Name"`
+	Description                   string                    `json:"Description" xml:"Description"`
+	GmtCreate                     string                    `json:"GmtCreate" xml:"GmtCreate"`
+	GmtModify                     string                    `json:"GmtModify" xml:"GmtModify"`
+	PeerCity                      string                    `json:"PeerCity" xml:"PeerCity"`
+	PeerLocation                  string                    `json:"PeerLocation" xml:"PeerLocation"`
+	PortType                      string                    `json:"PortType" xml:"PortType"`
+	Bandwidth                     int                       `json:"Bandwidth" xml:"Bandwidth"`
+	Distance                      int                       `json:"Distance" xml:"Distance"`
+	RedundantEccId                string                    `json:"RedundantEccId" xml:"RedundantEccId"`
+	CircuitCode                   string                    `json:"CircuitCode" xml:"CircuitCode"`
+	Isp                           string                    `json:"Isp" xml:"Isp"`
+	Type                          string                    `json:"Type" xml:"Type"`
+	IdcSP                         string                    `json:"IdcSP" xml:"IdcSP"`
+	BusinessStatus                string                    `json:"BusinessStatus" xml:"BusinessStatus"`
+	HasReservationData            string                    `json:"HasReservationData" xml:"HasReservationData"`
+	ReservationBandwidth          string                    `json:"ReservationBandwidth" xml:"ReservationBandwidth"`
+	ReservationInternetChargeType string                    `json:"ReservationInternetChargeType" xml:"ReservationInternetChargeType"`
+	ReservationActiveTime         string                    `json:"ReservationActiveTime" xml:"ReservationActiveTime"`
+	ReservationOrderType          string                    `json:"ReservationOrderType" xml:"ReservationOrderType"`
+	ApplicationType               string                    `json:"ApplicationType" xml:"ApplicationType"`
+	ApplicationId                 string                    `json:"ApplicationId" xml:"ApplicationId"`
+	ApplicationStatus             string                    `json:"ApplicationStatus" xml:"ApplicationStatus"`
+	ApplicationBandwidth          string                    `json:"ApplicationBandwidth" xml:"ApplicationBandwidth"`
+	ContactTel                    string                    `json:"ContactTel" xml:"ContactTel"`
+	ContactMail                   string                    `json:"ContactMail" xml:"ContactMail"`
+	IDCardNo                      string                    `json:"IDCardNo" xml:"IDCardNo"`
+	EndTime                       string                    `json:"EndTime" xml:"EndTime"`
+	ChargeType                    string                    `json:"ChargeType" xml:"ChargeType"`
+	VirtualBorderRouterModels     VirtualBorderRouterModels `json:"VirtualBorderRouterModels" xml:"VirtualBorderRouterModels"`
+}

+ 2 - 0
services/vpc/struct_ha_vip.go

@@ -25,6 +25,8 @@ type HaVip struct {
 	Status                 string                 `json:"Status" xml:"Status"`
 	MasterInstanceId       string                 `json:"MasterInstanceId" xml:"MasterInstanceId"`
 	Description            string                 `json:"Description" xml:"Description"`
+	Name                   string                 `json:"Name" xml:"Name"`
+	ChargeType             string                 `json:"ChargeType" xml:"ChargeType"`
 	CreateTime             string                 `json:"CreateTime" xml:"CreateTime"`
 	AssociatedInstances    AssociatedInstances    `json:"AssociatedInstances" xml:"AssociatedInstances"`
 	AssociatedEipAddresses AssociatedEipAddresses `json:"AssociatedEipAddresses" xml:"AssociatedEipAddresses"`

+ 2 - 0
services/vpc/struct_route_entry.go

@@ -23,6 +23,8 @@ type RouteEntry struct {
 	Status                   string   `json:"Status" xml:"Status"`
 	InstanceId               string   `json:"InstanceId" xml:"InstanceId"`
 	NextHopType              string   `json:"NextHopType" xml:"NextHopType"`
+	RouteEntryName           string   `json:"RouteEntryName" xml:"RouteEntryName"`
+	RouteEntryId             string   `json:"RouteEntryId" xml:"RouteEntryId"`
 	NextHopRegionId          string   `json:"NextHopRegionId" xml:"NextHopRegionId"`
 	NextHopOppsiteType       string   `json:"NextHopOppsiteType" xml:"NextHopOppsiteType"`
 	NextHopOppsiteInstanceId string   `json:"NextHopOppsiteInstanceId" xml:"NextHopOppsiteInstanceId"`

+ 24 - 0
services/vpc/struct_tag_resource.go

@@ -0,0 +1,24 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// TagResource is a nested struct in vpc response
+type TagResource struct {
+	TagKey       string `json:"TagKey" xml:"TagKey"`
+	TagValue     string `json:"TagValue" xml:"TagValue"`
+	ResourcId    string `json:"ResourcId" xml:"ResourcId"`
+	ResourceType string `json:"ResourceType" xml:"ResourceType"`
+}

+ 21 - 0
services/vpc/struct_tag_resources.go

@@ -0,0 +1,21 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// TagResources is a nested struct in vpc response
+type TagResources struct {
+	TagResource []TagResource `json:"TagResource" xml:"TagResource"`
+}

+ 3 - 0
services/vpc/struct_virtual_border_router_for_physical_connection_type.go

@@ -19,11 +19,14 @@ package vpc
 type VirtualBorderRouterForPhysicalConnectionType struct {
 	VbrId             string `json:"VbrId" xml:"VbrId"`
 	VbrOwnerUid       int64  `json:"VbrOwnerUid" xml:"VbrOwnerUid"`
+	EccId             string `json:"EccId" xml:"EccId"`
+	Type              string `json:"Type" xml:"Type"`
 	CreationTime      string `json:"CreationTime" xml:"CreationTime"`
 	ActivationTime    string `json:"ActivationTime" xml:"ActivationTime"`
 	TerminationTime   string `json:"TerminationTime" xml:"TerminationTime"`
 	RecoveryTime      string `json:"RecoveryTime" xml:"RecoveryTime"`
 	VlanId            int    `json:"VlanId" xml:"VlanId"`
+	Status            string `json:"Status" xml:"Status"`
 	CircuitCode       string `json:"CircuitCode" xml:"CircuitCode"`
 	LocalGatewayIp    string `json:"LocalGatewayIp" xml:"LocalGatewayIp"`
 	PeerGatewayIp     string `json:"PeerGatewayIp" xml:"PeerGatewayIp"`

+ 23 - 0
services/vpc/struct_virtual_border_router_model.go

@@ -0,0 +1,23 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// VirtualBorderRouterModel is a nested struct in vpc response
+type VirtualBorderRouterModel struct {
+	InstanceId           string `json:"InstanceId" xml:"InstanceId"`
+	AccessPointId        string `json:"AccessPointId" xml:"AccessPointId"`
+	PhysicalConnectionId string `json:"PhysicalConnectionId" xml:"PhysicalConnectionId"`
+}

+ 21 - 0
services/vpc/struct_virtual_border_router_models.go

@@ -0,0 +1,21 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+// VirtualBorderRouterModels is a nested struct in vpc response
+type VirtualBorderRouterModels struct {
+	VirtualBorderRouterModel []VirtualBorderRouterModel `json:"VirtualBorderRouterModel" xml:"VirtualBorderRouterModel"`
+}

+ 5 - 0
services/vpc/struct_virtual_border_router_type.go

@@ -37,6 +37,11 @@ type VirtualBorderRouterType struct {
 	AccessPointId                    string                                       `json:"AccessPointId" xml:"AccessPointId"`
 	Name                             string                                       `json:"Name" xml:"Name"`
 	Description                      string                                       `json:"Description" xml:"Description"`
+	EccId                            string                                       `json:"EccId" xml:"EccId"`
+	Type                             string                                       `json:"Type" xml:"Type"`
+	MinTxInterval                    int64                                        `json:"MinTxInterval" xml:"MinTxInterval"`
+	MinRxInterval                    int64                                        `json:"MinRxInterval" xml:"MinRxInterval"`
+	DetectMultiplier                 int64                                        `json:"DetectMultiplier" xml:"DetectMultiplier"`
 	AssociatedPhysicalConnections    AssociatedPhysicalConnections                `json:"AssociatedPhysicalConnections" xml:"AssociatedPhysicalConnections"`
 	AssociatedCens                   AssociatedCensInDescribeVirtualBorderRouters `json:"AssociatedCens" xml:"AssociatedCens"`
 }

+ 1 - 0
services/vpc/struct_vpc.go

@@ -29,6 +29,7 @@ type Vpc struct {
 	IsDefault       bool                     `json:"IsDefault" xml:"IsDefault"`
 	NetworkAclNum   string                   `json:"NetworkAclNum" xml:"NetworkAclNum"`
 	ResourceGroupId string                   `json:"ResourceGroupId" xml:"ResourceGroupId"`
+	CenStatus       string                   `json:"CenStatus" xml:"CenStatus"`
 	VSwitchIds      VSwitchIdsInDescribeVpcs `json:"VSwitchIds" xml:"VSwitchIds"`
 	UserCidrs       UserCidrsInDescribeVpcs  `json:"UserCidrs" xml:"UserCidrs"`
 	NatGatewayIds   NatGatewayIds            `json:"NatGatewayIds" xml:"NatGatewayIds"`

+ 111 - 0
services/vpc/tag_resources.go

@@ -0,0 +1,111 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// TagResources invokes the vpc.TagResources API synchronously
+// api document: https://help.aliyun.com/api/vpc/tagresources.html
+func (client *Client) TagResources(request *TagResourcesRequest) (response *TagResourcesResponse, err error) {
+	response = CreateTagResourcesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// TagResourcesWithChan invokes the vpc.TagResources API asynchronously
+// api document: https://help.aliyun.com/api/vpc/tagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TagResourcesWithChan(request *TagResourcesRequest) (<-chan *TagResourcesResponse, <-chan error) {
+	responseChan := make(chan *TagResourcesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.TagResources(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// TagResourcesWithCallback invokes the vpc.TagResources API asynchronously
+// api document: https://help.aliyun.com/api/vpc/tagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) TagResourcesWithCallback(request *TagResourcesRequest, callback func(response *TagResourcesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *TagResourcesResponse
+		var err error
+		defer close(result)
+		response, err = client.TagResources(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// TagResourcesRequest is the request struct for api TagResources
+type TagResourcesRequest struct {
+	*requests.RpcRequest
+	ResourceId   *[]string          `position:"Query" name:"ResourceId"  type:"Repeated"`
+	Tag          *[]TagResourcesTag `position:"Query" name:"Tag"  type:"Repeated"`
+	ResourceType string             `position:"Query" name:"ResourceType"`
+}
+
+// TagResourcesTag is a repeated param struct in TagResourcesRequest
+type TagResourcesTag struct {
+	Value string `name:"Value"`
+	Key   string `name:"Key"`
+}
+
+// TagResourcesResponse is the response struct for api TagResources
+type TagResourcesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateTagResourcesRequest creates a request to invoke TagResources API
+func CreateTagResourcesRequest() (request *TagResourcesRequest) {
+	request = &TagResourcesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "TagResources", "vpc", "openAPI")
+	return
+}
+
+// CreateTagResourcesResponse creates a response to parse from TagResources response
+func CreateTagResourcesResponse() (response *TagResourcesResponse) {
+	response = &TagResourcesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/vpc/un_tag_resources.go

@@ -0,0 +1,105 @@
+package vpc
+
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+//http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+//
+// Code generated by Alibaba Cloud SDK Code Generator.
+// Changes may cause incorrect behavior and will be lost if the code is regenerated.
+
+import (
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+)
+
+// UnTagResources invokes the vpc.UnTagResources API synchronously
+// api document: https://help.aliyun.com/api/vpc/untagresources.html
+func (client *Client) UnTagResources(request *UnTagResourcesRequest) (response *UnTagResourcesResponse, err error) {
+	response = CreateUnTagResourcesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UnTagResourcesWithChan invokes the vpc.UnTagResources API asynchronously
+// api document: https://help.aliyun.com/api/vpc/untagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnTagResourcesWithChan(request *UnTagResourcesRequest) (<-chan *UnTagResourcesResponse, <-chan error) {
+	responseChan := make(chan *UnTagResourcesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UnTagResources(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UnTagResourcesWithCallback invokes the vpc.UnTagResources API asynchronously
+// api document: https://help.aliyun.com/api/vpc/untagresources.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnTagResourcesWithCallback(request *UnTagResourcesRequest, callback func(response *UnTagResourcesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UnTagResourcesResponse
+		var err error
+		defer close(result)
+		response, err = client.UnTagResources(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UnTagResourcesRequest is the request struct for api UnTagResources
+type UnTagResourcesRequest struct {
+	*requests.RpcRequest
+	ResourceId   *[]string `position:"Query" name:"ResourceId"  type:"Repeated"`
+	TagKey       *[]string `position:"Query" name:"TagKey"  type:"Repeated"`
+	ResourceType string    `position:"Query" name:"ResourceType"`
+}
+
+// UnTagResourcesResponse is the response struct for api UnTagResources
+type UnTagResourcesResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUnTagResourcesRequest creates a request to invoke UnTagResources API
+func CreateUnTagResourcesRequest() (request *UnTagResourcesRequest) {
+	request = &UnTagResourcesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Vpc", "2016-04-28", "UnTagResources", "vpc", "openAPI")
+	return
+}
+
+// CreateUnTagResourcesResponse creates a response to parse from UnTagResources response
+func CreateUnTagResourcesResponse() (response *UnTagResourcesResponse) {
+	response = &UnTagResourcesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}