Browse Source

SCDN SDK Auto Released By xiaoyao,Version:1.19.2

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 7 years ago
parent
commit
fc3613d345
68 changed files with 4143 additions and 0 deletions
  1. 3 0
      ChangeLog.txt
  2. 110 0
      services/scdn/add_scdn_domain.go
  3. 107 0
      services/scdn/batch_delete_scdn_domain_configs.go
  4. 108 0
      services/scdn/check_scdn_service.go
  5. 81 0
      services/scdn/client.go
  6. 107 0
      services/scdn/delete_scdn_domain.go
  7. 109 0
      services/scdn/describe_scdn_certificate_detail.go
  8. 106 0
      services/scdn/describe_scdn_certificate_list.go
  9. 116 0
      services/scdn/describe_scdn_domain_bps_data.go
  10. 105 0
      services/scdn/describe_scdn_domain_certificate_info.go
  11. 105 0
      services/scdn/describe_scdn_domain_cname.go
  12. 107 0
      services/scdn/describe_scdn_domain_configs.go
  13. 106 0
      services/scdn/describe_scdn_domain_detail.go
  14. 112 0
      services/scdn/describe_scdn_domain_hit_rate_data.go
  15. 114 0
      services/scdn/describe_scdn_domain_http_code_data.go
  16. 110 0
      services/scdn/describe_scdn_domain_log.go
  17. 114 0
      services/scdn/describe_scdn_domain_origin_bps_data.go
  18. 114 0
      services/scdn/describe_scdn_domain_origin_traffic_data.go
  19. 114 0
      services/scdn/describe_scdn_domain_qps_data.go
  20. 116 0
      services/scdn/describe_scdn_domain_traffic_data.go
  21. 112 0
      services/scdn/describe_scdn_refresh_quota.go
  22. 118 0
      services/scdn/describe_scdn_refresh_tasks.go
  23. 122 0
      services/scdn/describe_scdn_service.go
  24. 117 0
      services/scdn/describe_scdn_user_domains.go
  25. 113 0
      services/scdn/describe_scdn_user_quota.go
  26. 106 0
      services/scdn/preload_scdn_object_caches.go
  27. 107 0
      services/scdn/refresh_scdn_object_caches.go
  28. 111 0
      services/scdn/set_scdn_domain_certificate.go
  29. 105 0
      services/scdn/start_scdn_domain.go
  30. 105 0
      services/scdn/stop_scdn_domain.go
  31. 21 0
      services/scdn/struct_bps_data_per_interval.go
  32. 26 0
      services/scdn/struct_cert.go
  33. 30 0
      services/scdn/struct_cert_info.go
  34. 21 0
      services/scdn/struct_cert_infos.go
  35. 21 0
      services/scdn/struct_cert_list.go
  36. 22 0
      services/scdn/struct_certificate_list_model.go
  37. 21 0
      services/scdn/struct_cname_datas.go
  38. 23 0
      services/scdn/struct_data.go
  39. 39 0
      services/scdn/struct_data_module.go
  40. 21 0
      services/scdn/struct_data_per_interval.go
  41. 24 0
      services/scdn/struct_domain_config.go
  42. 21 0
      services/scdn/struct_domain_configs.go
  43. 32 0
      services/scdn/struct_domain_detail.go
  44. 23 0
      services/scdn/struct_domain_log_detail.go
  45. 21 0
      services/scdn/struct_domain_log_details.go
  46. 21 0
      services/scdn/struct_domains.go
  47. 22 0
      services/scdn/struct_function_arg.go
  48. 21 0
      services/scdn/struct_function_args.go
  49. 21 0
      services/scdn/struct_hit_rate_per_interval.go
  50. 23 0
      services/scdn/struct_http_code_data_module.go
  51. 21 0
      services/scdn/struct_http_code_data_per_interval.go
  52. 21 0
      services/scdn/struct_lock_reason.go
  53. 25 0
      services/scdn/struct_log_info_detail.go
  54. 21 0
      services/scdn/struct_log_infos.go
  55. 21 0
      services/scdn/struct_operation_locks.go
  56. 21 0
      services/scdn/struct_origin_bps_data_per_interval.go
  57. 21 0
      services/scdn/struct_origin_traffic_data_per_interval.go
  58. 30 0
      services/scdn/struct_page_data.go
  59. 23 0
      services/scdn/struct_page_info_detail.go
  60. 21 0
      services/scdn/struct_page_infos.go
  61. 21 0
      services/scdn/struct_qps_data_per_interval.go
  62. 25 0
      services/scdn/struct_source.go
  63. 21 0
      services/scdn/struct_sources_in_describe_scdn_domain_detail.go
  64. 21 0
      services/scdn/struct_sources_in_describe_scdn_user_domains.go
  65. 27 0
      services/scdn/struct_task.go
  66. 21 0
      services/scdn/struct_tasks.go
  67. 21 0
      services/scdn/struct_traffic_data_per_interval.go
  68. 107 0
      services/scdn/update_scdn_domain.go

+ 3 - 0
ChangeLog.txt

@@ -1,3 +1,6 @@
+2018-06-08 Version: 1.19.2
+1, Add scdn interface,support scdn.
+
 2018-06-06 Version: 1.19.1
 2018-06-06 Version: 1.19.1
 1, Change the type of srcUid to int.
 1, Change the type of srcUid to int.
 
 

+ 110 - 0
services/scdn/add_scdn_domain.go

