Browse Source

由风浙发起的CBN SDK自动发布, 版本号:1.4.7

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 7 years ago
parent
commit
168f12fe4f
43 changed files with 3077 additions and 0 deletions
  1. 3 0
      ChangeLog.txt
  2. 108 0
      services/cbn/associate_cen_bandwidth_package.go
  3. 111 0
      services/cbn/attach_cen_child_instance.go
  4. 81 0
      services/cbn/client.go
  5. 110 0
      services/cbn/create_cen.go
  6. 118 0
      services/cbn/create_cen_bandwidth_package.go
  7. 107 0
      services/cbn/delete_cen.go
  8. 107 0
      services/cbn/delete_cen_bandwidth_package.go
  9. 113 0
      services/cbn/describe_cen_attached_child_instances.go
  10. 120 0
      services/cbn/describe_cen_bandwidth_packages.go
  11. 112 0
      services/cbn/describe_cen_geographic_span_remaining_bandwidth.go
  12. 113 0
      services/cbn/describe_cen_inter_region_bandwidth_limits.go
  13. 114 0
      services/cbn/describe_cen_region_domain_route_entries.go
  14. 116 0
      services/cbn/describe_cen_vbr_health_check.go
  15. 119 0
      services/cbn/describe_cens.go
  16. 113 0
      services/cbn/describe_geographic_region_membership.go
  17. 117 0
      services/cbn/describe_route_conflict.go
  18. 112 0
      services/cbn/detach_cen_child_instance.go
  19. 110 0
      services/cbn/disable_cen_vbr_health_check.go
  20. 112 0
      services/cbn/enable_cen_vbr_health_check.go
  21. 109 0
      services/cbn/modify_cen_attribute.go
  22. 109 0
      services/cbn/modify_cen_bandwidth_package_attribute.go
  23. 108 0
      services/cbn/modify_cen_bandwidth_package_spec.go
  24. 110 0
      services/cbn/set_cen_inter_region_bandwidth_limit.go
  25. 26 0
      services/cbn/struct_cen.go
  26. 32 0
      services/cbn/struct_cen_bandwidth_package.go
  27. 21 0
      services/cbn/struct_cen_bandwidth_package_ids.go
  28. 21 0
      services/cbn/struct_cen_bandwidth_packages.go
  29. 21 0
      services/cbn/struct_cen_ids.go
  30. 25 0
      services/cbn/struct_cen_inter_region_bandwidth_limit.go
  31. 21 0
      services/cbn/struct_cen_inter_region_bandwidth_limits.go
  32. 21 0
      services/cbn/struct_cen_route_entries.go
  33. 25 0
      services/cbn/struct_cen_route_entry.go
  34. 21 0
      services/cbn/struct_cens.go
  35. 26 0
      services/cbn/struct_child_instance.go
  36. 21 0
      services/cbn/struct_child_instances.go
  37. 21 0
      services/cbn/struct_region_id.go
  38. 21 0
      services/cbn/struct_region_ids.go
  39. 25 0
      services/cbn/struct_route_conflict.go
  40. 21 0
      services/cbn/struct_route_conflicts.go
  41. 27 0
      services/cbn/struct_vbr_health_check.go
  42. 21 0
      services/cbn/struct_vbr_health_checks.go
  43. 108 0
      services/cbn/unassociate_cen_bandwidth_package.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2018-03-29 Version: 1.4.7
+1, Cloud Enterprise Network SDK initial release.
+
 2018-03-27 Version: 1.4.6
 1, Rename QueryCustomerSaleInfo to RegionName.
 

+ 108 - 0
services/cbn/associate_cen_bandwidth_package.go

@@ -0,0 +1,108 @@
+package cbn
+
+//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"
+)
+
+// AssociateCenBandwidthPackage invokes the cbn.AssociateCenBandwidthPackage API synchronously
+// api document: https://help.aliyun.com/api/cbn/associatecenbandwidthpackage.html
+func (client *Client) AssociateCenBandwidthPackage(request *AssociateCenBandwidthPackageRequest) (response *AssociateCenBandwidthPackageResponse, err error) {
+	response = CreateAssociateCenBandwidthPackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AssociateCenBandwidthPackageWithChan invokes the cbn.AssociateCenBandwidthPackage API asynchronously
+// api document: https://help.aliyun.com/api/cbn/associatecenbandwidthpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AssociateCenBandwidthPackageWithChan(request *AssociateCenBandwidthPackageRequest) (<-chan *AssociateCenBandwidthPackageResponse, <-chan error) {
+	responseChan := make(chan *AssociateCenBandwidthPackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AssociateCenBandwidthPackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AssociateCenBandwidthPackageWithCallback invokes the cbn.AssociateCenBandwidthPackage API asynchronously
+// api document: https://help.aliyun.com/api/cbn/associatecenbandwidthpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AssociateCenBandwidthPackageWithCallback(request *AssociateCenBandwidthPackageRequest, callback func(response *AssociateCenBandwidthPackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AssociateCenBandwidthPackageResponse
+		var err error
+		defer close(result)
+		response, err = client.AssociateCenBandwidthPackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AssociateCenBandwidthPackageRequest is the request struct for api AssociateCenBandwidthPackage
+type AssociateCenBandwidthPackageRequest struct {
+	*requests.RpcRequest
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                 string           `position:"Query" name:"CenId"`
+	CenBandwidthPackageId string           `position:"Query" name:"CenBandwidthPackageId"`
+}
+
+// AssociateCenBandwidthPackageResponse is the response struct for api AssociateCenBandwidthPackage
+type AssociateCenBandwidthPackageResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAssociateCenBandwidthPackageRequest creates a request to invoke AssociateCenBandwidthPackage API
+func CreateAssociateCenBandwidthPackageRequest() (request *AssociateCenBandwidthPackageRequest) {
+	request = &AssociateCenBandwidthPackageRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "AssociateCenBandwidthPackage", "cbn", "openAPI")
+	return
+}
+
+// CreateAssociateCenBandwidthPackageResponse creates a response to parse from AssociateCenBandwidthPackage response
+func CreateAssociateCenBandwidthPackageResponse() (response *AssociateCenBandwidthPackageResponse) {
+	response = &AssociateCenBandwidthPackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/cbn/attach_cen_child_instance.go

@@ -0,0 +1,111 @@
+package cbn
+
+//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"
+)
+
+// AttachCenChildInstance invokes the cbn.AttachCenChildInstance API synchronously
+// api document: https://help.aliyun.com/api/cbn/attachcenchildinstance.html
+func (client *Client) AttachCenChildInstance(request *AttachCenChildInstanceRequest) (response *AttachCenChildInstanceResponse, err error) {
+	response = CreateAttachCenChildInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AttachCenChildInstanceWithChan invokes the cbn.AttachCenChildInstance API asynchronously
+// api document: https://help.aliyun.com/api/cbn/attachcenchildinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AttachCenChildInstanceWithChan(request *AttachCenChildInstanceRequest) (<-chan *AttachCenChildInstanceResponse, <-chan error) {
+	responseChan := make(chan *AttachCenChildInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AttachCenChildInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AttachCenChildInstanceWithCallback invokes the cbn.AttachCenChildInstance API asynchronously
+// api document: https://help.aliyun.com/api/cbn/attachcenchildinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AttachCenChildInstanceWithCallback(request *AttachCenChildInstanceRequest, callback func(response *AttachCenChildInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AttachCenChildInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.AttachCenChildInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AttachCenChildInstanceRequest is the request struct for api AttachCenChildInstance
+type AttachCenChildInstanceRequest struct {
+	*requests.RpcRequest
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                 string           `position:"Query" name:"CenId"`
+	ChildInstanceId       string           `position:"Query" name:"ChildInstanceId"`
+	ChildInstanceType     string           `position:"Query" name:"ChildInstanceType"`
+	ChildInstanceRegionId string           `position:"Query" name:"ChildInstanceRegionId"`
+	ChildInstanceOwnerId  requests.Integer `position:"Query" name:"ChildInstanceOwnerId"`
+}
+
+// AttachCenChildInstanceResponse is the response struct for api AttachCenChildInstance
+type AttachCenChildInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAttachCenChildInstanceRequest creates a request to invoke AttachCenChildInstance API
+func CreateAttachCenChildInstanceRequest() (request *AttachCenChildInstanceRequest) {
+	request = &AttachCenChildInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "AttachCenChildInstance", "cbn", "openAPI")
+	return
+}
+
+// CreateAttachCenChildInstanceResponse creates a response to parse from AttachCenChildInstance response
+func CreateAttachCenChildInstanceResponse() (response *AttachCenChildInstanceResponse) {
+	response = &AttachCenChildInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 81 - 0
services/cbn/client.go

@@ -0,0 +1,81 @@
+package cbn
+
+//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"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
+)
+
+// Client is the sdk client struct, each func corresponds to an OpenAPI
+type Client struct {
+	sdk.Client
+}
+
+// NewClient creates a sdk client with environment variables
+func NewClient() (client *Client, err error) {
+	client = &Client{}
+	err = client.Init()
+	return
+}
+
+// NewClientWithOptions creates a sdk client with regionId/sdkConfig/credential
+// this is the common api to create a sdk client
+func NewClientWithOptions(regionId string, config *sdk.Config, credential auth.Credential) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithOptions(regionId, config, credential)
+	return
+}
+
+// NewClientWithAccessKey is a shortcut to create sdk client with accesskey
+// usage: https://help.aliyun.com/document_detail/66217.html
+func NewClientWithAccessKey(regionId, accessKeyId, accessKeySecret string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithAccessKey(regionId, accessKeyId, accessKeySecret)
+	return
+}
+
+// NewClientWithStsToken is a shortcut to create sdk client with sts token
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithStsToken(regionId, stsAccessKeyId, stsAccessKeySecret, stsToken)
+	return
+}
+
+// NewClientWithRamRoleArn is a shortcut to create sdk client with ram roleArn
+// usage: https://help.aliyun.com/document_detail/66222.html
+func NewClientWithRamRoleArn(regionId string, accessKeyId, accessKeySecret, roleArn, roleSessionName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRamRoleArn(regionId, accessKeyId, accessKeySecret, roleArn, roleSessionName)
+	return
+}
+
+// NewClientWithEcsRamRole is a shortcut to create sdk client with ecs ram role
+// usage: https://help.aliyun.com/document_detail/66223.html
+func NewClientWithEcsRamRole(regionId string, roleName string) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithEcsRamRole(regionId, roleName)
+	return
+}
+
+// NewClientWithRsaKeyPair is a shortcut to create sdk client with rsa key pair
+// attention: rsa key pair auth is only Japan regions available
+func NewClientWithRsaKeyPair(regionId string, publicKeyId, privateKey string, sessionExpiration int) (client *Client, err error) {
+	client = &Client{}
+	err = client.InitWithRsaKeyPair(regionId, publicKeyId, privateKey, sessionExpiration)
+	return
+}