@@ -0,0 +1,110 @@
+package scdn
+
+//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"
+)
+
+// AddScdnDomain invokes the scdn.AddScdnDomain API synchronously
+// api document: https://help.aliyun.com/api/scdn/addscdndomain.html
+func (client *Client) AddScdnDomain(request *AddScdnDomainRequest) (response *AddScdnDomainResponse, err error) {
+	response = CreateAddScdnDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddScdnDomainWithChan invokes the scdn.AddScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/addscdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddScdnDomainWithChan(request *AddScdnDomainRequest) (<-chan *AddScdnDomainResponse, <-chan error) {
+	responseChan := make(chan *AddScdnDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddScdnDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddScdnDomainWithCallback invokes the scdn.AddScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/addscdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddScdnDomainWithCallback(request *AddScdnDomainRequest, callback func(response *AddScdnDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddScdnDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.AddScdnDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddScdnDomainRequest is the request struct for api AddScdnDomain
+type AddScdnDomainRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string           `position:"Query" name:"ResourceGroupId"`
+	Sources         string           `position:"Query" name:"Sources"`
+	SecurityToken   string           `position:"Query" name:"SecurityToken"`
+	OwnerAccount    string           `position:"Query" name:"OwnerAccount"`
+	Scope           string           `position:"Query" name:"Scope"`
+	DomainName      string           `position:"Query" name:"DomainName"`
+	OwnerId         requests.Integer `position:"Query" name:"OwnerId"`
+	CheckUrl        string           `position:"Query" name:"CheckUrl"`
+}
+
+// AddScdnDomainResponse is the response struct for api AddScdnDomain
+type AddScdnDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAddScdnDomainRequest creates a request to invoke AddScdnDomain API
+func CreateAddScdnDomainRequest() (request *AddScdnDomainRequest) {
+	request = &AddScdnDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "AddScdnDomain", "", "")
+	return
+}
+
+// CreateAddScdnDomainResponse creates a response to parse from AddScdnDomain response
+func CreateAddScdnDomainResponse() (response *AddScdnDomainResponse) {
+	response = &AddScdnDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/scdn/batch_delete_scdn_domain_configs.go

@@ -0,0 +1,107 @@
+package scdn
+
+//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"
+)
+
+// BatchDeleteScdnDomainConfigs invokes the scdn.BatchDeleteScdnDomainConfigs API synchronously
+// api document: https://help.aliyun.com/api/scdn/batchdeletescdndomainconfigs.html
+func (client *Client) BatchDeleteScdnDomainConfigs(request *BatchDeleteScdnDomainConfigsRequest) (response *BatchDeleteScdnDomainConfigsResponse, err error) {
+	response = CreateBatchDeleteScdnDomainConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchDeleteScdnDomainConfigsWithChan invokes the scdn.BatchDeleteScdnDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/scdn/batchdeletescdndomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchDeleteScdnDomainConfigsWithChan(request *BatchDeleteScdnDomainConfigsRequest) (<-chan *BatchDeleteScdnDomainConfigsResponse, <-chan error) {
+	responseChan := make(chan *BatchDeleteScdnDomainConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchDeleteScdnDomainConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchDeleteScdnDomainConfigsWithCallback invokes the scdn.BatchDeleteScdnDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/scdn/batchdeletescdndomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchDeleteScdnDomainConfigsWithCallback(request *BatchDeleteScdnDomainConfigsRequest, callback func(response *BatchDeleteScdnDomainConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchDeleteScdnDomainConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchDeleteScdnDomainConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchDeleteScdnDomainConfigsRequest is the request struct for api BatchDeleteScdnDomainConfigs
+type BatchDeleteScdnDomainConfigsRequest struct {
+	*requests.RpcRequest
+	FunctionNames string           `position:"Query" name:"FunctionNames"`
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainNames   string           `position:"Query" name:"DomainNames"`
+	OwnerAccount  string           `position:"Query" name:"OwnerAccount"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// BatchDeleteScdnDomainConfigsResponse is the response struct for api BatchDeleteScdnDomainConfigs
+type BatchDeleteScdnDomainConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBatchDeleteScdnDomainConfigsRequest creates a request to invoke BatchDeleteScdnDomainConfigs API
+func CreateBatchDeleteScdnDomainConfigsRequest() (request *BatchDeleteScdnDomainConfigsRequest) {
+	request = &BatchDeleteScdnDomainConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "BatchDeleteScdnDomainConfigs", "", "")
+	return
+}
+
+// CreateBatchDeleteScdnDomainConfigsResponse creates a response to parse from BatchDeleteScdnDomainConfigs response
+func CreateBatchDeleteScdnDomainConfigsResponse() (response *BatchDeleteScdnDomainConfigsResponse) {
+	response = &BatchDeleteScdnDomainConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/scdn/check_scdn_service.go

@@ -0,0 +1,108 @@
+package scdn
+
+//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"
+)
+
+// CheckScdnService invokes the scdn.CheckScdnService API synchronously
+// api document: https://help.aliyun.com/api/scdn/checkscdnservice.html
+func (client *Client) CheckScdnService(request *CheckScdnServiceRequest) (response *CheckScdnServiceResponse, err error) {
+	response = CreateCheckScdnServiceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CheckScdnServiceWithChan invokes the scdn.CheckScdnService API asynchronously
+// api document: https://help.aliyun.com/api/scdn/checkscdnservice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckScdnServiceWithChan(request *CheckScdnServiceRequest) (<-chan *CheckScdnServiceResponse, <-chan error) {
+	responseChan := make(chan *CheckScdnServiceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CheckScdnService(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CheckScdnServiceWithCallback invokes the scdn.CheckScdnService API asynchronously
+// api document: https://help.aliyun.com/api/scdn/checkscdnservice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CheckScdnServiceWithCallback(request *CheckScdnServiceRequest, callback func(response *CheckScdnServiceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CheckScdnServiceResponse
+		var err error
+		defer close(result)
+		response, err = client.CheckScdnService(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CheckScdnServiceRequest is the request struct for api CheckScdnService
+type CheckScdnServiceRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// CheckScdnServiceResponse is the response struct for api CheckScdnService
+type CheckScdnServiceResponse struct {
+	*responses.BaseResponse
+	RequestId     string `json:"RequestId" xml:"RequestId"`
+	Enabled       bool   `json:"Enabled" xml:"Enabled"`
+	OnService     bool   `json:"OnService" xml:"OnService"`
+	InDebt        bool   `json:"InDebt" xml:"InDebt"`
+	InDebtOverdue bool   `json:"InDebtOverdue" xml:"InDebtOverdue"`
+}
+
+// CreateCheckScdnServiceRequest creates a request to invoke CheckScdnService API
+func CreateCheckScdnServiceRequest() (request *CheckScdnServiceRequest) {
+	request = &CheckScdnServiceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "CheckScdnService", "", "")
+	return
+}
+
+// CreateCheckScdnServiceResponse creates a response to parse from CheckScdnService response
+func CreateCheckScdnServiceResponse() (response *CheckScdnServiceResponse) {
+	response = &CheckScdnServiceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 81 - 0
services/scdn/client.go

@@ -0,0 +1,81 @@
+package scdn
+
+//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
+}

+ 107 - 0
services/scdn/delete_scdn_domain.go

@@ -0,0 +1,107 @@
+package scdn
+
+//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"
+)
+
+// DeleteScdnDomain invokes the scdn.DeleteScdnDomain API synchronously
+// api document: https://help.aliyun.com/api/scdn/deletescdndomain.html
+func (client *Client) DeleteScdnDomain(request *DeleteScdnDomainRequest) (response *DeleteScdnDomainResponse, err error) {
+	response = CreateDeleteScdnDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteScdnDomainWithChan invokes the scdn.DeleteScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/deletescdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteScdnDomainWithChan(request *DeleteScdnDomainRequest) (<-chan *DeleteScdnDomainResponse, <-chan error) {
+	responseChan := make(chan *DeleteScdnDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteScdnDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteScdnDomainWithCallback invokes the scdn.DeleteScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/deletescdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteScdnDomainWithCallback(request *DeleteScdnDomainRequest, callback func(response *DeleteScdnDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteScdnDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteScdnDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteScdnDomainRequest is the request struct for api DeleteScdnDomain
+type DeleteScdnDomainRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string           `position:"Query" name:"ResourceGroupId"`
+	SecurityToken   string           `position:"Query" name:"SecurityToken"`
+	OwnerAccount    string           `position:"Query" name:"OwnerAccount"`
+	DomainName      string           `position:"Query" name:"DomainName"`
+	OwnerId         requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteScdnDomainResponse is the response struct for api DeleteScdnDomain
+type DeleteScdnDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteScdnDomainRequest creates a request to invoke DeleteScdnDomain API
+func CreateDeleteScdnDomainRequest() (request *DeleteScdnDomainRequest) {
+	request = &DeleteScdnDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DeleteScdnDomain", "", "")
+	return
+}
+
+// CreateDeleteScdnDomainResponse creates a response to parse from DeleteScdnDomain response
+func CreateDeleteScdnDomainResponse() (response *DeleteScdnDomainResponse) {
+	response = &DeleteScdnDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/scdn/describe_scdn_certificate_detail.go

@@ -0,0 +1,109 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnCertificateDetail invokes the scdn.DescribeScdnCertificateDetail API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdncertificatedetail.html
+func (client *Client) DescribeScdnCertificateDetail(request *DescribeScdnCertificateDetailRequest) (response *DescribeScdnCertificateDetailResponse, err error) {
+	response = CreateDescribeScdnCertificateDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnCertificateDetailWithChan invokes the scdn.DescribeScdnCertificateDetail API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdncertificatedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnCertificateDetailWithChan(request *DescribeScdnCertificateDetailRequest) (<-chan *DescribeScdnCertificateDetailResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnCertificateDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnCertificateDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnCertificateDetailWithCallback invokes the scdn.DescribeScdnCertificateDetail API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdncertificatedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnCertificateDetailWithCallback(request *DescribeScdnCertificateDetailRequest, callback func(response *DescribeScdnCertificateDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnCertificateDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnCertificateDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnCertificateDetailRequest is the request struct for api DescribeScdnCertificateDetail
+type DescribeScdnCertificateDetailRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	CertName      string           `position:"Query" name:"CertName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnCertificateDetailResponse is the response struct for api DescribeScdnCertificateDetail
+type DescribeScdnCertificateDetailResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Cert      string `json:"Cert" xml:"Cert"`
+	Key       string `json:"Key" xml:"Key"`
+	CertId    int    `json:"CertId" xml:"CertId"`
+	CertName  string `json:"CertName" xml:"CertName"`
+}
+
+// CreateDescribeScdnCertificateDetailRequest creates a request to invoke DescribeScdnCertificateDetail API
+func CreateDescribeScdnCertificateDetailRequest() (request *DescribeScdnCertificateDetailRequest) {
+	request = &DescribeScdnCertificateDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnCertificateDetail", "", "")
+	return
+}
+
+// CreateDescribeScdnCertificateDetailResponse creates a response to parse from DescribeScdnCertificateDetail response
+func CreateDescribeScdnCertificateDetailResponse() (response *DescribeScdnCertificateDetailResponse) {
+	response = &DescribeScdnCertificateDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/scdn/describe_scdn_certificate_list.go

@@ -0,0 +1,106 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnCertificateList invokes the scdn.DescribeScdnCertificateList API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdncertificatelist.html
+func (client *Client) DescribeScdnCertificateList(request *DescribeScdnCertificateListRequest) (response *DescribeScdnCertificateListResponse, err error) {
+	response = CreateDescribeScdnCertificateListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnCertificateListWithChan invokes the scdn.DescribeScdnCertificateList API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdncertificatelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnCertificateListWithChan(request *DescribeScdnCertificateListRequest) (<-chan *DescribeScdnCertificateListResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnCertificateListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnCertificateList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnCertificateListWithCallback invokes the scdn.DescribeScdnCertificateList API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdncertificatelist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnCertificateListWithCallback(request *DescribeScdnCertificateListRequest, callback func(response *DescribeScdnCertificateListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnCertificateListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnCertificateList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnCertificateListRequest is the request struct for api DescribeScdnCertificateList
+type DescribeScdnCertificateListRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnCertificateListResponse is the response struct for api DescribeScdnCertificateList
+type DescribeScdnCertificateListResponse struct {
+	*responses.BaseResponse
+	RequestId            string               `json:"RequestId" xml:"RequestId"`
+	CertificateListModel CertificateListModel `json:"CertificateListModel" xml:"CertificateListModel"`
+}
+
+// CreateDescribeScdnCertificateListRequest creates a request to invoke DescribeScdnCertificateList API
+func CreateDescribeScdnCertificateListRequest() (request *DescribeScdnCertificateListRequest) {
+	request = &DescribeScdnCertificateListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnCertificateList", "", "")
+	return
+}
+
+// CreateDescribeScdnCertificateListResponse creates a response to parse from DescribeScdnCertificateList response
+func CreateDescribeScdnCertificateListResponse() (response *DescribeScdnCertificateListResponse) {
+	response = &DescribeScdnCertificateListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/scdn/describe_scdn_domain_bps_data.go

@@ -0,0 +1,116 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainBpsData invokes the scdn.DescribeScdnDomainBpsData API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainbpsdata.html
+func (client *Client) DescribeScdnDomainBpsData(request *DescribeScdnDomainBpsDataRequest) (response *DescribeScdnDomainBpsDataResponse, err error) {
+	response = CreateDescribeScdnDomainBpsDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainBpsDataWithChan invokes the scdn.DescribeScdnDomainBpsData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainbpsdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainBpsDataWithChan(request *DescribeScdnDomainBpsDataRequest) (<-chan *DescribeScdnDomainBpsDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainBpsDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainBpsData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainBpsDataWithCallback invokes the scdn.DescribeScdnDomainBpsData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainbpsdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainBpsDataWithCallback(request *DescribeScdnDomainBpsDataRequest, callback func(response *DescribeScdnDomainBpsDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainBpsDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainBpsData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainBpsDataRequest is the request struct for api DescribeScdnDomainBpsData
+type DescribeScdnDomainBpsDataRequest struct {
+	*requests.RpcRequest
+	LocationNameEn string           `position:"Query" name:"LocationNameEn"`
+	StartTime      string           `position:"Query" name:"StartTime"`
+	IspNameEn      string           `position:"Query" name:"IspNameEn"`
+	SecurityToken  string           `position:"Query" name:"SecurityToken"`
+	DomainName     string           `position:"Query" name:"DomainName"`
+	EndTime        string           `position:"Query" name:"EndTime"`
+	OwnerId        requests.Integer `position:"Query" name:"OwnerId"`
+	Version        string           `position:"Query" name:"Version"`
+	Interval       string           `position:"Query" name:"Interval"`
+}
+
+// DescribeScdnDomainBpsDataResponse is the response struct for api DescribeScdnDomainBpsData
+type DescribeScdnDomainBpsDataResponse struct {
+	*responses.BaseResponse
+	RequestId          string             `json:"RequestId" xml:"RequestId"`
+	DomainName         string             `json:"DomainName" xml:"DomainName"`
+	StartTime          string             `json:"StartTime" xml:"StartTime"`
+	EndTime            string             `json:"EndTime" xml:"EndTime"`
+	DataInterval       string             `json:"DataInterval" xml:"DataInterval"`
+	BpsDataPerInterval BpsDataPerInterval `json:"BpsDataPerInterval" xml:"BpsDataPerInterval"`
+}
+
+// CreateDescribeScdnDomainBpsDataRequest creates a request to invoke DescribeScdnDomainBpsData API
+func CreateDescribeScdnDomainBpsDataRequest() (request *DescribeScdnDomainBpsDataRequest) {
+	request = &DescribeScdnDomainBpsDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainBpsData", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainBpsDataResponse creates a response to parse from DescribeScdnDomainBpsData response
+func CreateDescribeScdnDomainBpsDataResponse() (response *DescribeScdnDomainBpsDataResponse) {
+	response = &DescribeScdnDomainBpsDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/scdn/describe_scdn_domain_certificate_info.go

@@ -0,0 +1,105 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainCertificateInfo invokes the scdn.DescribeScdnDomainCertificateInfo API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaincertificateinfo.html
+func (client *Client) DescribeScdnDomainCertificateInfo(request *DescribeScdnDomainCertificateInfoRequest) (response *DescribeScdnDomainCertificateInfoResponse, err error) {
+	response = CreateDescribeScdnDomainCertificateInfoResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainCertificateInfoWithChan invokes the scdn.DescribeScdnDomainCertificateInfo API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaincertificateinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainCertificateInfoWithChan(request *DescribeScdnDomainCertificateInfoRequest) (<-chan *DescribeScdnDomainCertificateInfoResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainCertificateInfoResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainCertificateInfo(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainCertificateInfoWithCallback invokes the scdn.DescribeScdnDomainCertificateInfo API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaincertificateinfo.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainCertificateInfoWithCallback(request *DescribeScdnDomainCertificateInfoRequest, callback func(response *DescribeScdnDomainCertificateInfoResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainCertificateInfoResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainCertificateInfo(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainCertificateInfoRequest is the request struct for api DescribeScdnDomainCertificateInfo
+type DescribeScdnDomainCertificateInfoRequest struct {
+	*requests.RpcRequest
+	DomainName string           `position:"Query" name:"DomainName"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnDomainCertificateInfoResponse is the response struct for api DescribeScdnDomainCertificateInfo
+type DescribeScdnDomainCertificateInfoResponse struct {
+	*responses.BaseResponse
+	RequestId string    `json:"RequestId" xml:"RequestId"`
+	CertInfos CertInfos `json:"CertInfos" xml:"CertInfos"`
+}
+
+// CreateDescribeScdnDomainCertificateInfoRequest creates a request to invoke DescribeScdnDomainCertificateInfo API
+func CreateDescribeScdnDomainCertificateInfoRequest() (request *DescribeScdnDomainCertificateInfoRequest) {
+	request = &DescribeScdnDomainCertificateInfoRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainCertificateInfo", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainCertificateInfoResponse creates a response to parse from DescribeScdnDomainCertificateInfo response
+func CreateDescribeScdnDomainCertificateInfoResponse() (response *DescribeScdnDomainCertificateInfoResponse) {
+	response = &DescribeScdnDomainCertificateInfoResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/scdn/describe_scdn_domain_cname.go

@@ -0,0 +1,105 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainCname invokes the scdn.DescribeScdnDomainCname API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaincname.html
+func (client *Client) DescribeScdnDomainCname(request *DescribeScdnDomainCnameRequest) (response *DescribeScdnDomainCnameResponse, err error) {
+	response = CreateDescribeScdnDomainCnameResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainCnameWithChan invokes the scdn.DescribeScdnDomainCname API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaincname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainCnameWithChan(request *DescribeScdnDomainCnameRequest) (<-chan *DescribeScdnDomainCnameResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainCnameResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainCname(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainCnameWithCallback invokes the scdn.DescribeScdnDomainCname API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaincname.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainCnameWithCallback(request *DescribeScdnDomainCnameRequest, callback func(response *DescribeScdnDomainCnameResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainCnameResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainCname(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainCnameRequest is the request struct for api DescribeScdnDomainCname
+type DescribeScdnDomainCnameRequest struct {
+	*requests.RpcRequest
+	DomainName string           `position:"Query" name:"DomainName"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnDomainCnameResponse is the response struct for api DescribeScdnDomainCname
+type DescribeScdnDomainCnameResponse struct {
+	*responses.BaseResponse
+	RequestId  string     `json:"RequestId" xml:"RequestId"`
+	CnameDatas CnameDatas `json:"CnameDatas" xml:"CnameDatas"`
+}
+
+// CreateDescribeScdnDomainCnameRequest creates a request to invoke DescribeScdnDomainCname API
+func CreateDescribeScdnDomainCnameRequest() (request *DescribeScdnDomainCnameRequest) {
+	request = &DescribeScdnDomainCnameRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainCname", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainCnameResponse creates a response to parse from DescribeScdnDomainCname response
+func CreateDescribeScdnDomainCnameResponse() (response *DescribeScdnDomainCnameResponse) {
+	response = &DescribeScdnDomainCnameResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/scdn/describe_scdn_domain_configs.go

@@ -0,0 +1,107 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainConfigs invokes the scdn.DescribeScdnDomainConfigs API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainconfigs.html
+func (client *Client) DescribeScdnDomainConfigs(request *DescribeScdnDomainConfigsRequest) (response *DescribeScdnDomainConfigsResponse, err error) {
+	response = CreateDescribeScdnDomainConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainConfigsWithChan invokes the scdn.DescribeScdnDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainConfigsWithChan(request *DescribeScdnDomainConfigsRequest) (<-chan *DescribeScdnDomainConfigsResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainConfigsWithCallback invokes the scdn.DescribeScdnDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainConfigsWithCallback(request *DescribeScdnDomainConfigsRequest, callback func(response *DescribeScdnDomainConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainConfigsRequest is the request struct for api DescribeScdnDomainConfigs
+type DescribeScdnDomainConfigsRequest struct {
+	*requests.RpcRequest
+	FunctionNames string           `position:"Query" name:"FunctionNames"`
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnDomainConfigsResponse is the response struct for api DescribeScdnDomainConfigs
+type DescribeScdnDomainConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId     string        `json:"RequestId" xml:"RequestId"`
+	DomainConfigs DomainConfigs `json:"DomainConfigs" xml:"DomainConfigs"`
+}
+
+// CreateDescribeScdnDomainConfigsRequest creates a request to invoke DescribeScdnDomainConfigs API
+func CreateDescribeScdnDomainConfigsRequest() (request *DescribeScdnDomainConfigsRequest) {
+	request = &DescribeScdnDomainConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainConfigs", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainConfigsResponse creates a response to parse from DescribeScdnDomainConfigs response
+func CreateDescribeScdnDomainConfigsResponse() (response *DescribeScdnDomainConfigsResponse) {
+	response = &DescribeScdnDomainConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/scdn/describe_scdn_domain_detail.go

@@ -0,0 +1,106 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainDetail invokes the scdn.DescribeScdnDomainDetail API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaindetail.html
+func (client *Client) DescribeScdnDomainDetail(request *DescribeScdnDomainDetailRequest) (response *DescribeScdnDomainDetailResponse, err error) {
+	response = CreateDescribeScdnDomainDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainDetailWithChan invokes the scdn.DescribeScdnDomainDetail API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaindetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainDetailWithChan(request *DescribeScdnDomainDetailRequest) (<-chan *DescribeScdnDomainDetailResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainDetailWithCallback invokes the scdn.DescribeScdnDomainDetail API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaindetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainDetailWithCallback(request *DescribeScdnDomainDetailRequest, callback func(response *DescribeScdnDomainDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainDetailRequest is the request struct for api DescribeScdnDomainDetail
+type DescribeScdnDomainDetailRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnDomainDetailResponse is the response struct for api DescribeScdnDomainDetail
+type DescribeScdnDomainDetailResponse struct {
+	*responses.BaseResponse
+	RequestId    string       `json:"RequestId" xml:"RequestId"`
+	DomainDetail DomainDetail `json:"DomainDetail" xml:"DomainDetail"`
+}
+
+// CreateDescribeScdnDomainDetailRequest creates a request to invoke DescribeScdnDomainDetail API
+func CreateDescribeScdnDomainDetailRequest() (request *DescribeScdnDomainDetailRequest) {
+	request = &DescribeScdnDomainDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainDetail", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainDetailResponse creates a response to parse from DescribeScdnDomainDetail response
+func CreateDescribeScdnDomainDetailResponse() (response *DescribeScdnDomainDetailResponse) {
+	response = &DescribeScdnDomainDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/scdn/describe_scdn_domain_hit_rate_data.go

@@ -0,0 +1,112 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainHitRateData invokes the scdn.DescribeScdnDomainHitRateData API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainhitratedata.html
+func (client *Client) DescribeScdnDomainHitRateData(request *DescribeScdnDomainHitRateDataRequest) (response *DescribeScdnDomainHitRateDataResponse, err error) {
+	response = CreateDescribeScdnDomainHitRateDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainHitRateDataWithChan invokes the scdn.DescribeScdnDomainHitRateData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainhitratedata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainHitRateDataWithChan(request *DescribeScdnDomainHitRateDataRequest) (<-chan *DescribeScdnDomainHitRateDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainHitRateDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainHitRateData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainHitRateDataWithCallback invokes the scdn.DescribeScdnDomainHitRateData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainhitratedata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainHitRateDataWithCallback(request *DescribeScdnDomainHitRateDataRequest, callback func(response *DescribeScdnDomainHitRateDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainHitRateDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainHitRateData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainHitRateDataRequest is the request struct for api DescribeScdnDomainHitRateData
+type DescribeScdnDomainHitRateDataRequest struct {
+	*requests.RpcRequest
+	StartTime  string           `position:"Query" name:"StartTime"`
+	DomainName string           `position:"Query" name:"DomainName"`
+	EndTime    string           `position:"Query" name:"EndTime"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+	Interval   string           `position:"Query" name:"Interval"`
+}
+
+// DescribeScdnDomainHitRateDataResponse is the response struct for api DescribeScdnDomainHitRateData
+type DescribeScdnDomainHitRateDataResponse struct {
+	*responses.BaseResponse
+	RequestId          string             `json:"RequestId" xml:"RequestId"`
+	DomainName         string             `json:"DomainName" xml:"DomainName"`
+	StartTime          string             `json:"StartTime" xml:"StartTime"`
+	EndTime            string             `json:"EndTime" xml:"EndTime"`
+	DataInterval       string             `json:"DataInterval" xml:"DataInterval"`
+	HitRatePerInterval HitRatePerInterval `json:"HitRatePerInterval" xml:"HitRatePerInterval"`
+}
+
+// CreateDescribeScdnDomainHitRateDataRequest creates a request to invoke DescribeScdnDomainHitRateData API
+func CreateDescribeScdnDomainHitRateDataRequest() (request *DescribeScdnDomainHitRateDataRequest) {
+	request = &DescribeScdnDomainHitRateDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainHitRateData", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainHitRateDataResponse creates a response to parse from DescribeScdnDomainHitRateData response
+func CreateDescribeScdnDomainHitRateDataResponse() (response *DescribeScdnDomainHitRateDataResponse) {
+	response = &DescribeScdnDomainHitRateDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/scdn/describe_scdn_domain_http_code_data.go

@@ -0,0 +1,114 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainHttpCodeData invokes the scdn.DescribeScdnDomainHttpCodeData API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainhttpcodedata.html
+func (client *Client) DescribeScdnDomainHttpCodeData(request *DescribeScdnDomainHttpCodeDataRequest) (response *DescribeScdnDomainHttpCodeDataResponse, err error) {
+	response = CreateDescribeScdnDomainHttpCodeDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainHttpCodeDataWithChan invokes the scdn.DescribeScdnDomainHttpCodeData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainhttpcodedata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainHttpCodeDataWithChan(request *DescribeScdnDomainHttpCodeDataRequest) (<-chan *DescribeScdnDomainHttpCodeDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainHttpCodeDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainHttpCodeData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainHttpCodeDataWithCallback invokes the scdn.DescribeScdnDomainHttpCodeData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainhttpcodedata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainHttpCodeDataWithCallback(request *DescribeScdnDomainHttpCodeDataRequest, callback func(response *DescribeScdnDomainHttpCodeDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainHttpCodeDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainHttpCodeData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainHttpCodeDataRequest is the request struct for api DescribeScdnDomainHttpCodeData
+type DescribeScdnDomainHttpCodeDataRequest struct {
+	*requests.RpcRequest
+	LocationNameEn string           `position:"Query" name:"LocationNameEn"`
+	StartTime      string           `position:"Query" name:"StartTime"`
+	IspNameEn      string           `position:"Query" name:"IspNameEn"`
+	DomainName     string           `position:"Query" name:"DomainName"`
+	EndTime        string           `position:"Query" name:"EndTime"`
+	OwnerId        requests.Integer `position:"Query" name:"OwnerId"`
+	Interval       string           `position:"Query" name:"Interval"`
+}
+
+// DescribeScdnDomainHttpCodeDataResponse is the response struct for api DescribeScdnDomainHttpCodeData
+type DescribeScdnDomainHttpCodeDataResponse struct {
+	*responses.BaseResponse
+	RequestId       string          `json:"RequestId" xml:"RequestId"`
+	DomainName      string          `json:"DomainName" xml:"DomainName"`
+	StartTime       string          `json:"StartTime" xml:"StartTime"`
+	EndTime         string          `json:"EndTime" xml:"EndTime"`
+	DataInterval    string          `json:"DataInterval" xml:"DataInterval"`
+	DataPerInterval DataPerInterval `json:"DataPerInterval" xml:"DataPerInterval"`
+}
+
+// CreateDescribeScdnDomainHttpCodeDataRequest creates a request to invoke DescribeScdnDomainHttpCodeData API
+func CreateDescribeScdnDomainHttpCodeDataRequest() (request *DescribeScdnDomainHttpCodeDataRequest) {
+	request = &DescribeScdnDomainHttpCodeDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainHttpCodeData", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainHttpCodeDataResponse creates a response to parse from DescribeScdnDomainHttpCodeData response
+func CreateDescribeScdnDomainHttpCodeDataResponse() (response *DescribeScdnDomainHttpCodeDataResponse) {
+	response = &DescribeScdnDomainHttpCodeDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/scdn/describe_scdn_domain_log.go

@@ -0,0 +1,110 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainLog invokes the scdn.DescribeScdnDomainLog API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainlog.html
+func (client *Client) DescribeScdnDomainLog(request *DescribeScdnDomainLogRequest) (response *DescribeScdnDomainLogResponse, err error) {
+	response = CreateDescribeScdnDomainLogResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainLogWithChan invokes the scdn.DescribeScdnDomainLog API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainlog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainLogWithChan(request *DescribeScdnDomainLogRequest) (<-chan *DescribeScdnDomainLogResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainLogResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainLog(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainLogWithCallback invokes the scdn.DescribeScdnDomainLog API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainlog.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainLogWithCallback(request *DescribeScdnDomainLogRequest, callback func(response *DescribeScdnDomainLogResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainLogResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainLog(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainLogRequest is the request struct for api DescribeScdnDomainLog
+type DescribeScdnDomainLogRequest struct {
+	*requests.RpcRequest
+	StartTime  string           `position:"Query" name:"StartTime"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	DomainName string           `position:"Query" name:"DomainName"`
+	EndTime    string           `position:"Query" name:"EndTime"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnDomainLogResponse is the response struct for api DescribeScdnDomainLog
+type DescribeScdnDomainLogResponse struct {
+	*responses.BaseResponse
+	RequestId        string           `json:"RequestId" xml:"RequestId"`
+	DomainName       string           `json:"DomainName" xml:"DomainName"`
+	DomainLogDetails DomainLogDetails `json:"DomainLogDetails" xml:"DomainLogDetails"`
+}
+
+// CreateDescribeScdnDomainLogRequest creates a request to invoke DescribeScdnDomainLog API
+func CreateDescribeScdnDomainLogRequest() (request *DescribeScdnDomainLogRequest) {
+	request = &DescribeScdnDomainLogRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainLog", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainLogResponse creates a response to parse from DescribeScdnDomainLog response
+func CreateDescribeScdnDomainLogResponse() (response *DescribeScdnDomainLogResponse) {
+	response = &DescribeScdnDomainLogResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/scdn/describe_scdn_domain_origin_bps_data.go

@@ -0,0 +1,114 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainOriginBpsData invokes the scdn.DescribeScdnDomainOriginBpsData API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainoriginbpsdata.html
+func (client *Client) DescribeScdnDomainOriginBpsData(request *DescribeScdnDomainOriginBpsDataRequest) (response *DescribeScdnDomainOriginBpsDataResponse, err error) {
+	response = CreateDescribeScdnDomainOriginBpsDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainOriginBpsDataWithChan invokes the scdn.DescribeScdnDomainOriginBpsData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainoriginbpsdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainOriginBpsDataWithChan(request *DescribeScdnDomainOriginBpsDataRequest) (<-chan *DescribeScdnDomainOriginBpsDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainOriginBpsDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainOriginBpsData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainOriginBpsDataWithCallback invokes the scdn.DescribeScdnDomainOriginBpsData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainoriginbpsdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainOriginBpsDataWithCallback(request *DescribeScdnDomainOriginBpsDataRequest, callback func(response *DescribeScdnDomainOriginBpsDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainOriginBpsDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainOriginBpsData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainOriginBpsDataRequest is the request struct for api DescribeScdnDomainOriginBpsData
+type DescribeScdnDomainOriginBpsDataRequest struct {
+	*requests.RpcRequest
+	StartTime     string           `position:"Query" name:"StartTime"`
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	EndTime       string           `position:"Query" name:"EndTime"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+	Version       string           `position:"Query" name:"Version"`
+	Interval      string           `position:"Query" name:"Interval"`
+}
+
+// DescribeScdnDomainOriginBpsDataResponse is the response struct for api DescribeScdnDomainOriginBpsData
+type DescribeScdnDomainOriginBpsDataResponse struct {
+	*responses.BaseResponse
+	RequestId                string                   `json:"RequestId" xml:"RequestId"`
+	DomainName               string                   `json:"DomainName" xml:"DomainName"`
+	StartTime                string                   `json:"StartTime" xml:"StartTime"`
+	EndTime                  string                   `json:"EndTime" xml:"EndTime"`
+	DataInterval             string                   `json:"DataInterval" xml:"DataInterval"`
+	OriginBpsDataPerInterval OriginBpsDataPerInterval `json:"OriginBpsDataPerInterval" xml:"OriginBpsDataPerInterval"`
+}
+
+// CreateDescribeScdnDomainOriginBpsDataRequest creates a request to invoke DescribeScdnDomainOriginBpsData API
+func CreateDescribeScdnDomainOriginBpsDataRequest() (request *DescribeScdnDomainOriginBpsDataRequest) {
+	request = &DescribeScdnDomainOriginBpsDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainOriginBpsData", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainOriginBpsDataResponse creates a response to parse from DescribeScdnDomainOriginBpsData response
+func CreateDescribeScdnDomainOriginBpsDataResponse() (response *DescribeScdnDomainOriginBpsDataResponse) {
+	response = &DescribeScdnDomainOriginBpsDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/scdn/describe_scdn_domain_origin_traffic_data.go

@@ -0,0 +1,114 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainOriginTrafficData invokes the scdn.DescribeScdnDomainOriginTrafficData API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainorigintrafficdata.html
+func (client *Client) DescribeScdnDomainOriginTrafficData(request *DescribeScdnDomainOriginTrafficDataRequest) (response *DescribeScdnDomainOriginTrafficDataResponse, err error) {
+	response = CreateDescribeScdnDomainOriginTrafficDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainOriginTrafficDataWithChan invokes the scdn.DescribeScdnDomainOriginTrafficData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainorigintrafficdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainOriginTrafficDataWithChan(request *DescribeScdnDomainOriginTrafficDataRequest) (<-chan *DescribeScdnDomainOriginTrafficDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainOriginTrafficDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainOriginTrafficData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainOriginTrafficDataWithCallback invokes the scdn.DescribeScdnDomainOriginTrafficData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainorigintrafficdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainOriginTrafficDataWithCallback(request *DescribeScdnDomainOriginTrafficDataRequest, callback func(response *DescribeScdnDomainOriginTrafficDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainOriginTrafficDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainOriginTrafficData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainOriginTrafficDataRequest is the request struct for api DescribeScdnDomainOriginTrafficData
+type DescribeScdnDomainOriginTrafficDataRequest struct {
+	*requests.RpcRequest
+	StartTime     string           `position:"Query" name:"StartTime"`
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	EndTime       string           `position:"Query" name:"EndTime"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+	Version       string           `position:"Query" name:"Version"`
+	Interval      string           `position:"Query" name:"Interval"`
+}
+
+// DescribeScdnDomainOriginTrafficDataResponse is the response struct for api DescribeScdnDomainOriginTrafficData
+type DescribeScdnDomainOriginTrafficDataResponse struct {
+	*responses.BaseResponse
+	RequestId                    string                       `json:"RequestId" xml:"RequestId"`
+	DomainName                   string                       `json:"DomainName" xml:"DomainName"`
+	StartTime                    string                       `json:"StartTime" xml:"StartTime"`
+	EndTime                      string                       `json:"EndTime" xml:"EndTime"`
+	DataInterval                 string                       `json:"DataInterval" xml:"DataInterval"`
+	OriginTrafficDataPerInterval OriginTrafficDataPerInterval `json:"OriginTrafficDataPerInterval" xml:"OriginTrafficDataPerInterval"`
+}
+
+// CreateDescribeScdnDomainOriginTrafficDataRequest creates a request to invoke DescribeScdnDomainOriginTrafficData API
+func CreateDescribeScdnDomainOriginTrafficDataRequest() (request *DescribeScdnDomainOriginTrafficDataRequest) {
+	request = &DescribeScdnDomainOriginTrafficDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainOriginTrafficData", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainOriginTrafficDataResponse creates a response to parse from DescribeScdnDomainOriginTrafficData response
+func CreateDescribeScdnDomainOriginTrafficDataResponse() (response *DescribeScdnDomainOriginTrafficDataResponse) {
+	response = &DescribeScdnDomainOriginTrafficDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/scdn/describe_scdn_domain_qps_data.go

@@ -0,0 +1,114 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainQpsData invokes the scdn.DescribeScdnDomainQpsData API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainqpsdata.html
+func (client *Client) DescribeScdnDomainQpsData(request *DescribeScdnDomainQpsDataRequest) (response *DescribeScdnDomainQpsDataResponse, err error) {
+	response = CreateDescribeScdnDomainQpsDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainQpsDataWithChan invokes the scdn.DescribeScdnDomainQpsData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainqpsdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainQpsDataWithChan(request *DescribeScdnDomainQpsDataRequest) (<-chan *DescribeScdnDomainQpsDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainQpsDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainQpsData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainQpsDataWithCallback invokes the scdn.DescribeScdnDomainQpsData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomainqpsdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainQpsDataWithCallback(request *DescribeScdnDomainQpsDataRequest, callback func(response *DescribeScdnDomainQpsDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainQpsDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainQpsData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainQpsDataRequest is the request struct for api DescribeScdnDomainQpsData
+type DescribeScdnDomainQpsDataRequest struct {
+	*requests.RpcRequest
+	LocationNameEn string           `position:"Query" name:"LocationNameEn"`
+	StartTime      string           `position:"Query" name:"StartTime"`
+	IspNameEn      string           `position:"Query" name:"IspNameEn"`
+	DomainName     string           `position:"Query" name:"DomainName"`
+	EndTime        string           `position:"Query" name:"EndTime"`
+	OwnerId        requests.Integer `position:"Query" name:"OwnerId"`
+	Interval       string           `position:"Query" name:"Interval"`
+}
+
+// DescribeScdnDomainQpsDataResponse is the response struct for api DescribeScdnDomainQpsData
+type DescribeScdnDomainQpsDataResponse struct {
+	*responses.BaseResponse
+	RequestId          string             `json:"RequestId" xml:"RequestId"`
+	DomainName         string             `json:"DomainName" xml:"DomainName"`
+	StartTime          string             `json:"StartTime" xml:"StartTime"`
+	EndTime            string             `json:"EndTime" xml:"EndTime"`
+	DataInterval       string             `json:"DataInterval" xml:"DataInterval"`
+	QpsDataPerInterval QpsDataPerInterval `json:"QpsDataPerInterval" xml:"QpsDataPerInterval"`
+}
+
+// CreateDescribeScdnDomainQpsDataRequest creates a request to invoke DescribeScdnDomainQpsData API
+func CreateDescribeScdnDomainQpsDataRequest() (request *DescribeScdnDomainQpsDataRequest) {
+	request = &DescribeScdnDomainQpsDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainQpsData", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainQpsDataResponse creates a response to parse from DescribeScdnDomainQpsData response
+func CreateDescribeScdnDomainQpsDataResponse() (response *DescribeScdnDomainQpsDataResponse) {
+	response = &DescribeScdnDomainQpsDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 116 - 0
services/scdn/describe_scdn_domain_traffic_data.go

@@ -0,0 +1,116 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnDomainTrafficData invokes the scdn.DescribeScdnDomainTrafficData API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaintrafficdata.html
+func (client *Client) DescribeScdnDomainTrafficData(request *DescribeScdnDomainTrafficDataRequest) (response *DescribeScdnDomainTrafficDataResponse, err error) {
+	response = CreateDescribeScdnDomainTrafficDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnDomainTrafficDataWithChan invokes the scdn.DescribeScdnDomainTrafficData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaintrafficdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainTrafficDataWithChan(request *DescribeScdnDomainTrafficDataRequest) (<-chan *DescribeScdnDomainTrafficDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnDomainTrafficDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnDomainTrafficData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnDomainTrafficDataWithCallback invokes the scdn.DescribeScdnDomainTrafficData API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdndomaintrafficdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnDomainTrafficDataWithCallback(request *DescribeScdnDomainTrafficDataRequest, callback func(response *DescribeScdnDomainTrafficDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnDomainTrafficDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnDomainTrafficData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnDomainTrafficDataRequest is the request struct for api DescribeScdnDomainTrafficData
+type DescribeScdnDomainTrafficDataRequest struct {
+	*requests.RpcRequest
+	LocationNameEn string           `position:"Query" name:"LocationNameEn"`
+	StartTime      string           `position:"Query" name:"StartTime"`
+	IspNameEn      string           `position:"Query" name:"IspNameEn"`
+	SecurityToken  string           `position:"Query" name:"SecurityToken"`
+	DomainName     string           `position:"Query" name:"DomainName"`
+	EndTime        string           `position:"Query" name:"EndTime"`
+	OwnerId        requests.Integer `position:"Query" name:"OwnerId"`
+	Version        string           `position:"Query" name:"Version"`
+	Interval       string           `position:"Query" name:"Interval"`
+}
+
+// DescribeScdnDomainTrafficDataResponse is the response struct for api DescribeScdnDomainTrafficData
+type DescribeScdnDomainTrafficDataResponse struct {
+	*responses.BaseResponse
+	RequestId              string                 `json:"RequestId" xml:"RequestId"`
+	DomainName             string                 `json:"DomainName" xml:"DomainName"`
+	StartTime              string                 `json:"StartTime" xml:"StartTime"`
+	EndTime                string                 `json:"EndTime" xml:"EndTime"`
+	DataInterval           string                 `json:"DataInterval" xml:"DataInterval"`
+	TrafficDataPerInterval TrafficDataPerInterval `json:"TrafficDataPerInterval" xml:"TrafficDataPerInterval"`
+}
+
+// CreateDescribeScdnDomainTrafficDataRequest creates a request to invoke DescribeScdnDomainTrafficData API
+func CreateDescribeScdnDomainTrafficDataRequest() (request *DescribeScdnDomainTrafficDataRequest) {
+	request = &DescribeScdnDomainTrafficDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnDomainTrafficData", "", "")
+	return
+}
+
+// CreateDescribeScdnDomainTrafficDataResponse creates a response to parse from DescribeScdnDomainTrafficData response
+func CreateDescribeScdnDomainTrafficDataResponse() (response *DescribeScdnDomainTrafficDataResponse) {
+	response = &DescribeScdnDomainTrafficDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 112 - 0
services/scdn/describe_scdn_refresh_quota.go

@@ -0,0 +1,112 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnRefreshQuota invokes the scdn.DescribeScdnRefreshQuota API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnrefreshquota.html
+func (client *Client) DescribeScdnRefreshQuota(request *DescribeScdnRefreshQuotaRequest) (response *DescribeScdnRefreshQuotaResponse, err error) {
+	response = CreateDescribeScdnRefreshQuotaResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnRefreshQuotaWithChan invokes the scdn.DescribeScdnRefreshQuota API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnrefreshquota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnRefreshQuotaWithChan(request *DescribeScdnRefreshQuotaRequest) (<-chan *DescribeScdnRefreshQuotaResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnRefreshQuotaResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnRefreshQuota(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnRefreshQuotaWithCallback invokes the scdn.DescribeScdnRefreshQuota API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnrefreshquota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnRefreshQuotaWithCallback(request *DescribeScdnRefreshQuotaRequest, callback func(response *DescribeScdnRefreshQuotaResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnRefreshQuotaResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnRefreshQuota(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnRefreshQuotaRequest is the request struct for api DescribeScdnRefreshQuota
+type DescribeScdnRefreshQuotaRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnRefreshQuotaResponse is the response struct for api DescribeScdnRefreshQuota
+type DescribeScdnRefreshQuotaResponse struct {
+	*responses.BaseResponse
+	RequestId     string `json:"RequestId" xml:"RequestId"`
+	UrlQuota      string `json:"UrlQuota" xml:"UrlQuota"`
+	DirQuota      string `json:"DirQuota" xml:"DirQuota"`
+	UrlRemain     string `json:"UrlRemain" xml:"UrlRemain"`
+	DirRemain     string `json:"DirRemain" xml:"DirRemain"`
+	PreloadQuota  string `json:"PreloadQuota" xml:"PreloadQuota"`
+	BlockQuota    string `json:"BlockQuota" xml:"BlockQuota"`
+	PreloadRemain string `json:"PreloadRemain" xml:"PreloadRemain"`
+	BlockRemain   string `json:"blockRemain" xml:"blockRemain"`
+}
+
+// CreateDescribeScdnRefreshQuotaRequest creates a request to invoke DescribeScdnRefreshQuota API
+func CreateDescribeScdnRefreshQuotaRequest() (request *DescribeScdnRefreshQuotaRequest) {
+	request = &DescribeScdnRefreshQuotaRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnRefreshQuota", "", "")
+	return
+}
+
+// CreateDescribeScdnRefreshQuotaResponse creates a response to parse from DescribeScdnRefreshQuota response
+func CreateDescribeScdnRefreshQuotaResponse() (response *DescribeScdnRefreshQuotaResponse) {
+	response = &DescribeScdnRefreshQuotaResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 118 - 0
services/scdn/describe_scdn_refresh_tasks.go

@@ -0,0 +1,118 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnRefreshTasks invokes the scdn.DescribeScdnRefreshTasks API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnrefreshtasks.html
+func (client *Client) DescribeScdnRefreshTasks(request *DescribeScdnRefreshTasksRequest) (response *DescribeScdnRefreshTasksResponse, err error) {
+	response = CreateDescribeScdnRefreshTasksResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnRefreshTasksWithChan invokes the scdn.DescribeScdnRefreshTasks API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnrefreshtasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnRefreshTasksWithChan(request *DescribeScdnRefreshTasksRequest) (<-chan *DescribeScdnRefreshTasksResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnRefreshTasksResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnRefreshTasks(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnRefreshTasksWithCallback invokes the scdn.DescribeScdnRefreshTasks API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnrefreshtasks.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnRefreshTasksWithCallback(request *DescribeScdnRefreshTasksRequest, callback func(response *DescribeScdnRefreshTasksResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnRefreshTasksResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnRefreshTasks(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnRefreshTasksRequest is the request struct for api DescribeScdnRefreshTasks
+type DescribeScdnRefreshTasksRequest struct {
+	*requests.RpcRequest
+	ObjectPath      string           `position:"Query" name:"ObjectPath"`
+	DomainName      string           `position:"Query" name:"DomainName"`
+	EndTime         string           `position:"Query" name:"EndTime"`
+	StartTime       string           `position:"Query" name:"StartTime"`
+	OwnerId         requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber      requests.Integer `position:"Query" name:"PageNumber"`
+	ResourceGroupId string           `position:"Query" name:"ResourceGroupId"`
+	SecurityToken   string           `position:"Query" name:"SecurityToken"`
+	PageSize        requests.Integer `position:"Query" name:"PageSize"`
+	ObjectType      string           `position:"Query" name:"ObjectType"`
+	TaskId          string           `position:"Query" name:"TaskId"`
+	Status          string           `position:"Query" name:"Status"`
+}
+
+// DescribeScdnRefreshTasksResponse is the response struct for api DescribeScdnRefreshTasks
+type DescribeScdnRefreshTasksResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	PageNumber int    `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int    `json:"PageSize" xml:"PageSize"`
+	TotalCount int    `json:"TotalCount" xml:"TotalCount"`
+	Tasks      Tasks  `json:"Tasks" xml:"Tasks"`
+}
+
+// CreateDescribeScdnRefreshTasksRequest creates a request to invoke DescribeScdnRefreshTasks API
+func CreateDescribeScdnRefreshTasksRequest() (request *DescribeScdnRefreshTasksRequest) {
+	request = &DescribeScdnRefreshTasksRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnRefreshTasks", "", "")
+	return
+}
+
+// CreateDescribeScdnRefreshTasksResponse creates a response to parse from DescribeScdnRefreshTasks response
+func CreateDescribeScdnRefreshTasksResponse() (response *DescribeScdnRefreshTasksResponse) {
+	response = &DescribeScdnRefreshTasksResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 122 - 0
services/scdn/describe_scdn_service.go

@@ -0,0 +1,122 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnService invokes the scdn.DescribeScdnService API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnservice.html
+func (client *Client) DescribeScdnService(request *DescribeScdnServiceRequest) (response *DescribeScdnServiceResponse, err error) {
+	response = CreateDescribeScdnServiceResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnServiceWithChan invokes the scdn.DescribeScdnService API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnservice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnServiceWithChan(request *DescribeScdnServiceRequest) (<-chan *DescribeScdnServiceResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnServiceResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnService(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnServiceWithCallback invokes the scdn.DescribeScdnService API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnservice.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnServiceWithCallback(request *DescribeScdnServiceRequest, callback func(response *DescribeScdnServiceResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnServiceResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnService(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnServiceRequest is the request struct for api DescribeScdnService
+type DescribeScdnServiceRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnServiceResponse is the response struct for api DescribeScdnService
+type DescribeScdnServiceResponse struct {
+	*responses.BaseResponse
+	RequestId              string         `json:"RequestId" xml:"RequestId"`
+	InstanceId             string         `json:"InstanceId" xml:"InstanceId"`
+	OpenTime               string         `json:"OpenTime" xml:"OpenTime"`
+	EndTime                string         `json:"EndTime" xml:"EndTime"`
+	ProtectType            string         `json:"ProtectType" xml:"ProtectType"`
+	ProtectTypeValue       string         `json:"ProtectTypeValue" xml:"ProtectTypeValue"`
+	Bandwidth              string         `json:"Bandwidth" xml:"Bandwidth"`
+	CcProtection           string         `json:"CcProtection" xml:"CcProtection"`
+	DDoSBasic              string         `json:"DDoSBasic" xml:"DDoSBasic"`
+	DomainCount            string         `json:"DomainCount" xml:"DomainCount"`
+	ElasticProtection      string         `json:"ElasticProtection" xml:"ElasticProtection"`
+	BandwidthValue         string         `json:"BandwidthValue" xml:"BandwidthValue"`
+	CcProtectionValue      string         `json:"CcProtectionValue" xml:"CcProtectionValue"`
+	DDoSBasicValue         string         `json:"DDoSBasicValue" xml:"DDoSBasicValue"`
+	DomainCountValue       string         `json:"DomainCountValue" xml:"DomainCountValue"`
+	ElasticProtectionValue string         `json:"ElasticProtectionValue" xml:"ElasticProtectionValue"`
+	PriceType              string         `json:"PriceType" xml:"PriceType"`
+	PricingCycle           string         `json:"PricingCycle" xml:"PricingCycle"`
+	OperationLocks         OperationLocks `json:"OperationLocks" xml:"OperationLocks"`
+}
+
+// CreateDescribeScdnServiceRequest creates a request to invoke DescribeScdnService API
+func CreateDescribeScdnServiceRequest() (request *DescribeScdnServiceRequest) {
+	request = &DescribeScdnServiceRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnService", "", "")
+	return
+}
+
+// CreateDescribeScdnServiceResponse creates a response to parse from DescribeScdnService response
+func CreateDescribeScdnServiceResponse() (response *DescribeScdnServiceResponse) {
+	response = &DescribeScdnServiceResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 117 - 0
services/scdn/describe_scdn_user_domains.go

@@ -0,0 +1,117 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnUserDomains invokes the scdn.DescribeScdnUserDomains API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnuserdomains.html
+func (client *Client) DescribeScdnUserDomains(request *DescribeScdnUserDomainsRequest) (response *DescribeScdnUserDomainsResponse, err error) {
+	response = CreateDescribeScdnUserDomainsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnUserDomainsWithChan invokes the scdn.DescribeScdnUserDomains API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnuserdomains.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnUserDomainsWithChan(request *DescribeScdnUserDomainsRequest) (<-chan *DescribeScdnUserDomainsResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnUserDomainsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnUserDomains(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnUserDomainsWithCallback invokes the scdn.DescribeScdnUserDomains API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnuserdomains.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnUserDomainsWithCallback(request *DescribeScdnUserDomainsRequest, callback func(response *DescribeScdnUserDomainsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnUserDomainsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnUserDomains(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnUserDomainsRequest is the request struct for api DescribeScdnUserDomains
+type DescribeScdnUserDomainsRequest struct {
+	*requests.RpcRequest
+	FuncFilter       string           `position:"Query" name:"FuncFilter"`
+	DomainName       string           `position:"Query" name:"DomainName"`
+	OwnerId          requests.Integer `position:"Query" name:"OwnerId"`
+	FuncId           string           `position:"Query" name:"FuncId"`
+	PageNumber       requests.Integer `position:"Query" name:"PageNumber"`
+	DomainStatus     string           `position:"Query" name:"DomainStatus"`
+	DomainSearchType string           `position:"Query" name:"DomainSearchType"`
+	CheckDomainShow  requests.Boolean `position:"Query" name:"CheckDomainShow"`
+	ResourceGroupId  string           `position:"Query" name:"ResourceGroupId"`
+	SecurityToken    string           `position:"Query" name:"SecurityToken"`
+	PageSize         requests.Integer `position:"Query" name:"PageSize"`
+}
+
+// DescribeScdnUserDomainsResponse is the response struct for api DescribeScdnUserDomains
+type DescribeScdnUserDomainsResponse struct {
+	*responses.BaseResponse
+	RequestId  string  `json:"RequestId" xml:"RequestId"`
+	PageNumber int     `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int     `json:"PageSize" xml:"PageSize"`
+	TotalCount int     `json:"TotalCount" xml:"TotalCount"`
+	Domains    Domains `json:"Domains" xml:"Domains"`
+}
+
+// CreateDescribeScdnUserDomainsRequest creates a request to invoke DescribeScdnUserDomains API
+func CreateDescribeScdnUserDomainsRequest() (request *DescribeScdnUserDomainsRequest) {
+	request = &DescribeScdnUserDomainsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnUserDomains", "", "")
+	return
+}
+
+// CreateDescribeScdnUserDomainsResponse creates a response to parse from DescribeScdnUserDomains response
+func CreateDescribeScdnUserDomainsResponse() (response *DescribeScdnUserDomainsResponse) {
+	response = &DescribeScdnUserDomainsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 113 - 0
services/scdn/describe_scdn_user_quota.go

@@ -0,0 +1,113 @@
+package scdn
+
+//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"
+)
+
+// DescribeScdnUserQuota invokes the scdn.DescribeScdnUserQuota API synchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnuserquota.html
+func (client *Client) DescribeScdnUserQuota(request *DescribeScdnUserQuotaRequest) (response *DescribeScdnUserQuotaResponse, err error) {
+	response = CreateDescribeScdnUserQuotaResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeScdnUserQuotaWithChan invokes the scdn.DescribeScdnUserQuota API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnuserquota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnUserQuotaWithChan(request *DescribeScdnUserQuotaRequest) (<-chan *DescribeScdnUserQuotaResponse, <-chan error) {
+	responseChan := make(chan *DescribeScdnUserQuotaResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeScdnUserQuota(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeScdnUserQuotaWithCallback invokes the scdn.DescribeScdnUserQuota API asynchronously
+// api document: https://help.aliyun.com/api/scdn/describescdnuserquota.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeScdnUserQuotaWithCallback(request *DescribeScdnUserQuotaRequest, callback func(response *DescribeScdnUserQuotaResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeScdnUserQuotaResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeScdnUserQuota(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeScdnUserQuotaRequest is the request struct for api DescribeScdnUserQuota
+type DescribeScdnUserQuotaRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeScdnUserQuotaResponse is the response struct for api DescribeScdnUserQuota
+type DescribeScdnUserQuotaResponse struct {
+	*responses.BaseResponse
+	RequestId        string `json:"RequestId" xml:"RequestId"`
+	DomainQuota      int    `json:"DomainQuota" xml:"DomainQuota"`
+	RefreshUrlQuota  int    `json:"RefreshUrlQuota" xml:"RefreshUrlQuota"`
+	RefreshDirQuota  int    `json:"RefreshDirQuota" xml:"RefreshDirQuota"`
+	RefreshUrlRemain int    `json:"RefreshUrlRemain" xml:"RefreshUrlRemain"`
+	RefreshDirRemain int    `json:"RefreshDirRemain" xml:"RefreshDirRemain"`
+	PreloadQuota     int    `json:"PreloadQuota" xml:"PreloadQuota"`
+	PreloadRemain    int    `json:"PreloadRemain" xml:"PreloadRemain"`
+	BlockQuota       int    `json:"BlockQuota" xml:"BlockQuota"`
+	BlockRemain      int    `json:"BlockRemain" xml:"BlockRemain"`
+}
+
+// CreateDescribeScdnUserQuotaRequest creates a request to invoke DescribeScdnUserQuota API
+func CreateDescribeScdnUserQuotaRequest() (request *DescribeScdnUserQuotaRequest) {
+	request = &DescribeScdnUserQuotaRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "DescribeScdnUserQuota", "", "")
+	return
+}
+
+// CreateDescribeScdnUserQuotaResponse creates a response to parse from DescribeScdnUserQuota response
+func CreateDescribeScdnUserQuotaResponse() (response *DescribeScdnUserQuotaResponse) {
+	response = &DescribeScdnUserQuotaResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/scdn/preload_scdn_object_caches.go

@@ -0,0 +1,106 @@
+package scdn
+
+//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"
+)
+
+// PreloadScdnObjectCaches invokes the scdn.PreloadScdnObjectCaches API synchronously
+// api document: https://help.aliyun.com/api/scdn/preloadscdnobjectcaches.html
+func (client *Client) PreloadScdnObjectCaches(request *PreloadScdnObjectCachesRequest) (response *PreloadScdnObjectCachesResponse, err error) {
+	response = CreatePreloadScdnObjectCachesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// PreloadScdnObjectCachesWithChan invokes the scdn.PreloadScdnObjectCaches API asynchronously
+// api document: https://help.aliyun.com/api/scdn/preloadscdnobjectcaches.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PreloadScdnObjectCachesWithChan(request *PreloadScdnObjectCachesRequest) (<-chan *PreloadScdnObjectCachesResponse, <-chan error) {
+	responseChan := make(chan *PreloadScdnObjectCachesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.PreloadScdnObjectCaches(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// PreloadScdnObjectCachesWithCallback invokes the scdn.PreloadScdnObjectCaches API asynchronously
+// api document: https://help.aliyun.com/api/scdn/preloadscdnobjectcaches.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) PreloadScdnObjectCachesWithCallback(request *PreloadScdnObjectCachesRequest, callback func(response *PreloadScdnObjectCachesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *PreloadScdnObjectCachesResponse
+		var err error
+		defer close(result)
+		response, err = client.PreloadScdnObjectCaches(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// PreloadScdnObjectCachesRequest is the request struct for api PreloadScdnObjectCaches
+type PreloadScdnObjectCachesRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	ObjectPath    string           `position:"Query" name:"ObjectPath"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// PreloadScdnObjectCachesResponse is the response struct for api PreloadScdnObjectCaches
+type PreloadScdnObjectCachesResponse struct {
+	*responses.BaseResponse
+	RequestId     string `json:"RequestId" xml:"RequestId"`
+	PreloadTaskId string `json:"PreloadTaskId" xml:"PreloadTaskId"`
+}
+
+// CreatePreloadScdnObjectCachesRequest creates a request to invoke PreloadScdnObjectCaches API
+func CreatePreloadScdnObjectCachesRequest() (request *PreloadScdnObjectCachesRequest) {
+	request = &PreloadScdnObjectCachesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "PreloadScdnObjectCaches", "", "")
+	return
+}
+
+// CreatePreloadScdnObjectCachesResponse creates a response to parse from PreloadScdnObjectCaches response
+func CreatePreloadScdnObjectCachesResponse() (response *PreloadScdnObjectCachesResponse) {
+	response = &PreloadScdnObjectCachesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/scdn/refresh_scdn_object_caches.go

@@ -0,0 +1,107 @@
+package scdn
+
+//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"
+)
+
+// RefreshScdnObjectCaches invokes the scdn.RefreshScdnObjectCaches API synchronously
+// api document: https://help.aliyun.com/api/scdn/refreshscdnobjectcaches.html
+func (client *Client) RefreshScdnObjectCaches(request *RefreshScdnObjectCachesRequest) (response *RefreshScdnObjectCachesResponse, err error) {
+	response = CreateRefreshScdnObjectCachesResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// RefreshScdnObjectCachesWithChan invokes the scdn.RefreshScdnObjectCaches API asynchronously
+// api document: https://help.aliyun.com/api/scdn/refreshscdnobjectcaches.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RefreshScdnObjectCachesWithChan(request *RefreshScdnObjectCachesRequest) (<-chan *RefreshScdnObjectCachesResponse, <-chan error) {
+	responseChan := make(chan *RefreshScdnObjectCachesResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.RefreshScdnObjectCaches(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// RefreshScdnObjectCachesWithCallback invokes the scdn.RefreshScdnObjectCaches API asynchronously
+// api document: https://help.aliyun.com/api/scdn/refreshscdnobjectcaches.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) RefreshScdnObjectCachesWithCallback(request *RefreshScdnObjectCachesRequest, callback func(response *RefreshScdnObjectCachesResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *RefreshScdnObjectCachesResponse
+		var err error
+		defer close(result)
+		response, err = client.RefreshScdnObjectCaches(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// RefreshScdnObjectCachesRequest is the request struct for api RefreshScdnObjectCaches
+type RefreshScdnObjectCachesRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	ObjectPath    string           `position:"Query" name:"ObjectPath"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+	ObjectType    string           `position:"Query" name:"ObjectType"`
+}
+
+// RefreshScdnObjectCachesResponse is the response struct for api RefreshScdnObjectCaches
+type RefreshScdnObjectCachesResponse struct {
+	*responses.BaseResponse
+	RequestId     string `json:"RequestId" xml:"RequestId"`
+	RefreshTaskId string `json:"RefreshTaskId" xml:"RefreshTaskId"`
+}
+
+// CreateRefreshScdnObjectCachesRequest creates a request to invoke RefreshScdnObjectCaches API
+func CreateRefreshScdnObjectCachesRequest() (request *RefreshScdnObjectCachesRequest) {
+	request = &RefreshScdnObjectCachesRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "RefreshScdnObjectCaches", "", "")
+	return
+}
+
+// CreateRefreshScdnObjectCachesResponse creates a response to parse from RefreshScdnObjectCaches response
+func CreateRefreshScdnObjectCachesResponse() (response *RefreshScdnObjectCachesResponse) {
+	response = &RefreshScdnObjectCachesResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/scdn/set_scdn_domain_certificate.go

@@ -0,0 +1,111 @@
+package scdn
+
+//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"
+)
+
+// SetScdnDomainCertificate invokes the scdn.SetScdnDomainCertificate API synchronously
+// api document: https://help.aliyun.com/api/scdn/setscdndomaincertificate.html
+func (client *Client) SetScdnDomainCertificate(request *SetScdnDomainCertificateRequest) (response *SetScdnDomainCertificateResponse, err error) {
+	response = CreateSetScdnDomainCertificateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetScdnDomainCertificateWithChan invokes the scdn.SetScdnDomainCertificate API asynchronously
+// api document: https://help.aliyun.com/api/scdn/setscdndomaincertificate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetScdnDomainCertificateWithChan(request *SetScdnDomainCertificateRequest) (<-chan *SetScdnDomainCertificateResponse, <-chan error) {
+	responseChan := make(chan *SetScdnDomainCertificateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetScdnDomainCertificate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetScdnDomainCertificateWithCallback invokes the scdn.SetScdnDomainCertificate API asynchronously
+// api document: https://help.aliyun.com/api/scdn/setscdndomaincertificate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetScdnDomainCertificateWithCallback(request *SetScdnDomainCertificateRequest, callback func(response *SetScdnDomainCertificateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetScdnDomainCertificateResponse
+		var err error
+		defer close(result)
+		response, err = client.SetScdnDomainCertificate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetScdnDomainCertificateRequest is the request struct for api SetScdnDomainCertificate
+type SetScdnDomainCertificateRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	CertType      string           `position:"Query" name:"CertType"`
+	SSLPub        string           `position:"Query" name:"SSLPub"`
+	CertName      string           `position:"Query" name:"CertName"`
+	SSLProtocol   string           `position:"Query" name:"SSLProtocol"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+	Region        string           `position:"Query" name:"Region"`
+	SSLPri        string           `position:"Query" name:"SSLPri"`
+}
+
+// SetScdnDomainCertificateResponse is the response struct for api SetScdnDomainCertificate
+type SetScdnDomainCertificateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSetScdnDomainCertificateRequest creates a request to invoke SetScdnDomainCertificate API
+func CreateSetScdnDomainCertificateRequest() (request *SetScdnDomainCertificateRequest) {
+	request = &SetScdnDomainCertificateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "SetScdnDomainCertificate", "", "")
+	return
+}
+
+// CreateSetScdnDomainCertificateResponse creates a response to parse from SetScdnDomainCertificate response
+func CreateSetScdnDomainCertificateResponse() (response *SetScdnDomainCertificateResponse) {
+	response = &SetScdnDomainCertificateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/scdn/start_scdn_domain.go

@@ -0,0 +1,105 @@
+package scdn
+
+//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"
+)
+
+// StartScdnDomain invokes the scdn.StartScdnDomain API synchronously
+// api document: https://help.aliyun.com/api/scdn/startscdndomain.html
+func (client *Client) StartScdnDomain(request *StartScdnDomainRequest) (response *StartScdnDomainResponse, err error) {
+	response = CreateStartScdnDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StartScdnDomainWithChan invokes the scdn.StartScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/startscdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartScdnDomainWithChan(request *StartScdnDomainRequest) (<-chan *StartScdnDomainResponse, <-chan error) {
+	responseChan := make(chan *StartScdnDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StartScdnDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StartScdnDomainWithCallback invokes the scdn.StartScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/startscdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StartScdnDomainWithCallback(request *StartScdnDomainRequest, callback func(response *StartScdnDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StartScdnDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.StartScdnDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StartScdnDomainRequest is the request struct for api StartScdnDomain
+type StartScdnDomainRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// StartScdnDomainResponse is the response struct for api StartScdnDomain
+type StartScdnDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStartScdnDomainRequest creates a request to invoke StartScdnDomain API
+func CreateStartScdnDomainRequest() (request *StartScdnDomainRequest) {
+	request = &StartScdnDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "StartScdnDomain", "", "")
+	return
+}
+
+// CreateStartScdnDomainResponse creates a response to parse from StartScdnDomain response
+func CreateStartScdnDomainResponse() (response *StartScdnDomainResponse) {
+	response = &StartScdnDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/scdn/stop_scdn_domain.go

@@ -0,0 +1,105 @@
+package scdn
+
+//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"
+)
+
+// StopScdnDomain invokes the scdn.StopScdnDomain API synchronously
+// api document: https://help.aliyun.com/api/scdn/stopscdndomain.html
+func (client *Client) StopScdnDomain(request *StopScdnDomainRequest) (response *StopScdnDomainResponse, err error) {
+	response = CreateStopScdnDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// StopScdnDomainWithChan invokes the scdn.StopScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/stopscdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StopScdnDomainWithChan(request *StopScdnDomainRequest) (<-chan *StopScdnDomainResponse, <-chan error) {
+	responseChan := make(chan *StopScdnDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.StopScdnDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// StopScdnDomainWithCallback invokes the scdn.StopScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/stopscdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) StopScdnDomainWithCallback(request *StopScdnDomainRequest, callback func(response *StopScdnDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *StopScdnDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.StopScdnDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// StopScdnDomainRequest is the request struct for api StopScdnDomain
+type StopScdnDomainRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// StopScdnDomainResponse is the response struct for api StopScdnDomain
+type StopScdnDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateStopScdnDomainRequest creates a request to invoke StopScdnDomain API
+func CreateStopScdnDomainRequest() (request *StopScdnDomainRequest) {
+	request = &StopScdnDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "StopScdnDomain", "", "")
+	return
+}
+
+// CreateStopScdnDomainResponse creates a response to parse from StopScdnDomain response
+func CreateStopScdnDomainResponse() (response *StopScdnDomainResponse) {
+	response = &StopScdnDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 21 - 0
services/scdn/struct_bps_data_per_interval.go

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

+ 26 - 0
services/scdn/struct_cert.go

@@ -0,0 +1,26 @@
+package scdn
+
+//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.
+
+// Cert is a nested struct in scdn response
+type Cert struct {
+	CertName    string `json:"CertName" xml:"CertName"`
+	CertId      int    `json:"CertId" xml:"CertId"`
+	Fingerprint string `json:"Fingerprint" xml:"Fingerprint"`
+	Common      string `json:"Common" xml:"Common"`
+	Issuer      string `json:"Issuer" xml:"Issuer"`
+	LastTime    int    `json:"LastTime" xml:"LastTime"`
+}

+ 30 - 0
services/scdn/struct_cert_info.go

@@ -0,0 +1,30 @@
+package scdn
+
+//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.
+
+// CertInfo is a nested struct in scdn response
+type CertInfo struct {
+	DomainName     string `json:"DomainName" xml:"DomainName"`
+	CertName       string `json:"CertName" xml:"CertName"`
+	CertDomainName string `json:"CertDomainName" xml:"CertDomainName"`
+	CertExpireTime string `json:"CertExpireTime" xml:"CertExpireTime"`
+	CertLife       string `json:"CertLife" xml:"CertLife"`
+	CertOrg        string `json:"CertOrg" xml:"CertOrg"`
+	CertType       string `json:"CertType" xml:"CertType"`
+	SSLProtocol    string `json:"SSLProtocol" xml:"SSLProtocol"`
+	Status         string `json:"Status" xml:"Status"`
+	SSLPub         string `json:"SSLPub" xml:"SSLPub"`
+}

+ 21 - 0
services/scdn/struct_cert_infos.go

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

+ 21 - 0
services/scdn/struct_cert_list.go

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

+ 22 - 0
services/scdn/struct_certificate_list_model.go

@@ -0,0 +1,22 @@
+package scdn
+
+//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.
+
+// CertificateListModel is a nested struct in scdn response
+type CertificateListModel struct {
+	Count    int      `json:"Count" xml:"Count"`
+	CertList CertList `json:"CertList" xml:"CertList"`
+}

+ 21 - 0
services/scdn/struct_cname_datas.go

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

+ 23 - 0
services/scdn/struct_data.go

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

+ 39 - 0
services/scdn/struct_data_module.go

@@ -0,0 +1,39 @@
+package scdn
+
+//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.
+
+// DataModule is a nested struct in scdn response
+type DataModule struct {
+	HttpAccValue            string                  `json:"HttpAccValue" xml:"HttpAccValue"`
+	BpsValue                string                  `json:"BpsValue" xml:"BpsValue"`
+	HttpQpsValue            string                  `json:"HttpQpsValue" xml:"HttpQpsValue"`
+	ByteHitRate             string                  `json:"ByteHitRate" xml:"ByteHitRate"`
+	HttpsTrafficValue       string                  `json:"HttpsTrafficValue" xml:"HttpsTrafficValue"`
+	AccValue                string                  `json:"AccValue" xml:"AccValue"`
+	TrafficValue            string                  `json:"TrafficValue" xml:"TrafficValue"`
+	TimeStamp               string                  `json:"TimeStamp" xml:"TimeStamp"`
+	QpsValue                string                  `json:"QpsValue" xml:"QpsValue"`
+	ReqHitRate              string                  `json:"ReqHitRate" xml:"ReqHitRate"`
+	HttpBpsValue            string                  `json:"HttpBpsValue" xml:"HttpBpsValue"`
+	HttpsQpsValue           string                  `json:"HttpsQpsValue" xml:"HttpsQpsValue"`
+	HttpsBpsValue           string                  `json:"HttpsBpsValue" xml:"HttpsBpsValue"`
+	HttpTrafficValue        string                  `json:"HttpTrafficValue" xml:"HttpTrafficValue"`
+	HttpsAccValue           string                  `json:"HttpsAccValue" xml:"HttpsAccValue"`
+	OriginBpsValue          string                  `json:"OriginBpsValue" xml:"OriginBpsValue"`
+	HttpsOriginBpsValue     string                  `json:"HttpsOriginBpsValue" xml:"HttpsOriginBpsValue"`
+	HttpOriginBpsValue      string                  `json:"HttpOriginBpsValue" xml:"HttpOriginBpsValue"`
+	HttpCodeDataPerInterval HttpCodeDataPerInterval `json:"HttpCodeDataPerInterval" xml:"HttpCodeDataPerInterval"`
+}

+ 21 - 0
services/scdn/struct_data_per_interval.go

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

+ 24 - 0
services/scdn/struct_domain_config.go

@@ -0,0 +1,24 @@
+package scdn
+
+//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.
+
+// DomainConfig is a nested struct in scdn response
+type DomainConfig struct {
+	FunctionName string       `json:"FunctionName" xml:"FunctionName"`
+	ConfigId     string       `json:"ConfigId" xml:"ConfigId"`
+	Status       string       `json:"Status" xml:"Status"`
+	FunctionArgs FunctionArgs `json:"FunctionArgs" xml:"FunctionArgs"`
+}

+ 21 - 0
services/scdn/struct_domain_configs.go

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

+ 32 - 0
services/scdn/struct_domain_detail.go

@@ -0,0 +1,32 @@
+package scdn
+
+//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.
+
+// DomainDetail is a nested struct in scdn response
+type DomainDetail struct {
+	GmtCreated      string                            `json:"GmtCreated" xml:"GmtCreated"`
+	GmtModified     string                            `json:"GmtModified" xml:"GmtModified"`
+	DomainStatus    string                            `json:"DomainStatus" xml:"DomainStatus"`
+	Cname           string                            `json:"Cname" xml:"Cname"`
+	DomainName      string                            `json:"DomainName" xml:"DomainName"`
+	Description     string                            `json:"Description" xml:"Description"`
+	SSLProtocol     string                            `json:"SSLProtocol" xml:"SSLProtocol"`
+	SSLPub          string                            `json:"SSLPub" xml:"SSLPub"`
+	Scope           string                            `json:"Scope" xml:"Scope"`
+	CertName        string                            `json:"CertName" xml:"CertName"`
+	ResourceGroupId string                            `json:"ResourceGroupId" xml:"ResourceGroupId"`
+	Sources         SourcesInDescribeScdnDomainDetail `json:"Sources" xml:"Sources"`
+}

+ 23 - 0
services/scdn/struct_domain_log_detail.go

@@ -0,0 +1,23 @@
+package scdn
+
+//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.
+
+// DomainLogDetail is a nested struct in scdn response
+type DomainLogDetail struct {
+	LogCount  int       `json:"LogCount" xml:"LogCount"`
+	PageInfos PageInfos `json:"PageInfos" xml:"PageInfos"`
+	LogInfos  LogInfos  `json:"LogInfos" xml:"LogInfos"`
+}

+ 21 - 0
services/scdn/struct_domain_log_details.go

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

+ 21 - 0
services/scdn/struct_domains.go

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

+ 22 - 0
services/scdn/struct_function_arg.go

@@ -0,0 +1,22 @@
+package scdn
+
+//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.
+
+// FunctionArg is a nested struct in scdn response
+type FunctionArg struct {
+	ArgName  string `json:"ArgName" xml:"ArgName"`
+	ArgValue string `json:"ArgValue" xml:"ArgValue"`
+}

+ 21 - 0
services/scdn/struct_function_args.go

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

+ 21 - 0
services/scdn/struct_hit_rate_per_interval.go

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

+ 23 - 0
services/scdn/struct_http_code_data_module.go

@@ -0,0 +1,23 @@
+package scdn
+
+//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.
+
+// HttpCodeDataModule is a nested struct in scdn response
+type HttpCodeDataModule struct {
+	Code       string `json:"Code" xml:"Code"`
+	Proportion string `json:"Proportion" xml:"Proportion"`
+	Count      string `json:"Count" xml:"Count"`
+}

+ 21 - 0
services/scdn/struct_http_code_data_per_interval.go

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

+ 21 - 0
services/scdn/struct_lock_reason.go

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

+ 25 - 0
services/scdn/struct_log_info_detail.go

@@ -0,0 +1,25 @@
+package scdn
+
+//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.
+
+// LogInfoDetail is a nested struct in scdn response
+type LogInfoDetail struct {
+	LogName   string `json:"LogName" xml:"LogName"`
+	LogPath   string `json:"LogPath" xml:"LogPath"`
+	LogSize   int    `json:"LogSize" xml:"LogSize"`
+	StartTime string `json:"StartTime" xml:"StartTime"`
+	EndTime   string `json:"EndTime" xml:"EndTime"`
+}

+ 21 - 0
services/scdn/struct_log_infos.go

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

+ 21 - 0
services/scdn/struct_operation_locks.go

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

+ 21 - 0
services/scdn/struct_origin_bps_data_per_interval.go

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

+ 21 - 0
services/scdn/struct_origin_traffic_data_per_interval.go

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

+ 30 - 0
services/scdn/struct_page_data.go

@@ -0,0 +1,30 @@
+package scdn
+
+//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.
+
+// PageData is a nested struct in scdn response
+type PageData struct {
+	DomainName      string                           `json:"DomainName" xml:"DomainName"`
+	Cname           string                           `json:"Cname" xml:"Cname"`
+	DomainStatus    string                           `json:"DomainStatus" xml:"DomainStatus"`
+	GmtCreated      string                           `json:"GmtCreated" xml:"GmtCreated"`
+	GmtModified     string                           `json:"GmtModified" xml:"GmtModified"`
+	Description     string                           `json:"Description" xml:"Description"`
+	SSLProtocol     string                           `json:"SSLProtocol" xml:"SSLProtocol"`
+	ResourceGroupId string                           `json:"ResourceGroupId" xml:"ResourceGroupId"`
+	Sandbox         string                           `json:"Sandbox" xml:"Sandbox"`
+	Sources         SourcesInDescribeScdnUserDomains `json:"Sources" xml:"Sources"`
+}

+ 23 - 0
services/scdn/struct_page_info_detail.go

@@ -0,0 +1,23 @@
+package scdn
+
+//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.
+
+// PageInfoDetail is a nested struct in scdn response
+type PageInfoDetail struct {
+	PageIndex int `json:"PageIndex" xml:"PageIndex"`
+	PageSize  int `json:"PageSize" xml:"PageSize"`
+	Total     int `json:"Total" xml:"Total"`
+}

+ 21 - 0
services/scdn/struct_page_infos.go

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

+ 21 - 0
services/scdn/struct_qps_data_per_interval.go

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

+ 25 - 0
services/scdn/struct_source.go

@@ -0,0 +1,25 @@
+package scdn
+
+//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.
+
+// Source is a nested struct in scdn response
+type Source struct {
+	Port     int    `json:"Port" xml:"Port"`
+	Content  string `json:"Content" xml:"Content"`
+	Enabled  string `json:"Enabled" xml:"Enabled"`
+	Priority string `json:"Priority" xml:"Priority"`
+	Type     string `json:"Type" xml:"Type"`
+}

+ 21 - 0
services/scdn/struct_sources_in_describe_scdn_domain_detail.go

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

+ 21 - 0
services/scdn/struct_sources_in_describe_scdn_user_domains.go

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

+ 27 - 0
services/scdn/struct_task.go

@@ -0,0 +1,27 @@
+package scdn
+
+//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.
+
+// Task is a nested struct in scdn response
+type Task struct {
+	TaskId       string `json:"TaskId" xml:"TaskId"`
+	ObjectPath   string `json:"ObjectPath" xml:"ObjectPath"`
+	Process      string `json:"Process" xml:"Process"`
+	Status       string `json:"Status" xml:"Status"`
+	CreationTime string `json:"CreationTime" xml:"CreationTime"`
+	Description  string `json:"Description" xml:"Description"`
+	ObjectType   string `json:"ObjectType" xml:"ObjectType"`
+}

+ 21 - 0
services/scdn/struct_tasks.go

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

+ 21 - 0
services/scdn/struct_traffic_data_per_interval.go

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

+ 107 - 0
services/scdn/update_scdn_domain.go

@@ -0,0 +1,107 @@
+package scdn
+
+//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"
+)
+
+// UpdateScdnDomain invokes the scdn.UpdateScdnDomain API synchronously
+// api document: https://help.aliyun.com/api/scdn/updatescdndomain.html
+func (client *Client) UpdateScdnDomain(request *UpdateScdnDomainRequest) (response *UpdateScdnDomainResponse, err error) {
+	response = CreateUpdateScdnDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateScdnDomainWithChan invokes the scdn.UpdateScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/updatescdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateScdnDomainWithChan(request *UpdateScdnDomainRequest) (<-chan *UpdateScdnDomainResponse, <-chan error) {
+	responseChan := make(chan *UpdateScdnDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateScdnDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateScdnDomainWithCallback invokes the scdn.UpdateScdnDomain API asynchronously
+// api document: https://help.aliyun.com/api/scdn/updatescdndomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateScdnDomainWithCallback(request *UpdateScdnDomainRequest, callback func(response *UpdateScdnDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateScdnDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateScdnDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateScdnDomainRequest is the request struct for api UpdateScdnDomain
+type UpdateScdnDomainRequest struct {
+	*requests.RpcRequest
+	ResourceGroupId string           `position:"Query" name:"ResourceGroupId"`
+	Sources         string           `position:"Query" name:"Sources"`
+	SecurityToken   string           `position:"Query" name:"SecurityToken"`
+	DomainName      string           `position:"Query" name:"DomainName"`
+	OwnerId         requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// UpdateScdnDomainResponse is the response struct for api UpdateScdnDomain
+type UpdateScdnDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUpdateScdnDomainRequest creates a request to invoke UpdateScdnDomain API
+func CreateUpdateScdnDomainRequest() (request *UpdateScdnDomainRequest) {
+	request = &UpdateScdnDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("scdn", "2017-11-15", "UpdateScdnDomain", "", "")
+	return
+}
+
+// CreateUpdateScdnDomainResponse creates a response to parse from UpdateScdnDomain response
+func CreateUpdateScdnDomainResponse() (response *UpdateScdnDomainResponse) {
+	response = &UpdateScdnDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}