+ 110 - 0
services/cbn/create_cen.go

@@ -0,0 +1,110 @@
+package cbn
+
+//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"
+)
+
+// CreateCen invokes the cbn.CreateCen API synchronously
+// api document: https://help.aliyun.com/api/cbn/createcen.html
+func (client *Client) CreateCen(request *CreateCenRequest) (response *CreateCenResponse, err error) {
+	response = CreateCreateCenResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCenWithChan invokes the cbn.CreateCen API asynchronously
+// api document: https://help.aliyun.com/api/cbn/createcen.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCenWithChan(request *CreateCenRequest) (<-chan *CreateCenResponse, <-chan error) {
+	responseChan := make(chan *CreateCenResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCen(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCenWithCallback invokes the cbn.CreateCen API asynchronously
+// api document: https://help.aliyun.com/api/cbn/createcen.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCenWithCallback(request *CreateCenRequest, callback func(response *CreateCenResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCenResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCen(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCenRequest is the request struct for api CreateCen
+type CreateCenRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ClientToken          string           `position:"Query" name:"ClientToken"`
+	Name                 string           `position:"Query" name:"Name"`
+	Description          string           `position:"Query" name:"Description"`
+}
+
+// CreateCenResponse is the response struct for api CreateCen
+type CreateCenResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	CenId     string `json:"CenId" xml:"CenId"`
+}
+
+// CreateCreateCenRequest creates a request to invoke CreateCen API
+func CreateCreateCenRequest() (request *CreateCenRequest) {
+	request = &CreateCenRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "CreateCen", "cbn", "openAPI")
+	return
+}
+
+// CreateCreateCenResponse creates a response to parse from CreateCen response
+func CreateCreateCenResponse() (response *CreateCenResponse) {
+	response = &CreateCenResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 118 - 0
services/cbn/create_cen_bandwidth_package.go

@@ -0,0 +1,118 @@
+package cbn
+
+//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"
+)
+
+// CreateCenBandwidthPackage invokes the cbn.CreateCenBandwidthPackage API synchronously
+// api document: https://help.aliyun.com/api/cbn/createcenbandwidthpackage.html
+func (client *Client) CreateCenBandwidthPackage(request *CreateCenBandwidthPackageRequest) (response *CreateCenBandwidthPackageResponse, err error) {
+	response = CreateCreateCenBandwidthPackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateCenBandwidthPackageWithChan invokes the cbn.CreateCenBandwidthPackage API asynchronously
+// api document: https://help.aliyun.com/api/cbn/createcenbandwidthpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCenBandwidthPackageWithChan(request *CreateCenBandwidthPackageRequest) (<-chan *CreateCenBandwidthPackageResponse, <-chan error) {
+	responseChan := make(chan *CreateCenBandwidthPackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateCenBandwidthPackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateCenBandwidthPackageWithCallback invokes the cbn.CreateCenBandwidthPackage API asynchronously
+// api document: https://help.aliyun.com/api/cbn/createcenbandwidthpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateCenBandwidthPackageWithCallback(request *CreateCenBandwidthPackageRequest, callback func(response *CreateCenBandwidthPackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateCenBandwidthPackageResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateCenBandwidthPackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateCenBandwidthPackageRequest is the request struct for api CreateCenBandwidthPackage
+type CreateCenBandwidthPackageRequest struct {
+	*requests.RpcRequest
+	OwnerAccount               string           `position:"Query" name:"OwnerAccount"`
+	OwnerId                    requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount       string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId            requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	ClientToken                string           `position:"Query" name:"ClientToken"`
+	Name                       string           `position:"Query" name:"Name"`
+	Description                string           `position:"Query" name:"Description"`
+	Bandwidth                  requests.Integer `position:"Query" name:"Bandwidth"`
+	GeographicRegionAId        string           `position:"Query" name:"GeographicRegionAId"`
+	GeographicRegionBId        string           `position:"Query" name:"GeographicRegionBId"`
+	BandwidthPackageChargeType string           `position:"Query" name:"BandwidthPackageChargeType"`
+	Period                     requests.Integer `position:"Query" name:"Period"`
+	PricingCycle               string           `position:"Query" name:"PricingCycle"`
+	AutoPay                    requests.Boolean `position:"Query" name:"AutoPay"`
+}
+
+// CreateCenBandwidthPackageResponse is the response struct for api CreateCenBandwidthPackage
+type CreateCenBandwidthPackageResponse struct {
+	*responses.BaseResponse
+	RequestId                  string `json:"RequestId" xml:"RequestId"`
+	CenBandwidthPackageId      string `json:"CenBandwidthPackageId" xml:"CenBandwidthPackageId"`
+	CenBandwidthPackageOrderId string `json:"CenBandwidthPackageOrderId" xml:"CenBandwidthPackageOrderId"`
+}
+
+// CreateCreateCenBandwidthPackageRequest creates a request to invoke CreateCenBandwidthPackage API
+func CreateCreateCenBandwidthPackageRequest() (request *CreateCenBandwidthPackageRequest) {
+	request = &CreateCenBandwidthPackageRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "CreateCenBandwidthPackage", "cbn", "openAPI")
+	return
+}
+
+// CreateCreateCenBandwidthPackageResponse creates a response to parse from CreateCenBandwidthPackage response
+func CreateCreateCenBandwidthPackageResponse() (response *CreateCenBandwidthPackageResponse) {
+	response = &CreateCenBandwidthPackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cbn/delete_cen.go

@@ -0,0 +1,107 @@
+package cbn
+
+//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"
+)
+
+// DeleteCen invokes the cbn.DeleteCen API synchronously
+// api document: https://help.aliyun.com/api/cbn/deletecen.html
+func (client *Client) DeleteCen(request *DeleteCenRequest) (response *DeleteCenResponse, err error) {
+	response = CreateDeleteCenResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteCenWithChan invokes the cbn.DeleteCen API asynchronously
+// api document: https://help.aliyun.com/api/cbn/deletecen.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCenWithChan(request *DeleteCenRequest) (<-chan *DeleteCenResponse, <-chan error) {
+	responseChan := make(chan *DeleteCenResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteCen(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteCenWithCallback invokes the cbn.DeleteCen API asynchronously
+// api document: https://help.aliyun.com/api/cbn/deletecen.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCenWithCallback(request *DeleteCenRequest, callback func(response *DeleteCenResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteCenResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteCen(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteCenRequest is the request struct for api DeleteCen
+type DeleteCenRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                string           `position:"Query" name:"CenId"`
+}
+
+// DeleteCenResponse is the response struct for api DeleteCen
+type DeleteCenResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteCenRequest creates a request to invoke DeleteCen API
+func CreateDeleteCenRequest() (request *DeleteCenRequest) {
+	request = &DeleteCenRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DeleteCen", "cbn", "openAPI")
+	return
+}
+
+// CreateDeleteCenResponse creates a response to parse from DeleteCen response
+func CreateDeleteCenResponse() (response *DeleteCenResponse) {
+	response = &DeleteCenResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/cbn/delete_cen_bandwidth_package.go

@@ -0,0 +1,107 @@
+package cbn
+
+//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"
+)
+
+// DeleteCenBandwidthPackage invokes the cbn.DeleteCenBandwidthPackage API synchronously
+// api document: https://help.aliyun.com/api/cbn/deletecenbandwidthpackage.html
+func (client *Client) DeleteCenBandwidthPackage(request *DeleteCenBandwidthPackageRequest) (response *DeleteCenBandwidthPackageResponse, err error) {
+	response = CreateDeleteCenBandwidthPackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteCenBandwidthPackageWithChan invokes the cbn.DeleteCenBandwidthPackage API asynchronously
+// api document: https://help.aliyun.com/api/cbn/deletecenbandwidthpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCenBandwidthPackageWithChan(request *DeleteCenBandwidthPackageRequest) (<-chan *DeleteCenBandwidthPackageResponse, <-chan error) {
+	responseChan := make(chan *DeleteCenBandwidthPackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteCenBandwidthPackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteCenBandwidthPackageWithCallback invokes the cbn.DeleteCenBandwidthPackage API asynchronously
+// api document: https://help.aliyun.com/api/cbn/deletecenbandwidthpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteCenBandwidthPackageWithCallback(request *DeleteCenBandwidthPackageRequest, callback func(response *DeleteCenBandwidthPackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteCenBandwidthPackageResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteCenBandwidthPackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteCenBandwidthPackageRequest is the request struct for api DeleteCenBandwidthPackage
+type DeleteCenBandwidthPackageRequest struct {
+	*requests.RpcRequest
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenBandwidthPackageId string           `position:"Query" name:"CenBandwidthPackageId"`
+}
+
+// DeleteCenBandwidthPackageResponse is the response struct for api DeleteCenBandwidthPackage
+type DeleteCenBandwidthPackageResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteCenBandwidthPackageRequest creates a request to invoke DeleteCenBandwidthPackage API
+func CreateDeleteCenBandwidthPackageRequest() (request *DeleteCenBandwidthPackageRequest) {
+	request = &DeleteCenBandwidthPackageRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DeleteCenBandwidthPackage", "cbn", "openAPI")
+	return
+}
+
+// CreateDeleteCenBandwidthPackageResponse creates a response to parse from DeleteCenBandwidthPackage response
+func CreateDeleteCenBandwidthPackageResponse() (response *DeleteCenBandwidthPackageResponse) {
+	response = &DeleteCenBandwidthPackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/cbn/describe_cen_attached_child_instances.go

@@ -0,0 +1,113 @@
+package cbn
+
+//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"
+)
+
+// DescribeCenAttachedChildInstances invokes the cbn.DescribeCenAttachedChildInstances API synchronously
+// api document: https://help.aliyun.com/api/cbn/describecenattachedchildinstances.html
+func (client *Client) DescribeCenAttachedChildInstances(request *DescribeCenAttachedChildInstancesRequest) (response *DescribeCenAttachedChildInstancesResponse, err error) {
+	response = CreateDescribeCenAttachedChildInstancesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCenAttachedChildInstancesWithChan invokes the cbn.DescribeCenAttachedChildInstances API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecenattachedchildinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenAttachedChildInstancesWithChan(request *DescribeCenAttachedChildInstancesRequest) (<-chan *DescribeCenAttachedChildInstancesResponse, <-chan error) {
+	responseChan := make(chan *DescribeCenAttachedChildInstancesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCenAttachedChildInstances(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCenAttachedChildInstancesWithCallback invokes the cbn.DescribeCenAttachedChildInstances API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecenattachedchildinstances.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenAttachedChildInstancesWithCallback(request *DescribeCenAttachedChildInstancesRequest, callback func(response *DescribeCenAttachedChildInstancesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCenAttachedChildInstancesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCenAttachedChildInstances(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCenAttachedChildInstancesRequest is the request struct for api DescribeCenAttachedChildInstances
+type DescribeCenAttachedChildInstancesRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	CenId                string           `position:"Query" name:"CenId"`
+}
+
+// DescribeCenAttachedChildInstancesResponse is the response struct for api DescribeCenAttachedChildInstances
+type DescribeCenAttachedChildInstancesResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	TotalCount     int            `json:"TotalCount" xml:"TotalCount"`
+	PageNumber     int            `json:"PageNumber" xml:"PageNumber"`
+	PageSize       int            `json:"PageSize" xml:"PageSize"`
+	ChildInstances ChildInstances `json:"ChildInstances" xml:"ChildInstances"`
+}
+
+// CreateDescribeCenAttachedChildInstancesRequest creates a request to invoke DescribeCenAttachedChildInstances API
+func CreateDescribeCenAttachedChildInstancesRequest() (request *DescribeCenAttachedChildInstancesRequest) {
+	request = &DescribeCenAttachedChildInstancesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeCenAttachedChildInstances", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeCenAttachedChildInstancesResponse creates a response to parse from DescribeCenAttachedChildInstances response
+func CreateDescribeCenAttachedChildInstancesResponse() (response *DescribeCenAttachedChildInstancesResponse) {
+	response = &DescribeCenAttachedChildInstancesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 120 - 0
services/cbn/describe_cen_bandwidth_packages.go

@@ -0,0 +1,120 @@
+package cbn
+
+//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"
+)
+
+// DescribeCenBandwidthPackages invokes the cbn.DescribeCenBandwidthPackages API synchronously
+// api document: https://help.aliyun.com/api/cbn/describecenbandwidthpackages.html
+func (client *Client) DescribeCenBandwidthPackages(request *DescribeCenBandwidthPackagesRequest) (response *DescribeCenBandwidthPackagesResponse, err error) {
+	response = CreateDescribeCenBandwidthPackagesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCenBandwidthPackagesWithChan invokes the cbn.DescribeCenBandwidthPackages API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecenbandwidthpackages.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenBandwidthPackagesWithChan(request *DescribeCenBandwidthPackagesRequest) (<-chan *DescribeCenBandwidthPackagesResponse, <-chan error) {
+	responseChan := make(chan *DescribeCenBandwidthPackagesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCenBandwidthPackages(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCenBandwidthPackagesWithCallback invokes the cbn.DescribeCenBandwidthPackages API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecenbandwidthpackages.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenBandwidthPackagesWithCallback(request *DescribeCenBandwidthPackagesRequest, callback func(response *DescribeCenBandwidthPackagesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCenBandwidthPackagesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCenBandwidthPackages(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCenBandwidthPackagesRequest is the request struct for api DescribeCenBandwidthPackages
+type DescribeCenBandwidthPackagesRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string                                `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer                      `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string                                `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer                      `position:"Query" name:"ResourceOwnerId"`
+	PageNumber           requests.Integer                      `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer                      `position:"Query" name:"PageSize"`
+	Filter               *[]DescribeCenBandwidthPackagesFilter `position:"Query" name:"Filter"  type:"Repeated"`
+	IsOrKey              requests.Boolean                      `position:"Query" name:"IsOrKey"`
+}
+
+// DescribeCenBandwidthPackagesFilter is a repeated param struct in DescribeCenBandwidthPackagesRequest
+type DescribeCenBandwidthPackagesFilter struct {
+	Key   string    `name:"Key"`
+	Value *[]string `name:"Value" type:"Repeated"`
+}
+
+// DescribeCenBandwidthPackagesResponse is the response struct for api DescribeCenBandwidthPackages
+type DescribeCenBandwidthPackagesResponse struct {
+	*responses.BaseResponse
+	RequestId            string               `json:"RequestId" xml:"RequestId"`
+	TotalCount           int                  `json:"TotalCount" xml:"TotalCount"`
+	PageNumber           int                  `json:"PageNumber" xml:"PageNumber"`
+	PageSize             int                  `json:"PageSize" xml:"PageSize"`
+	CenBandwidthPackages CenBandwidthPackages `json:"CenBandwidthPackages" xml:"CenBandwidthPackages"`
+}
+
+// CreateDescribeCenBandwidthPackagesRequest creates a request to invoke DescribeCenBandwidthPackages API
+func CreateDescribeCenBandwidthPackagesRequest() (request *DescribeCenBandwidthPackagesRequest) {
+	request = &DescribeCenBandwidthPackagesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeCenBandwidthPackages", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeCenBandwidthPackagesResponse creates a response to parse from DescribeCenBandwidthPackages response
+func CreateDescribeCenBandwidthPackagesResponse() (response *DescribeCenBandwidthPackagesResponse) {
+	response = &DescribeCenBandwidthPackagesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/cbn/describe_cen_geographic_span_remaining_bandwidth.go

@@ -0,0 +1,112 @@
+package cbn
+
+//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"
+)
+
+// DescribeCenGeographicSpanRemainingBandwidth invokes the cbn.DescribeCenGeographicSpanRemainingBandwidth API synchronously
+// api document: https://help.aliyun.com/api/cbn/describecengeographicspanremainingbandwidth.html
+func (client *Client) DescribeCenGeographicSpanRemainingBandwidth(request *DescribeCenGeographicSpanRemainingBandwidthRequest) (response *DescribeCenGeographicSpanRemainingBandwidthResponse, err error) {
+	response = CreateDescribeCenGeographicSpanRemainingBandwidthResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCenGeographicSpanRemainingBandwidthWithChan invokes the cbn.DescribeCenGeographicSpanRemainingBandwidth API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecengeographicspanremainingbandwidth.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenGeographicSpanRemainingBandwidthWithChan(request *DescribeCenGeographicSpanRemainingBandwidthRequest) (<-chan *DescribeCenGeographicSpanRemainingBandwidthResponse, <-chan error) {
+	responseChan := make(chan *DescribeCenGeographicSpanRemainingBandwidthResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCenGeographicSpanRemainingBandwidth(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCenGeographicSpanRemainingBandwidthWithCallback invokes the cbn.DescribeCenGeographicSpanRemainingBandwidth API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecengeographicspanremainingbandwidth.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenGeographicSpanRemainingBandwidthWithCallback(request *DescribeCenGeographicSpanRemainingBandwidthRequest, callback func(response *DescribeCenGeographicSpanRemainingBandwidthResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCenGeographicSpanRemainingBandwidthResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCenGeographicSpanRemainingBandwidth(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCenGeographicSpanRemainingBandwidthRequest is the request struct for api DescribeCenGeographicSpanRemainingBandwidth
+type DescribeCenGeographicSpanRemainingBandwidthRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	CenId                string           `position:"Query" name:"CenId"`
+	GeographicRegionAId  string           `position:"Query" name:"GeographicRegionAId"`
+	GeographicRegionBId  string           `position:"Query" name:"GeographicRegionBId"`
+}
+
+// DescribeCenGeographicSpanRemainingBandwidthResponse is the response struct for api DescribeCenGeographicSpanRemainingBandwidth
+type DescribeCenGeographicSpanRemainingBandwidthResponse struct {
+	*responses.BaseResponse
+	RequestId          string `json:"RequestId" xml:"RequestId"`
+	RemainingBandwidth int    `json:"RemainingBandwidth" xml:"RemainingBandwidth"`
+}
+
+// CreateDescribeCenGeographicSpanRemainingBandwidthRequest creates a request to invoke DescribeCenGeographicSpanRemainingBandwidth API
+func CreateDescribeCenGeographicSpanRemainingBandwidthRequest() (request *DescribeCenGeographicSpanRemainingBandwidthRequest) {
+	request = &DescribeCenGeographicSpanRemainingBandwidthRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeCenGeographicSpanRemainingBandwidth", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeCenGeographicSpanRemainingBandwidthResponse creates a response to parse from DescribeCenGeographicSpanRemainingBandwidth response
+func CreateDescribeCenGeographicSpanRemainingBandwidthResponse() (response *DescribeCenGeographicSpanRemainingBandwidthResponse) {
+	response = &DescribeCenGeographicSpanRemainingBandwidthResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/cbn/describe_cen_inter_region_bandwidth_limits.go

@@ -0,0 +1,113 @@
+package cbn
+
+//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"
+)
+
+// DescribeCenInterRegionBandwidthLimits invokes the cbn.DescribeCenInterRegionBandwidthLimits API synchronously
+// api document: https://help.aliyun.com/api/cbn/describeceninterregionbandwidthlimits.html
+func (client *Client) DescribeCenInterRegionBandwidthLimits(request *DescribeCenInterRegionBandwidthLimitsRequest) (response *DescribeCenInterRegionBandwidthLimitsResponse, err error) {
+	response = CreateDescribeCenInterRegionBandwidthLimitsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCenInterRegionBandwidthLimitsWithChan invokes the cbn.DescribeCenInterRegionBandwidthLimits API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describeceninterregionbandwidthlimits.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenInterRegionBandwidthLimitsWithChan(request *DescribeCenInterRegionBandwidthLimitsRequest) (<-chan *DescribeCenInterRegionBandwidthLimitsResponse, <-chan error) {
+	responseChan := make(chan *DescribeCenInterRegionBandwidthLimitsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCenInterRegionBandwidthLimits(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCenInterRegionBandwidthLimitsWithCallback invokes the cbn.DescribeCenInterRegionBandwidthLimits API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describeceninterregionbandwidthlimits.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenInterRegionBandwidthLimitsWithCallback(request *DescribeCenInterRegionBandwidthLimitsRequest, callback func(response *DescribeCenInterRegionBandwidthLimitsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCenInterRegionBandwidthLimitsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCenInterRegionBandwidthLimits(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCenInterRegionBandwidthLimitsRequest is the request struct for api DescribeCenInterRegionBandwidthLimits
+type DescribeCenInterRegionBandwidthLimitsRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	CenId                string           `position:"Query" name:"CenId"`
+}
+
+// DescribeCenInterRegionBandwidthLimitsResponse is the response struct for api DescribeCenInterRegionBandwidthLimits
+type DescribeCenInterRegionBandwidthLimitsResponse struct {
+	*responses.BaseResponse
+	RequestId                     string                        `json:"RequestId" xml:"RequestId"`
+	TotalCount                    int                           `json:"TotalCount" xml:"TotalCount"`
+	PageNumber                    int                           `json:"PageNumber" xml:"PageNumber"`
+	PageSize                      int                           `json:"PageSize" xml:"PageSize"`
+	CenInterRegionBandwidthLimits CenInterRegionBandwidthLimits `json:"CenInterRegionBandwidthLimits" xml:"CenInterRegionBandwidthLimits"`
+}
+
+// CreateDescribeCenInterRegionBandwidthLimitsRequest creates a request to invoke DescribeCenInterRegionBandwidthLimits API
+func CreateDescribeCenInterRegionBandwidthLimitsRequest() (request *DescribeCenInterRegionBandwidthLimitsRequest) {
+	request = &DescribeCenInterRegionBandwidthLimitsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeCenInterRegionBandwidthLimits", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeCenInterRegionBandwidthLimitsResponse creates a response to parse from DescribeCenInterRegionBandwidthLimits response
+func CreateDescribeCenInterRegionBandwidthLimitsResponse() (response *DescribeCenInterRegionBandwidthLimitsResponse) {
+	response = &DescribeCenInterRegionBandwidthLimitsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/cbn/describe_cen_region_domain_route_entries.go

@@ -0,0 +1,114 @@
+package cbn
+
+//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"
+)
+
+// DescribeCenRegionDomainRouteEntries invokes the cbn.DescribeCenRegionDomainRouteEntries API synchronously
+// api document: https://help.aliyun.com/api/cbn/describecenregiondomainrouteentries.html
+func (client *Client) DescribeCenRegionDomainRouteEntries(request *DescribeCenRegionDomainRouteEntriesRequest) (response *DescribeCenRegionDomainRouteEntriesResponse, err error) {
+	response = CreateDescribeCenRegionDomainRouteEntriesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCenRegionDomainRouteEntriesWithChan invokes the cbn.DescribeCenRegionDomainRouteEntries API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecenregiondomainrouteentries.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenRegionDomainRouteEntriesWithChan(request *DescribeCenRegionDomainRouteEntriesRequest) (<-chan *DescribeCenRegionDomainRouteEntriesResponse, <-chan error) {
+	responseChan := make(chan *DescribeCenRegionDomainRouteEntriesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCenRegionDomainRouteEntries(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCenRegionDomainRouteEntriesWithCallback invokes the cbn.DescribeCenRegionDomainRouteEntries API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecenregiondomainrouteentries.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenRegionDomainRouteEntriesWithCallback(request *DescribeCenRegionDomainRouteEntriesRequest, callback func(response *DescribeCenRegionDomainRouteEntriesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCenRegionDomainRouteEntriesResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCenRegionDomainRouteEntries(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCenRegionDomainRouteEntriesRequest is the request struct for api DescribeCenRegionDomainRouteEntries
+type DescribeCenRegionDomainRouteEntriesRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                string           `position:"Query" name:"CenId"`
+	CenRegionId          string           `position:"Query" name:"CenRegionId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// DescribeCenRegionDomainRouteEntriesResponse is the response struct for api DescribeCenRegionDomainRouteEntries
+type DescribeCenRegionDomainRouteEntriesResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	PageNumber      int             `json:"PageNumber" xml:"PageNumber"`
+	TotalCount      int             `json:"TotalCount" xml:"TotalCount"`
+	PageSize        int             `json:"PageSize" xml:"PageSize"`
+	CenRouteEntries CenRouteEntries `json:"CenRouteEntries" xml:"CenRouteEntries"`
+}
+
+// CreateDescribeCenRegionDomainRouteEntriesRequest creates a request to invoke DescribeCenRegionDomainRouteEntries API
+func CreateDescribeCenRegionDomainRouteEntriesRequest() (request *DescribeCenRegionDomainRouteEntriesRequest) {
+	request = &DescribeCenRegionDomainRouteEntriesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeCenRegionDomainRouteEntries", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeCenRegionDomainRouteEntriesResponse creates a response to parse from DescribeCenRegionDomainRouteEntries response
+func CreateDescribeCenRegionDomainRouteEntriesResponse() (response *DescribeCenRegionDomainRouteEntriesResponse) {
+	response = &DescribeCenRegionDomainRouteEntriesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/cbn/describe_cen_vbr_health_check.go

@@ -0,0 +1,116 @@
+package cbn
+
+//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"
+)
+
+// DescribeCenVbrHealthCheck invokes the cbn.DescribeCenVbrHealthCheck API synchronously
+// api document: https://help.aliyun.com/api/cbn/describecenvbrhealthcheck.html
+func (client *Client) DescribeCenVbrHealthCheck(request *DescribeCenVbrHealthCheckRequest) (response *DescribeCenVbrHealthCheckResponse, err error) {
+	response = CreateDescribeCenVbrHealthCheckResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCenVbrHealthCheckWithChan invokes the cbn.DescribeCenVbrHealthCheck API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecenvbrhealthcheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenVbrHealthCheckWithChan(request *DescribeCenVbrHealthCheckRequest) (<-chan *DescribeCenVbrHealthCheckResponse, <-chan error) {
+	responseChan := make(chan *DescribeCenVbrHealthCheckResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCenVbrHealthCheck(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCenVbrHealthCheckWithCallback invokes the cbn.DescribeCenVbrHealthCheck API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecenvbrhealthcheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCenVbrHealthCheckWithCallback(request *DescribeCenVbrHealthCheckRequest, callback func(response *DescribeCenVbrHealthCheckResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCenVbrHealthCheckResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCenVbrHealthCheck(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCenVbrHealthCheckRequest is the request struct for api DescribeCenVbrHealthCheck
+type DescribeCenVbrHealthCheckRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                string           `position:"Query" name:"CenId"`
+	VbrInstanceRegionId  string           `position:"Query" name:"VbrInstanceRegionId"`
+	VbrInstanceId        string           `position:"Query" name:"VbrInstanceId"`
+	VbrInstanceOwnerId   requests.Integer `position:"Query" name:"VbrInstanceOwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// DescribeCenVbrHealthCheckResponse is the response struct for api DescribeCenVbrHealthCheck
+type DescribeCenVbrHealthCheckResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	TotalCount      int             `json:"TotalCount" xml:"TotalCount"`
+	PageNumber      int             `json:"PageNumber" xml:"PageNumber"`
+	PageSize        int             `json:"PageSize" xml:"PageSize"`
+	VbrHealthChecks VbrHealthChecks `json:"VbrHealthChecks" xml:"VbrHealthChecks"`
+}
+
+// CreateDescribeCenVbrHealthCheckRequest creates a request to invoke DescribeCenVbrHealthCheck API
+func CreateDescribeCenVbrHealthCheckRequest() (request *DescribeCenVbrHealthCheckRequest) {
+	request = &DescribeCenVbrHealthCheckRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeCenVbrHealthCheck", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeCenVbrHealthCheckResponse creates a response to parse from DescribeCenVbrHealthCheck response
+func CreateDescribeCenVbrHealthCheckResponse() (response *DescribeCenVbrHealthCheckResponse) {
+	response = &DescribeCenVbrHealthCheckResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 119 - 0
services/cbn/describe_cens.go

@@ -0,0 +1,119 @@
+package cbn
+
+//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"
+)
+
+// DescribeCens invokes the cbn.DescribeCens API synchronously
+// api document: https://help.aliyun.com/api/cbn/describecens.html
+func (client *Client) DescribeCens(request *DescribeCensRequest) (response *DescribeCensResponse, err error) {
+	response = CreateDescribeCensResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCensWithChan invokes the cbn.DescribeCens API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecens.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCensWithChan(request *DescribeCensRequest) (<-chan *DescribeCensResponse, <-chan error) {
+	responseChan := make(chan *DescribeCensResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCens(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCensWithCallback invokes the cbn.DescribeCens API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describecens.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCensWithCallback(request *DescribeCensRequest, callback func(response *DescribeCensResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCensResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCens(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCensRequest is the request struct for api DescribeCens
+type DescribeCensRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string                `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer      `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string                `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer      `position:"Query" name:"ResourceOwnerId"`
+	PageNumber           requests.Integer      `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer      `position:"Query" name:"PageSize"`
+	Filter               *[]DescribeCensFilter `position:"Query" name:"Filter"  type:"Repeated"`
+}
+
+// DescribeCensFilter is a repeated param struct in DescribeCensRequest
+type DescribeCensFilter struct {
+	Key   string    `name:"Key"`
+	Value *[]string `name:"Value" type:"Repeated"`
+}
+
+// DescribeCensResponse is the response struct for api DescribeCens
+type DescribeCensResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	Cens       Cens   `json:"Cens" xml:"Cens"`
+}
+
+// CreateDescribeCensRequest creates a request to invoke DescribeCens API
+func CreateDescribeCensRequest() (request *DescribeCensRequest) {
+	request = &DescribeCensRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeCens", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeCensResponse creates a response to parse from DescribeCens response
+func CreateDescribeCensResponse() (response *DescribeCensResponse) {
+	response = &DescribeCensResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/cbn/describe_geographic_region_membership.go

@@ -0,0 +1,113 @@
+package cbn
+
+//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"
+)
+
+// DescribeGeographicRegionMembership invokes the cbn.DescribeGeographicRegionMembership API synchronously
+// api document: https://help.aliyun.com/api/cbn/describegeographicregionmembership.html
+func (client *Client) DescribeGeographicRegionMembership(request *DescribeGeographicRegionMembershipRequest) (response *DescribeGeographicRegionMembershipResponse, err error) {
+	response = CreateDescribeGeographicRegionMembershipResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeGeographicRegionMembershipWithChan invokes the cbn.DescribeGeographicRegionMembership API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describegeographicregionmembership.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeGeographicRegionMembershipWithChan(request *DescribeGeographicRegionMembershipRequest) (<-chan *DescribeGeographicRegionMembershipResponse, <-chan error) {
+	responseChan := make(chan *DescribeGeographicRegionMembershipResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeGeographicRegionMembership(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeGeographicRegionMembershipWithCallback invokes the cbn.DescribeGeographicRegionMembership API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describegeographicregionmembership.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeGeographicRegionMembershipWithCallback(request *DescribeGeographicRegionMembershipRequest, callback func(response *DescribeGeographicRegionMembershipResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeGeographicRegionMembershipResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeGeographicRegionMembership(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeGeographicRegionMembershipRequest is the request struct for api DescribeGeographicRegionMembership
+type DescribeGeographicRegionMembershipRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PageNumber           requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
+	GeographicRegionId   string           `position:"Query" name:"GeographicRegionId"`
+}
+
+// DescribeGeographicRegionMembershipResponse is the response struct for api DescribeGeographicRegionMembership
+type DescribeGeographicRegionMembershipResponse struct {
+	*responses.BaseResponse
+	RequestId  string    `json:"RequestId" xml:"RequestId"`
+	TotalCount int       `json:"TotalCount" xml:"TotalCount"`
+	PageNumber int       `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int       `json:"PageSize" xml:"PageSize"`
+	RegionIds  RegionIds `json:"RegionIds" xml:"RegionIds"`
+}
+
+// CreateDescribeGeographicRegionMembershipRequest creates a request to invoke DescribeGeographicRegionMembership API
+func CreateDescribeGeographicRegionMembershipRequest() (request *DescribeGeographicRegionMembershipRequest) {
+	request = &DescribeGeographicRegionMembershipRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeGeographicRegionMembership", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeGeographicRegionMembershipResponse creates a response to parse from DescribeGeographicRegionMembership response
+func CreateDescribeGeographicRegionMembershipResponse() (response *DescribeGeographicRegionMembershipResponse) {
+	response = &DescribeGeographicRegionMembershipResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/cbn/describe_route_conflict.go

@@ -0,0 +1,117 @@
+package cbn
+
+//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"
+)
+
+// DescribeRouteConflict invokes the cbn.DescribeRouteConflict API synchronously
+// api document: https://help.aliyun.com/api/cbn/describerouteconflict.html
+func (client *Client) DescribeRouteConflict(request *DescribeRouteConflictRequest) (response *DescribeRouteConflictResponse, err error) {
+	response = CreateDescribeRouteConflictResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRouteConflictWithChan invokes the cbn.DescribeRouteConflict API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describerouteconflict.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRouteConflictWithChan(request *DescribeRouteConflictRequest) (<-chan *DescribeRouteConflictResponse, <-chan error) {
+	responseChan := make(chan *DescribeRouteConflictResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRouteConflict(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRouteConflictWithCallback invokes the cbn.DescribeRouteConflict API asynchronously
+// api document: https://help.aliyun.com/api/cbn/describerouteconflict.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRouteConflictWithCallback(request *DescribeRouteConflictRequest, callback func(response *DescribeRouteConflictResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRouteConflictResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRouteConflict(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRouteConflictRequest is the request struct for api DescribeRouteConflict
+type DescribeRouteConflictRequest struct {
+	*requests.RpcRequest
+	OwnerAccount              string           `position:"Query" name:"OwnerAccount"`
+	OwnerId                   requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount      string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId           requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	PageNumber                requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize                  requests.Integer `position:"Query" name:"PageSize"`
+	ChildInstanceId           string           `position:"Query" name:"ChildInstanceId"`
+	ChildInstanceType         string           `position:"Query" name:"ChildInstanceType"`
+	ChildInstanceRegionId     string           `position:"Query" name:"ChildInstanceRegionId"`
+	ChildInstanceRouteTableId string           `position:"Query" name:"ChildInstanceRouteTableId"`
+	DestinationCidrBlock      string           `position:"Query" name:"DestinationCidrBlock"`
+}
+
+// DescribeRouteConflictResponse is the response struct for api DescribeRouteConflict
+type DescribeRouteConflictResponse struct {
+	*responses.BaseResponse
+	RequestId      string         `json:"RequestId" xml:"RequestId"`
+	PageNumber     int            `json:"PageNumber" xml:"PageNumber"`
+	TotalCount     int            `json:"TotalCount" xml:"TotalCount"`
+	PageSize       int            `json:"PageSize" xml:"PageSize"`
+	RouteConflicts RouteConflicts `json:"RouteConflicts" xml:"RouteConflicts"`
+}
+
+// CreateDescribeRouteConflictRequest creates a request to invoke DescribeRouteConflict API
+func CreateDescribeRouteConflictRequest() (request *DescribeRouteConflictRequest) {
+	request = &DescribeRouteConflictRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DescribeRouteConflict", "cbn", "openAPI")
+	return
+}
+
+// CreateDescribeRouteConflictResponse creates a response to parse from DescribeRouteConflict response
+func CreateDescribeRouteConflictResponse() (response *DescribeRouteConflictResponse) {
+	response = &DescribeRouteConflictResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/cbn/detach_cen_child_instance.go

@@ -0,0 +1,112 @@
+package cbn
+
+//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"
+)
+
+// DetachCenChildInstance invokes the cbn.DetachCenChildInstance API synchronously
+// api document: https://help.aliyun.com/api/cbn/detachcenchildinstance.html
+func (client *Client) DetachCenChildInstance(request *DetachCenChildInstanceRequest) (response *DetachCenChildInstanceResponse, err error) {
+	response = CreateDetachCenChildInstanceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DetachCenChildInstanceWithChan invokes the cbn.DetachCenChildInstance API asynchronously
+// api document: https://help.aliyun.com/api/cbn/detachcenchildinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DetachCenChildInstanceWithChan(request *DetachCenChildInstanceRequest) (<-chan *DetachCenChildInstanceResponse, <-chan error) {
+	responseChan := make(chan *DetachCenChildInstanceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DetachCenChildInstance(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DetachCenChildInstanceWithCallback invokes the cbn.DetachCenChildInstance API asynchronously
+// api document: https://help.aliyun.com/api/cbn/detachcenchildinstance.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DetachCenChildInstanceWithCallback(request *DetachCenChildInstanceRequest, callback func(response *DetachCenChildInstanceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DetachCenChildInstanceResponse
+		var err error
+		defer close(result)
+		response, err = client.DetachCenChildInstance(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DetachCenChildInstanceRequest is the request struct for api DetachCenChildInstance
+type DetachCenChildInstanceRequest struct {
+	*requests.RpcRequest
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                 string           `position:"Query" name:"CenId"`
+	ChildInstanceId       string           `position:"Query" name:"ChildInstanceId"`
+	ChildInstanceType     string           `position:"Query" name:"ChildInstanceType"`
+	ChildInstanceRegionId string           `position:"Query" name:"ChildInstanceRegionId"`
+	ChildInstanceOwnerId  requests.Integer `position:"Query" name:"ChildInstanceOwnerId"`
+	CenOwnerId            requests.Integer `position:"Query" name:"CenOwnerId"`
+}
+
+// DetachCenChildInstanceResponse is the response struct for api DetachCenChildInstance
+type DetachCenChildInstanceResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDetachCenChildInstanceRequest creates a request to invoke DetachCenChildInstance API
+func CreateDetachCenChildInstanceRequest() (request *DetachCenChildInstanceRequest) {
+	request = &DetachCenChildInstanceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DetachCenChildInstance", "cbn", "openAPI")
+	return
+}
+
+// CreateDetachCenChildInstanceResponse creates a response to parse from DetachCenChildInstance response
+func CreateDetachCenChildInstanceResponse() (response *DetachCenChildInstanceResponse) {
+	response = &DetachCenChildInstanceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/cbn/disable_cen_vbr_health_check.go

@@ -0,0 +1,110 @@
+package cbn
+
+//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"
+)
+
+// DisableCenVbrHealthCheck invokes the cbn.DisableCenVbrHealthCheck API synchronously
+// api document: https://help.aliyun.com/api/cbn/disablecenvbrhealthcheck.html
+func (client *Client) DisableCenVbrHealthCheck(request *DisableCenVbrHealthCheckRequest) (response *DisableCenVbrHealthCheckResponse, err error) {
+	response = CreateDisableCenVbrHealthCheckResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DisableCenVbrHealthCheckWithChan invokes the cbn.DisableCenVbrHealthCheck API asynchronously
+// api document: https://help.aliyun.com/api/cbn/disablecenvbrhealthcheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DisableCenVbrHealthCheckWithChan(request *DisableCenVbrHealthCheckRequest) (<-chan *DisableCenVbrHealthCheckResponse, <-chan error) {
+	responseChan := make(chan *DisableCenVbrHealthCheckResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DisableCenVbrHealthCheck(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DisableCenVbrHealthCheckWithCallback invokes the cbn.DisableCenVbrHealthCheck API asynchronously
+// api document: https://help.aliyun.com/api/cbn/disablecenvbrhealthcheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DisableCenVbrHealthCheckWithCallback(request *DisableCenVbrHealthCheckRequest, callback func(response *DisableCenVbrHealthCheckResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DisableCenVbrHealthCheckResponse
+		var err error
+		defer close(result)
+		response, err = client.DisableCenVbrHealthCheck(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DisableCenVbrHealthCheckRequest is the request struct for api DisableCenVbrHealthCheck
+type DisableCenVbrHealthCheckRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                string           `position:"Query" name:"CenId"`
+	VbrInstanceRegionId  string           `position:"Query" name:"VbrInstanceRegionId"`
+	VbrInstanceId        string           `position:"Query" name:"VbrInstanceId"`
+	VbrInstanceOwnerId   requests.Integer `position:"Query" name:"VbrInstanceOwnerId"`
+}
+
+// DisableCenVbrHealthCheckResponse is the response struct for api DisableCenVbrHealthCheck
+type DisableCenVbrHealthCheckResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDisableCenVbrHealthCheckRequest creates a request to invoke DisableCenVbrHealthCheck API
+func CreateDisableCenVbrHealthCheckRequest() (request *DisableCenVbrHealthCheckRequest) {
+	request = &DisableCenVbrHealthCheckRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "DisableCenVbrHealthCheck", "cbn", "openAPI")
+	return
+}
+
+// CreateDisableCenVbrHealthCheckResponse creates a response to parse from DisableCenVbrHealthCheck response
+func CreateDisableCenVbrHealthCheckResponse() (response *DisableCenVbrHealthCheckResponse) {
+	response = &DisableCenVbrHealthCheckResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/cbn/enable_cen_vbr_health_check.go

@@ -0,0 +1,112 @@
+package cbn
+
+//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"
+)
+
+// EnableCenVbrHealthCheck invokes the cbn.EnableCenVbrHealthCheck API synchronously
+// api document: https://help.aliyun.com/api/cbn/enablecenvbrhealthcheck.html
+func (client *Client) EnableCenVbrHealthCheck(request *EnableCenVbrHealthCheckRequest) (response *EnableCenVbrHealthCheckResponse, err error) {
+	response = CreateEnableCenVbrHealthCheckResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// EnableCenVbrHealthCheckWithChan invokes the cbn.EnableCenVbrHealthCheck API asynchronously
+// api document: https://help.aliyun.com/api/cbn/enablecenvbrhealthcheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnableCenVbrHealthCheckWithChan(request *EnableCenVbrHealthCheckRequest) (<-chan *EnableCenVbrHealthCheckResponse, <-chan error) {
+	responseChan := make(chan *EnableCenVbrHealthCheckResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.EnableCenVbrHealthCheck(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// EnableCenVbrHealthCheckWithCallback invokes the cbn.EnableCenVbrHealthCheck API asynchronously
+// api document: https://help.aliyun.com/api/cbn/enablecenvbrhealthcheck.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) EnableCenVbrHealthCheckWithCallback(request *EnableCenVbrHealthCheckRequest, callback func(response *EnableCenVbrHealthCheckResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *EnableCenVbrHealthCheckResponse
+		var err error
+		defer close(result)
+		response, err = client.EnableCenVbrHealthCheck(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// EnableCenVbrHealthCheckRequest is the request struct for api EnableCenVbrHealthCheck
+type EnableCenVbrHealthCheckRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                string           `position:"Query" name:"CenId"`
+	VbrInstanceRegionId  string           `position:"Query" name:"VbrInstanceRegionId"`
+	VbrInstanceId        string           `position:"Query" name:"VbrInstanceId"`
+	HealthCheckSourceIp  string           `position:"Query" name:"HealthCheckSourceIp"`
+	HealthCheckTargetIp  string           `position:"Query" name:"HealthCheckTargetIp"`
+	VbrInstanceOwnerId   requests.Integer `position:"Query" name:"VbrInstanceOwnerId"`
+}
+
+// EnableCenVbrHealthCheckResponse is the response struct for api EnableCenVbrHealthCheck
+type EnableCenVbrHealthCheckResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateEnableCenVbrHealthCheckRequest creates a request to invoke EnableCenVbrHealthCheck API
+func CreateEnableCenVbrHealthCheckRequest() (request *EnableCenVbrHealthCheckRequest) {
+	request = &EnableCenVbrHealthCheckRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "EnableCenVbrHealthCheck", "cbn", "openAPI")
+	return
+}
+
+// CreateEnableCenVbrHealthCheckResponse creates a response to parse from EnableCenVbrHealthCheck response
+func CreateEnableCenVbrHealthCheckResponse() (response *EnableCenVbrHealthCheckResponse) {
+	response = &EnableCenVbrHealthCheckResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cbn/modify_cen_attribute.go

@@ -0,0 +1,109 @@
+package cbn
+
+//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"
+)
+
+// ModifyCenAttribute invokes the cbn.ModifyCenAttribute API synchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenattribute.html
+func (client *Client) ModifyCenAttribute(request *ModifyCenAttributeRequest) (response *ModifyCenAttributeResponse, err error) {
+	response = CreateModifyCenAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyCenAttributeWithChan invokes the cbn.ModifyCenAttribute API asynchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCenAttributeWithChan(request *ModifyCenAttributeRequest) (<-chan *ModifyCenAttributeResponse, <-chan error) {
+	responseChan := make(chan *ModifyCenAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyCenAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyCenAttributeWithCallback invokes the cbn.ModifyCenAttribute API asynchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCenAttributeWithCallback(request *ModifyCenAttributeRequest, callback func(response *ModifyCenAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyCenAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyCenAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyCenAttributeRequest is the request struct for api ModifyCenAttribute
+type ModifyCenAttributeRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                string           `position:"Query" name:"CenId"`
+	Name                 string           `position:"Query" name:"Name"`
+	Description          string           `position:"Query" name:"Description"`
+}
+
+// ModifyCenAttributeResponse is the response struct for api ModifyCenAttribute
+type ModifyCenAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyCenAttributeRequest creates a request to invoke ModifyCenAttribute API
+func CreateModifyCenAttributeRequest() (request *ModifyCenAttributeRequest) {
+	request = &ModifyCenAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "ModifyCenAttribute", "cbn", "openAPI")
+	return
+}
+
+// CreateModifyCenAttributeResponse creates a response to parse from ModifyCenAttribute response
+func CreateModifyCenAttributeResponse() (response *ModifyCenAttributeResponse) {
+	response = &ModifyCenAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/cbn/modify_cen_bandwidth_package_attribute.go

@@ -0,0 +1,109 @@
+package cbn
+
+//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"
+)
+
+// ModifyCenBandwidthPackageAttribute invokes the cbn.ModifyCenBandwidthPackageAttribute API synchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenbandwidthpackageattribute.html
+func (client *Client) ModifyCenBandwidthPackageAttribute(request *ModifyCenBandwidthPackageAttributeRequest) (response *ModifyCenBandwidthPackageAttributeResponse, err error) {
+	response = CreateModifyCenBandwidthPackageAttributeResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyCenBandwidthPackageAttributeWithChan invokes the cbn.ModifyCenBandwidthPackageAttribute API asynchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenbandwidthpackageattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCenBandwidthPackageAttributeWithChan(request *ModifyCenBandwidthPackageAttributeRequest) (<-chan *ModifyCenBandwidthPackageAttributeResponse, <-chan error) {
+	responseChan := make(chan *ModifyCenBandwidthPackageAttributeResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyCenBandwidthPackageAttribute(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyCenBandwidthPackageAttributeWithCallback invokes the cbn.ModifyCenBandwidthPackageAttribute API asynchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenbandwidthpackageattribute.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCenBandwidthPackageAttributeWithCallback(request *ModifyCenBandwidthPackageAttributeRequest, callback func(response *ModifyCenBandwidthPackageAttributeResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyCenBandwidthPackageAttributeResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyCenBandwidthPackageAttribute(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyCenBandwidthPackageAttributeRequest is the request struct for api ModifyCenBandwidthPackageAttribute
+type ModifyCenBandwidthPackageAttributeRequest struct {
+	*requests.RpcRequest
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	Name                  string           `position:"Query" name:"Name"`
+	Description           string           `position:"Query" name:"Description"`
+	CenBandwidthPackageId string           `position:"Query" name:"CenBandwidthPackageId"`
+}
+
+// ModifyCenBandwidthPackageAttributeResponse is the response struct for api ModifyCenBandwidthPackageAttribute
+type ModifyCenBandwidthPackageAttributeResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyCenBandwidthPackageAttributeRequest creates a request to invoke ModifyCenBandwidthPackageAttribute API
+func CreateModifyCenBandwidthPackageAttributeRequest() (request *ModifyCenBandwidthPackageAttributeRequest) {
+	request = &ModifyCenBandwidthPackageAttributeRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "ModifyCenBandwidthPackageAttribute", "cbn", "openAPI")
+	return
+}
+
+// CreateModifyCenBandwidthPackageAttributeResponse creates a response to parse from ModifyCenBandwidthPackageAttribute response
+func CreateModifyCenBandwidthPackageAttributeResponse() (response *ModifyCenBandwidthPackageAttributeResponse) {
+	response = &ModifyCenBandwidthPackageAttributeResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/cbn/modify_cen_bandwidth_package_spec.go

@@ -0,0 +1,108 @@
+package cbn
+
+//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"
+)
+
+// ModifyCenBandwidthPackageSpec invokes the cbn.ModifyCenBandwidthPackageSpec API synchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenbandwidthpackagespec.html
+func (client *Client) ModifyCenBandwidthPackageSpec(request *ModifyCenBandwidthPackageSpecRequest) (response *ModifyCenBandwidthPackageSpecResponse, err error) {
+	response = CreateModifyCenBandwidthPackageSpecResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ModifyCenBandwidthPackageSpecWithChan invokes the cbn.ModifyCenBandwidthPackageSpec API asynchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenbandwidthpackagespec.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCenBandwidthPackageSpecWithChan(request *ModifyCenBandwidthPackageSpecRequest) (<-chan *ModifyCenBandwidthPackageSpecResponse, <-chan error) {
+	responseChan := make(chan *ModifyCenBandwidthPackageSpecResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ModifyCenBandwidthPackageSpec(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ModifyCenBandwidthPackageSpecWithCallback invokes the cbn.ModifyCenBandwidthPackageSpec API asynchronously
+// api document: https://help.aliyun.com/api/cbn/modifycenbandwidthpackagespec.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ModifyCenBandwidthPackageSpecWithCallback(request *ModifyCenBandwidthPackageSpecRequest, callback func(response *ModifyCenBandwidthPackageSpecResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ModifyCenBandwidthPackageSpecResponse
+		var err error
+		defer close(result)
+		response, err = client.ModifyCenBandwidthPackageSpec(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ModifyCenBandwidthPackageSpecRequest is the request struct for api ModifyCenBandwidthPackageSpec
+type ModifyCenBandwidthPackageSpecRequest struct {
+	*requests.RpcRequest
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenBandwidthPackageId string           `position:"Query" name:"CenBandwidthPackageId"`
+	Bandwidth             requests.Integer `position:"Query" name:"Bandwidth"`
+}
+
+// ModifyCenBandwidthPackageSpecResponse is the response struct for api ModifyCenBandwidthPackageSpec
+type ModifyCenBandwidthPackageSpecResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateModifyCenBandwidthPackageSpecRequest creates a request to invoke ModifyCenBandwidthPackageSpec API
+func CreateModifyCenBandwidthPackageSpecRequest() (request *ModifyCenBandwidthPackageSpecRequest) {
+	request = &ModifyCenBandwidthPackageSpecRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "ModifyCenBandwidthPackageSpec", "cbn", "openAPI")
+	return
+}
+
+// CreateModifyCenBandwidthPackageSpecResponse creates a response to parse from ModifyCenBandwidthPackageSpec response
+func CreateModifyCenBandwidthPackageSpecResponse() (response *ModifyCenBandwidthPackageSpecResponse) {
+	response = &ModifyCenBandwidthPackageSpecResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/cbn/set_cen_inter_region_bandwidth_limit.go

@@ -0,0 +1,110 @@
+package cbn
+
+//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"
+)
+
+// SetCenInterRegionBandwidthLimit invokes the cbn.SetCenInterRegionBandwidthLimit API synchronously
+// api document: https://help.aliyun.com/api/cbn/setceninterregionbandwidthlimit.html
+func (client *Client) SetCenInterRegionBandwidthLimit(request *SetCenInterRegionBandwidthLimitRequest) (response *SetCenInterRegionBandwidthLimitResponse, err error) {
+	response = CreateSetCenInterRegionBandwidthLimitResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetCenInterRegionBandwidthLimitWithChan invokes the cbn.SetCenInterRegionBandwidthLimit API asynchronously
+// api document: https://help.aliyun.com/api/cbn/setceninterregionbandwidthlimit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetCenInterRegionBandwidthLimitWithChan(request *SetCenInterRegionBandwidthLimitRequest) (<-chan *SetCenInterRegionBandwidthLimitResponse, <-chan error) {
+	responseChan := make(chan *SetCenInterRegionBandwidthLimitResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetCenInterRegionBandwidthLimit(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetCenInterRegionBandwidthLimitWithCallback invokes the cbn.SetCenInterRegionBandwidthLimit API asynchronously
+// api document: https://help.aliyun.com/api/cbn/setceninterregionbandwidthlimit.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetCenInterRegionBandwidthLimitWithCallback(request *SetCenInterRegionBandwidthLimitRequest, callback func(response *SetCenInterRegionBandwidthLimitResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetCenInterRegionBandwidthLimitResponse
+		var err error
+		defer close(result)
+		response, err = client.SetCenInterRegionBandwidthLimit(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetCenInterRegionBandwidthLimitRequest is the request struct for api SetCenInterRegionBandwidthLimit
+type SetCenInterRegionBandwidthLimitRequest struct {
+	*requests.RpcRequest
+	OwnerAccount         string           `position:"Query" name:"OwnerAccount"`
+	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                string           `position:"Query" name:"CenId"`
+	LocalRegionId        string           `position:"Query" name:"LocalRegionId"`
+	OppositeRegionId     string           `position:"Query" name:"OppositeRegionId"`
+	BandwidthLimit       requests.Integer `position:"Query" name:"BandwidthLimit"`
+}
+
+// SetCenInterRegionBandwidthLimitResponse is the response struct for api SetCenInterRegionBandwidthLimit
+type SetCenInterRegionBandwidthLimitResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSetCenInterRegionBandwidthLimitRequest creates a request to invoke SetCenInterRegionBandwidthLimit API
+func CreateSetCenInterRegionBandwidthLimitRequest() (request *SetCenInterRegionBandwidthLimitRequest) {
+	request = &SetCenInterRegionBandwidthLimitRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "SetCenInterRegionBandwidthLimit", "cbn", "openAPI")
+	return
+}
+
+// CreateSetCenInterRegionBandwidthLimitResponse creates a response to parse from SetCenInterRegionBandwidthLimit response
+func CreateSetCenInterRegionBandwidthLimitResponse() (response *SetCenInterRegionBandwidthLimitResponse) {
+	response = &SetCenInterRegionBandwidthLimitResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 26 - 0
services/cbn/struct_cen.go

@@ -0,0 +1,26 @@
+package cbn
+
+//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.
+
+// Cen is a nested struct in cbn response
+type Cen struct {
+	CenId                  string                 `json:"CenId" xml:"CenId"`
+	Name                   string                 `json:"Name" xml:"Name"`
+	Description            string                 `json:"Description" xml:"Description"`
+	Status                 string                 `json:"Status" xml:"Status"`
+	CreationTime           string                 `json:"CreationTime" xml:"CreationTime"`
+	CenBandwidthPackageIds CenBandwidthPackageIds `json:"CenBandwidthPackageIds" xml:"CenBandwidthPackageIds"`
+}

+ 32 - 0
services/cbn/struct_cen_bandwidth_package.go

@@ -0,0 +1,32 @@
+package cbn
+
+//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.
+
+// CenBandwidthPackage is a nested struct in cbn response
+type CenBandwidthPackage struct {
+	CenBandwidthPackageId      string `json:"CenBandwidthPackageId" xml:"CenBandwidthPackageId"`
+	Name                       string `json:"Name" xml:"Name"`
+	Description                string `json:"Description" xml:"Description"`
+	Bandwidth                  int    `json:"Bandwidth" xml:"Bandwidth"`
+	BandwidthPackageChargeType string `json:"BandwidthPackageChargeType" xml:"BandwidthPackageChargeType"`
+	GeographicRegionAId        string `json:"GeographicRegionAId" xml:"GeographicRegionAId"`
+	GeographicRegionBId        string `json:"GeographicRegionBId" xml:"GeographicRegionBId"`
+	BusinessStatus             string `json:"BusinessStatus" xml:"BusinessStatus"`
+	CreationTime               string `json:"CreationTime" xml:"CreationTime"`
+	ExpiredTime                string `json:"ExpiredTime" xml:"ExpiredTime"`
+	Status                     string `json:"Status" xml:"Status"`
+	CenIds                     CenIds `json:"CenIds" xml:"CenIds"`
+}

+ 21 - 0
services/cbn/struct_cen_bandwidth_package_ids.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// CenBandwidthPackageIds is a nested struct in cbn response
+type CenBandwidthPackageIds struct {
+	CenBandwidthPackageId []string `json:"CenBandwidthPackageId" xml:"CenBandwidthPackageId"`
+}

+ 21 - 0
services/cbn/struct_cen_bandwidth_packages.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// CenBandwidthPackages is a nested struct in cbn response
+type CenBandwidthPackages struct {
+	CenBandwidthPackage []CenBandwidthPackage `json:"CenBandwidthPackage" xml:"CenBandwidthPackage"`
+}

+ 21 - 0
services/cbn/struct_cen_ids.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// CenIds is a nested struct in cbn response
+type CenIds struct {
+	CenId []string `json:"CenId" xml:"CenId"`
+}

+ 25 - 0
services/cbn/struct_cen_inter_region_bandwidth_limit.go

@@ -0,0 +1,25 @@
+package cbn
+
+//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.
+
+// CenInterRegionBandwidthLimit is a nested struct in cbn response
+type CenInterRegionBandwidthLimit struct {
+	CenId            string `json:"CenId" xml:"CenId"`
+	LocalRegionId    string `json:"LocalRegionId" xml:"LocalRegionId"`
+	OppositeRegionId string `json:"OppositeRegionId" xml:"OppositeRegionId"`
+	BandwidthLimit   int    `json:"BandwidthLimit" xml:"BandwidthLimit"`
+	Status           string `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/cbn/struct_cen_inter_region_bandwidth_limits.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// CenInterRegionBandwidthLimits is a nested struct in cbn response
+type CenInterRegionBandwidthLimits struct {
+	CenInterRegionBandwidthLimit []CenInterRegionBandwidthLimit `json:"CenInterRegionBandwidthLimit" xml:"CenInterRegionBandwidthLimit"`
+}

+ 21 - 0
services/cbn/struct_cen_route_entries.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// CenRouteEntries is a nested struct in cbn response
+type CenRouteEntries struct {
+	CenRouteEntry []CenRouteEntry `json:"CenRouteEntry" xml:"CenRouteEntry"`
+}

+ 25 - 0
services/cbn/struct_cen_route_entry.go

@@ -0,0 +1,25 @@
+package cbn
+
+//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.
+
+// CenRouteEntry is a nested struct in cbn response
+type CenRouteEntry struct {
+	DestinationCidrBlock string `json:"DestinationCidrBlock" xml:"DestinationCidrBlock"`
+	Type                 string `json:"Type" xml:"Type"`
+	NextHopInstanceId    string `json:"NextHopInstanceId" xml:"NextHopInstanceId"`
+	NextHopType          string `json:"NextHopType" xml:"NextHopType"`
+	NextHopRegionId      string `json:"NextHopRegionId" xml:"NextHopRegionId"`
+}

+ 21 - 0
services/cbn/struct_cens.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// Cens is a nested struct in cbn response
+type Cens struct {
+	Cen []Cen `json:"Cen" xml:"Cen"`
+}

+ 26 - 0
services/cbn/struct_child_instance.go

@@ -0,0 +1,26 @@
+package cbn
+
+//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.
+
+// ChildInstance is a nested struct in cbn response
+type ChildInstance struct {
+	CenId                 string `json:"CenId" xml:"CenId"`
+	ChildInstanceId       string `json:"ChildInstanceId" xml:"ChildInstanceId"`
+	ChildInstanceType     string `json:"ChildInstanceType" xml:"ChildInstanceType"`
+	ChildInstanceRegionId string `json:"ChildInstanceRegionId" xml:"ChildInstanceRegionId"`
+	ChildInstanceOwnerId  int    `json:"ChildInstanceOwnerId" xml:"ChildInstanceOwnerId"`
+	Status                string `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/cbn/struct_child_instances.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// ChildInstances is a nested struct in cbn response
+type ChildInstances struct {
+	ChildInstance []ChildInstance `json:"ChildInstance" xml:"ChildInstance"`
+}

+ 21 - 0
services/cbn/struct_region_id.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// RegionId is a nested struct in cbn response
+type RegionId struct {
+	RegionId string `json:"RegionId" xml:"RegionId"`
+}

+ 21 - 0
services/cbn/struct_region_ids.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// RegionIds is a nested struct in cbn response
+type RegionIds struct {
+	RegionId []RegionId `json:"RegionId" xml:"RegionId"`
+}

+ 25 - 0
services/cbn/struct_route_conflict.go

@@ -0,0 +1,25 @@
+package cbn
+
+//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.
+
+// RouteConflict is a nested struct in cbn response
+type RouteConflict struct {
+	DestinationCidrBlock string `json:"DestinationCidrBlock" xml:"DestinationCidrBlock"`
+	RegionId             string `json:"RegionId" xml:"RegionId"`
+	InstanceId           string `json:"InstanceId" xml:"InstanceId"`
+	InstanceType         string `json:"InstanceType" xml:"InstanceType"`
+	Status               string `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/cbn/struct_route_conflicts.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// RouteConflicts is a nested struct in cbn response
+type RouteConflicts struct {
+	RouteConflict []RouteConflict `json:"RouteConflict" xml:"RouteConflict"`
+}

+ 27 - 0
services/cbn/struct_vbr_health_check.go

@@ -0,0 +1,27 @@
+package cbn
+
+//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.
+
+// VbrHealthCheck is a nested struct in cbn response
+type VbrHealthCheck struct {
+	CenId               string `json:"CenId" xml:"CenId"`
+	VbrInstanceId       string `json:"VbrInstanceId" xml:"VbrInstanceId"`
+	LinkStatus          string `json:"LinkStatus" xml:"LinkStatus"`
+	PacketLoss          int    `json:"PacketLoss" xml:"PacketLoss"`
+	HealthCheckSourceIp string `json:"HealthCheckSourceIp" xml:"HealthCheckSourceIp"`
+	HealthCheckTargetIp string `json:"HealthCheckTargetIp" xml:"HealthCheckTargetIp"`
+	Delay               int    `json:"Delay" xml:"Delay"`
+}

+ 21 - 0
services/cbn/struct_vbr_health_checks.go

@@ -0,0 +1,21 @@
+package cbn
+
+//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.
+
+// VbrHealthChecks is a nested struct in cbn response
+type VbrHealthChecks struct {
+	VbrHealthCheck []VbrHealthCheck `json:"VbrHealthCheck" xml:"VbrHealthCheck"`
+}

+ 108 - 0
services/cbn/unassociate_cen_bandwidth_package.go

@@ -0,0 +1,108 @@
+package cbn
+
+//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"
+)
+
+// UnassociateCenBandwidthPackage invokes the cbn.UnassociateCenBandwidthPackage API synchronously
+// api document: https://help.aliyun.com/api/cbn/unassociatecenbandwidthpackage.html
+func (client *Client) UnassociateCenBandwidthPackage(request *UnassociateCenBandwidthPackageRequest) (response *UnassociateCenBandwidthPackageResponse, err error) {
+	response = CreateUnassociateCenBandwidthPackageResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UnassociateCenBandwidthPackageWithChan invokes the cbn.UnassociateCenBandwidthPackage API asynchronously
+// api document: https://help.aliyun.com/api/cbn/unassociatecenbandwidthpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnassociateCenBandwidthPackageWithChan(request *UnassociateCenBandwidthPackageRequest) (<-chan *UnassociateCenBandwidthPackageResponse, <-chan error) {
+	responseChan := make(chan *UnassociateCenBandwidthPackageResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UnassociateCenBandwidthPackage(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UnassociateCenBandwidthPackageWithCallback invokes the cbn.UnassociateCenBandwidthPackage API asynchronously
+// api document: https://help.aliyun.com/api/cbn/unassociatecenbandwidthpackage.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UnassociateCenBandwidthPackageWithCallback(request *UnassociateCenBandwidthPackageRequest, callback func(response *UnassociateCenBandwidthPackageResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UnassociateCenBandwidthPackageResponse
+		var err error
+		defer close(result)
+		response, err = client.UnassociateCenBandwidthPackage(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UnassociateCenBandwidthPackageRequest is the request struct for api UnassociateCenBandwidthPackage
+type UnassociateCenBandwidthPackageRequest struct {
+	*requests.RpcRequest
+	OwnerAccount          string           `position:"Query" name:"OwnerAccount"`
+	OwnerId               requests.Integer `position:"Query" name:"OwnerId"`
+	ResourceOwnerAccount  string           `position:"Query" name:"ResourceOwnerAccount"`
+	ResourceOwnerId       requests.Integer `position:"Query" name:"ResourceOwnerId"`
+	CenId                 string           `position:"Query" name:"CenId"`
+	CenBandwidthPackageId string           `position:"Query" name:"CenBandwidthPackageId"`
+}
+
+// UnassociateCenBandwidthPackageResponse is the response struct for api UnassociateCenBandwidthPackage
+type UnassociateCenBandwidthPackageResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUnassociateCenBandwidthPackageRequest creates a request to invoke UnassociateCenBandwidthPackage API
+func CreateUnassociateCenBandwidthPackageRequest() (request *UnassociateCenBandwidthPackageRequest) {
+	request = &UnassociateCenBandwidthPackageRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("Cbn", "2017-09-12", "UnassociateCenBandwidthPackage", "cbn", "openAPI")
+	return
+}
+
+// CreateUnassociateCenBandwidthPackageResponse creates a response to parse from UnassociateCenBandwidthPackage response
+func CreateUnassociateCenBandwidthPackageResponse() (response *UnassociateCenBandwidthPackageResponse) {
+	response = &UnassociateCenBandwidthPackageResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}