Browse Source

Add some new apis to manage VoD domain, such as AddVodDomain, UpdateVodDomain, DeleteVodDomain, BatchStartVodDomain, BatchStopVodDomain, DescribeVodUserDomains, DescribeVodDomainDetail.

sdk-team 6 years ago
parent
commit
169558d011
43 changed files with 1787 additions and 6 deletions
  1. 6 0
      ChangeLog.txt
  2. 1 0
      services/vod/add_transcode_template_group.go
  3. 109 0
      services/vod/add_vod_domain.go
  4. 1 0
      services/vod/add_vod_template.go
  5. 1 0
      services/vod/add_watermark.go
  6. 107 0
      services/vod/batch_set_vod_domain_configs.go
  7. 105 0
      services/vod/batch_start_vod_domain.go
  8. 105 0
      services/vod/batch_stop_vod_domain.go
  9. 106 0
      services/vod/delete_vod_domain.go
  10. 106 0
      services/vod/delete_vod_specific_config.go
  11. 1 0
      services/vod/describe_vod_ai_data.go
  12. 106 0
      services/vod/describe_vod_certificate_list.go
  13. 105 0
      services/vod/describe_vod_domain_certificate_info.go
  14. 107 0
      services/vod/describe_vod_domain_configs.go
  15. 106 0
      services/vod/describe_vod_domain_detail.go
  16. 1 0
      services/vod/describe_vod_storage_data.go
  17. 6 4
      services/vod/describe_vod_transcode_data.go
  18. 117 0
      services/vod/describe_vod_user_domains.go
  19. 3 0
      services/vod/list_transcode_template_group.go
  20. 1 0
      services/vod/list_vod_template.go
  21. 3 0
      services/vod/list_watermark.go
  22. 110 0
      services/vod/set_vod_domain_certificate.go
  23. 26 0
      services/vod/struct_cert.go
  24. 29 0
      services/vod/struct_cert_info.go
  25. 21 0
      services/vod/struct_cert_infos.go
  26. 21 0
      services/vod/struct_cert_list.go
  27. 22 0
      services/vod/struct_certificate_list_model.go
  28. 24 0
      services/vod/struct_domain_config.go
  29. 21 0
      services/vod/struct_domain_configs.go
  30. 32 0
      services/vod/struct_domain_detail.go
  31. 21 0
      services/vod/struct_domains.go
  32. 22 0
      services/vod/struct_function_arg.go
  33. 21 0
      services/vod/struct_function_args.go
  34. 31 0
      services/vod/struct_page_data.go
  35. 25 0
      services/vod/struct_source.go
  36. 21 0
      services/vod/struct_sources_in_describe_vod_domain_detail.go
  37. 21 0
      services/vod/struct_sources_in_describe_vod_user_domains.go
  38. 2 0
      services/vod/struct_transcode_template_group.go
  39. 1 0
      services/vod/struct_vod_template_info.go
  40. 1 0
      services/vod/struct_watermark_info.go
  41. 4 2
      services/vod/submit_transcode_jobs.go
  42. 107 0
      services/vod/update_vod_domain.go
  43. 1 0
      services/vod/upload_media_by_url.go

+ 6 - 0
ChangeLog.txt

@@ -1,3 +1,9 @@
+2019-06-24 Version: 1.60.52
+- Add some new apis to manage VoD domain, such as AddVodDomain, UpdateVodDomain, DeleteVodDomain, BatchStartVodDomain, BatchStopVodDomain, DescribeVodUserDomains, DescribeVodDomainDetail.
+- Add some new apis to manage VoD domain config, such as BatchSetVodDomainConfigs, DescribeVodDomainConfigs, DeleteVodSpecificConfig, SetVodDomainCertificate, DescribeVodCertificateList, DescribeVodDomainCertificateInfo.
+- Add a new field named AppId to some apis supporting the VoD App feature, such as AddWorkFlow, GetWorkFlow, ListWorkFlow, AddVodTemplate, GetVodTemplate, ListVodTemplate, AddTranscodeTemplateGroup, GetTranscodeTemplateGroup, ListTranscodeTemplateGroup, AddWatermark, GetWatermark, ListWatermark, UploadMediaByURL.
+- Add a new field named UserData to SubmitTranscodeJobs api request to support user-defined extension fields, which can be used for transparent return when callbacks.
+
 2019-06-21 Version: 1.60.51
 - Support DeleteProtection api.
 

+ 1 - 0
services/vod/add_transcode_template_group.go

@@ -79,6 +79,7 @@ type AddTranscodeTemplateGroupRequest struct {
 	TranscodeTemplateList    string           `position:"Query" name:"TranscodeTemplateList"`
 	ResourceOwnerId          requests.Integer `position:"Query" name:"ResourceOwnerId"`
 	ResourceOwnerAccount     string           `position:"Query" name:"ResourceOwnerAccount"`
+	AppId                    string           `position:"Query" name:"AppId"`
 	Name                     string           `position:"Query" name:"Name"`
 	OwnerId                  requests.Integer `position:"Query" name:"OwnerId"`
 	TranscodeTemplateGroupId string           `position:"Query" name:"TranscodeTemplateGroupId"`

+ 109 - 0
services/vod/add_vod_domain.go

@@ -0,0 +1,109 @@
+package vod
+
+//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"
+)
+
+// AddVodDomain invokes the vod.AddVodDomain API synchronously
+// api document: https://help.aliyun.com/api/vod/addvoddomain.html
+func (client *Client) AddVodDomain(request *AddVodDomainRequest) (response *AddVodDomainResponse, err error) {
+	response = CreateAddVodDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddVodDomainWithChan invokes the vod.AddVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/addvoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddVodDomainWithChan(request *AddVodDomainRequest) (<-chan *AddVodDomainResponse, <-chan error) {
+	responseChan := make(chan *AddVodDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddVodDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddVodDomainWithCallback invokes the vod.AddVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/addvoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddVodDomainWithCallback(request *AddVodDomainRequest, callback func(response *AddVodDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddVodDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.AddVodDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddVodDomainRequest is the request struct for api AddVodDomain
+type AddVodDomainRequest struct {
+	*requests.RpcRequest
+	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"`
+}
+
+// AddVodDomainResponse is the response struct for api AddVodDomain
+type AddVodDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAddVodDomainRequest creates a request to invoke AddVodDomain API
+func CreateAddVodDomainRequest() (request *AddVodDomainRequest) {
+	request = &AddVodDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "AddVodDomain", "vod", "openAPI")
+	return
+}
+
+// CreateAddVodDomainResponse creates a response to parse from AddVodDomain response
+func CreateAddVodDomainResponse() (response *AddVodDomainResponse) {
+	response = &AddVodDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/vod/add_vod_template.go

@@ -80,6 +80,7 @@ type AddVodTemplateRequest struct {
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	TemplateConfig       string           `position:"Query" name:"TemplateConfig"`
 	TemplateType         string           `position:"Query" name:"TemplateType"`
+	AppId                string           `position:"Query" name:"AppId"`
 	Name                 string           `position:"Query" name:"Name"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 	SubTemplateType      string           `position:"Query" name:"SubTemplateType"`

+ 1 - 0
services/vod/add_watermark.go

@@ -78,6 +78,7 @@ type AddWatermarkRequest struct {
 	*requests.RpcRequest
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	AppId                string           `position:"Query" name:"AppId"`
 	Name                 string           `position:"Query" name:"Name"`
 	FileUrl              string           `position:"Query" name:"FileUrl"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`

+ 107 - 0
services/vod/batch_set_vod_domain_configs.go

@@ -0,0 +1,107 @@
+package vod
+
+//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"
+)
+
+// BatchSetVodDomainConfigs invokes the vod.BatchSetVodDomainConfigs API synchronously
+// api document: https://help.aliyun.com/api/vod/batchsetvoddomainconfigs.html
+func (client *Client) BatchSetVodDomainConfigs(request *BatchSetVodDomainConfigsRequest) (response *BatchSetVodDomainConfigsResponse, err error) {
+	response = CreateBatchSetVodDomainConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchSetVodDomainConfigsWithChan invokes the vod.BatchSetVodDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/vod/batchsetvoddomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchSetVodDomainConfigsWithChan(request *BatchSetVodDomainConfigsRequest) (<-chan *BatchSetVodDomainConfigsResponse, <-chan error) {
+	responseChan := make(chan *BatchSetVodDomainConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchSetVodDomainConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchSetVodDomainConfigsWithCallback invokes the vod.BatchSetVodDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/vod/batchsetvoddomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchSetVodDomainConfigsWithCallback(request *BatchSetVodDomainConfigsRequest, callback func(response *BatchSetVodDomainConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchSetVodDomainConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchSetVodDomainConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchSetVodDomainConfigsRequest is the request struct for api BatchSetVodDomainConfigs
+type BatchSetVodDomainConfigsRequest struct {
+	*requests.RpcRequest
+	Functions     string           `position:"Query" name:"Functions"`
+	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"`
+}
+
+// BatchSetVodDomainConfigsResponse is the response struct for api BatchSetVodDomainConfigs
+type BatchSetVodDomainConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBatchSetVodDomainConfigsRequest creates a request to invoke BatchSetVodDomainConfigs API
+func CreateBatchSetVodDomainConfigsRequest() (request *BatchSetVodDomainConfigsRequest) {
+	request = &BatchSetVodDomainConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "BatchSetVodDomainConfigs", "vod", "openAPI")
+	return
+}
+
+// CreateBatchSetVodDomainConfigsResponse creates a response to parse from BatchSetVodDomainConfigs response
+func CreateBatchSetVodDomainConfigsResponse() (response *BatchSetVodDomainConfigsResponse) {
+	response = &BatchSetVodDomainConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/vod/batch_start_vod_domain.go

@@ -0,0 +1,105 @@
+package vod
+
+//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"
+)
+
+// BatchStartVodDomain invokes the vod.BatchStartVodDomain API synchronously
+// api document: https://help.aliyun.com/api/vod/batchstartvoddomain.html
+func (client *Client) BatchStartVodDomain(request *BatchStartVodDomainRequest) (response *BatchStartVodDomainResponse, err error) {
+	response = CreateBatchStartVodDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchStartVodDomainWithChan invokes the vod.BatchStartVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/batchstartvoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchStartVodDomainWithChan(request *BatchStartVodDomainRequest) (<-chan *BatchStartVodDomainResponse, <-chan error) {
+	responseChan := make(chan *BatchStartVodDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchStartVodDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchStartVodDomainWithCallback invokes the vod.BatchStartVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/batchstartvoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchStartVodDomainWithCallback(request *BatchStartVodDomainRequest, callback func(response *BatchStartVodDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchStartVodDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchStartVodDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchStartVodDomainRequest is the request struct for api BatchStartVodDomain
+type BatchStartVodDomainRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainNames   string           `position:"Query" name:"DomainNames"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// BatchStartVodDomainResponse is the response struct for api BatchStartVodDomain
+type BatchStartVodDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBatchStartVodDomainRequest creates a request to invoke BatchStartVodDomain API
+func CreateBatchStartVodDomainRequest() (request *BatchStartVodDomainRequest) {
+	request = &BatchStartVodDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "BatchStartVodDomain", "vod", "openAPI")
+	return
+}
+
+// CreateBatchStartVodDomainResponse creates a response to parse from BatchStartVodDomain response
+func CreateBatchStartVodDomainResponse() (response *BatchStartVodDomainResponse) {
+	response = &BatchStartVodDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/vod/batch_stop_vod_domain.go

@@ -0,0 +1,105 @@
+package vod
+
+//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"
+)
+
+// BatchStopVodDomain invokes the vod.BatchStopVodDomain API synchronously
+// api document: https://help.aliyun.com/api/vod/batchstopvoddomain.html
+func (client *Client) BatchStopVodDomain(request *BatchStopVodDomainRequest) (response *BatchStopVodDomainResponse, err error) {
+	response = CreateBatchStopVodDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchStopVodDomainWithChan invokes the vod.BatchStopVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/batchstopvoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchStopVodDomainWithChan(request *BatchStopVodDomainRequest) (<-chan *BatchStopVodDomainResponse, <-chan error) {
+	responseChan := make(chan *BatchStopVodDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchStopVodDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchStopVodDomainWithCallback invokes the vod.BatchStopVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/batchstopvoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchStopVodDomainWithCallback(request *BatchStopVodDomainRequest, callback func(response *BatchStopVodDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchStopVodDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchStopVodDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchStopVodDomainRequest is the request struct for api BatchStopVodDomain
+type BatchStopVodDomainRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	DomainNames   string           `position:"Query" name:"DomainNames"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// BatchStopVodDomainResponse is the response struct for api BatchStopVodDomain
+type BatchStopVodDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBatchStopVodDomainRequest creates a request to invoke BatchStopVodDomain API
+func CreateBatchStopVodDomainRequest() (request *BatchStopVodDomainRequest) {
+	request = &BatchStopVodDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "BatchStopVodDomain", "vod", "openAPI")
+	return
+}
+
+// CreateBatchStopVodDomainResponse creates a response to parse from BatchStopVodDomain response
+func CreateBatchStopVodDomainResponse() (response *BatchStopVodDomainResponse) {
+	response = &BatchStopVodDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/vod/delete_vod_domain.go

@@ -0,0 +1,106 @@
+package vod
+
+//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"
+)
+
+// DeleteVodDomain invokes the vod.DeleteVodDomain API synchronously
+// api document: https://help.aliyun.com/api/vod/deletevoddomain.html
+func (client *Client) DeleteVodDomain(request *DeleteVodDomainRequest) (response *DeleteVodDomainResponse, err error) {
+	response = CreateDeleteVodDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteVodDomainWithChan invokes the vod.DeleteVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/deletevoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteVodDomainWithChan(request *DeleteVodDomainRequest) (<-chan *DeleteVodDomainResponse, <-chan error) {
+	responseChan := make(chan *DeleteVodDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteVodDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteVodDomainWithCallback invokes the vod.DeleteVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/deletevoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteVodDomainWithCallback(request *DeleteVodDomainRequest, callback func(response *DeleteVodDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteVodDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteVodDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteVodDomainRequest is the request struct for api DeleteVodDomain
+type DeleteVodDomainRequest struct {
+	*requests.RpcRequest
+	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"`
+}
+
+// DeleteVodDomainResponse is the response struct for api DeleteVodDomain
+type DeleteVodDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteVodDomainRequest creates a request to invoke DeleteVodDomain API
+func CreateDeleteVodDomainRequest() (request *DeleteVodDomainRequest) {
+	request = &DeleteVodDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "DeleteVodDomain", "vod", "openAPI")
+	return
+}
+
+// CreateDeleteVodDomainResponse creates a response to parse from DeleteVodDomain response
+func CreateDeleteVodDomainResponse() (response *DeleteVodDomainResponse) {
+	response = &DeleteVodDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/vod/delete_vod_specific_config.go

@@ -0,0 +1,106 @@
+package vod
+
+//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"
+)
+
+// DeleteVodSpecificConfig invokes the vod.DeleteVodSpecificConfig API synchronously
+// api document: https://help.aliyun.com/api/vod/deletevodspecificconfig.html
+func (client *Client) DeleteVodSpecificConfig(request *DeleteVodSpecificConfigRequest) (response *DeleteVodSpecificConfigResponse, err error) {
+	response = CreateDeleteVodSpecificConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteVodSpecificConfigWithChan invokes the vod.DeleteVodSpecificConfig API asynchronously
+// api document: https://help.aliyun.com/api/vod/deletevodspecificconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteVodSpecificConfigWithChan(request *DeleteVodSpecificConfigRequest) (<-chan *DeleteVodSpecificConfigResponse, <-chan error) {
+	responseChan := make(chan *DeleteVodSpecificConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteVodSpecificConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteVodSpecificConfigWithCallback invokes the vod.DeleteVodSpecificConfig API asynchronously
+// api document: https://help.aliyun.com/api/vod/deletevodspecificconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteVodSpecificConfigWithCallback(request *DeleteVodSpecificConfigRequest, callback func(response *DeleteVodSpecificConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteVodSpecificConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteVodSpecificConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteVodSpecificConfigRequest is the request struct for api DeleteVodSpecificConfig
+type DeleteVodSpecificConfigRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	ConfigId      string           `position:"Query" name:"ConfigId"`
+	DomainName    string           `position:"Query" name:"DomainName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteVodSpecificConfigResponse is the response struct for api DeleteVodSpecificConfig
+type DeleteVodSpecificConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteVodSpecificConfigRequest creates a request to invoke DeleteVodSpecificConfig API
+func CreateDeleteVodSpecificConfigRequest() (request *DeleteVodSpecificConfigRequest) {
+	request = &DeleteVodSpecificConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "DeleteVodSpecificConfig", "vod", "openAPI")
+	return
+}
+
+// CreateDeleteVodSpecificConfigResponse creates a response to parse from DeleteVodSpecificConfig response
+func CreateDeleteVodSpecificConfigResponse() (response *DeleteVodSpecificConfigResponse) {
+	response = &DeleteVodSpecificConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/vod/describe_vod_ai_data.go

@@ -77,6 +77,7 @@ func (client *Client) DescribeVodAIDataWithCallback(request *DescribeVodAIDataRe
 type DescribeVodAIDataRequest struct {
 	*requests.RpcRequest
 	StartTime string           `position:"Query" name:"StartTime"`
+	AIType    string           `position:"Query" name:"AIType"`
 	EndTime   string           `position:"Query" name:"EndTime"`
 	OwnerId   requests.Integer `position:"Query" name:"OwnerId"`
 	Region    string           `position:"Query" name:"Region"`

+ 106 - 0
services/vod/describe_vod_certificate_list.go

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

+ 105 - 0
services/vod/describe_vod_domain_certificate_info.go

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

+ 107 - 0
services/vod/describe_vod_domain_configs.go

@@ -0,0 +1,107 @@
+package vod
+
+//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"
+)
+
+// DescribeVodDomainConfigs invokes the vod.DescribeVodDomainConfigs API synchronously
+// api document: https://help.aliyun.com/api/vod/describevoddomainconfigs.html
+func (client *Client) DescribeVodDomainConfigs(request *DescribeVodDomainConfigsRequest) (response *DescribeVodDomainConfigsResponse, err error) {
+	response = CreateDescribeVodDomainConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeVodDomainConfigsWithChan invokes the vod.DescribeVodDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/vod/describevoddomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeVodDomainConfigsWithChan(request *DescribeVodDomainConfigsRequest) (<-chan *DescribeVodDomainConfigsResponse, <-chan error) {
+	responseChan := make(chan *DescribeVodDomainConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeVodDomainConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeVodDomainConfigsWithCallback invokes the vod.DescribeVodDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/vod/describevoddomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeVodDomainConfigsWithCallback(request *DescribeVodDomainConfigsRequest, callback func(response *DescribeVodDomainConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeVodDomainConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeVodDomainConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeVodDomainConfigsRequest is the request struct for api DescribeVodDomainConfigs
+type DescribeVodDomainConfigsRequest 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"`
+}
+
+// DescribeVodDomainConfigsResponse is the response struct for api DescribeVodDomainConfigs
+type DescribeVodDomainConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId     string        `json:"RequestId" xml:"RequestId"`
+	DomainConfigs DomainConfigs `json:"DomainConfigs" xml:"DomainConfigs"`
+}
+
+// CreateDescribeVodDomainConfigsRequest creates a request to invoke DescribeVodDomainConfigs API
+func CreateDescribeVodDomainConfigsRequest() (request *DescribeVodDomainConfigsRequest) {
+	request = &DescribeVodDomainConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "DescribeVodDomainConfigs", "vod", "openAPI")
+	return
+}
+
+// CreateDescribeVodDomainConfigsResponse creates a response to parse from DescribeVodDomainConfigs response
+func CreateDescribeVodDomainConfigsResponse() (response *DescribeVodDomainConfigsResponse) {
+	response = &DescribeVodDomainConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/vod/describe_vod_domain_detail.go

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

+ 1 - 0
services/vod/describe_vod_storage_data.go

@@ -77,6 +77,7 @@ func (client *Client) DescribeVodStorageDataWithCallback(request *DescribeVodSto
 type DescribeVodStorageDataRequest struct {
 	*requests.RpcRequest
 	StartTime   string           `position:"Query" name:"StartTime"`
+	Storage     string           `position:"Query" name:"Storage"`
 	StorageType string           `position:"Query" name:"StorageType"`
 	EndTime     string           `position:"Query" name:"EndTime"`
 	OwnerId     requests.Integer `position:"Query" name:"OwnerId"`

+ 6 - 4
services/vod/describe_vod_transcode_data.go

@@ -76,10 +76,12 @@ func (client *Client) DescribeVodTranscodeDataWithCallback(request *DescribeVodT
 // DescribeVodTranscodeDataRequest is the request struct for api DescribeVodTranscodeData
 type DescribeVodTranscodeDataRequest struct {
 	*requests.RpcRequest
-	StartTime string           `position:"Query" name:"StartTime"`
-	EndTime   string           `position:"Query" name:"EndTime"`
-	OwnerId   requests.Integer `position:"Query" name:"OwnerId"`
-	Region    string           `position:"Query" name:"Region"`
+	StartTime     string           `position:"Query" name:"StartTime"`
+	Storage       string           `position:"Query" name:"Storage"`
+	EndTime       string           `position:"Query" name:"EndTime"`
+	Specification string           `position:"Query" name:"Specification"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+	Region        string           `position:"Query" name:"Region"`
 }
 
 // DescribeVodTranscodeDataResponse is the response struct for api DescribeVodTranscodeData

+ 117 - 0
services/vod/describe_vod_user_domains.go

@@ -0,0 +1,117 @@
+package vod
+
+//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"
+)
+
+// DescribeVodUserDomains invokes the vod.DescribeVodUserDomains API synchronously
+// api document: https://help.aliyun.com/api/vod/describevoduserdomains.html
+func (client *Client) DescribeVodUserDomains(request *DescribeVodUserDomainsRequest) (response *DescribeVodUserDomainsResponse, err error) {
+	response = CreateDescribeVodUserDomainsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeVodUserDomainsWithChan invokes the vod.DescribeVodUserDomains API asynchronously
+// api document: https://help.aliyun.com/api/vod/describevoduserdomains.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeVodUserDomainsWithChan(request *DescribeVodUserDomainsRequest) (<-chan *DescribeVodUserDomainsResponse, <-chan error) {
+	responseChan := make(chan *DescribeVodUserDomainsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeVodUserDomains(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeVodUserDomainsWithCallback invokes the vod.DescribeVodUserDomains API asynchronously
+// api document: https://help.aliyun.com/api/vod/describevoduserdomains.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeVodUserDomainsWithCallback(request *DescribeVodUserDomainsRequest, callback func(response *DescribeVodUserDomainsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeVodUserDomainsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeVodUserDomains(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeVodUserDomainsRequest is the request struct for api DescribeVodUserDomains
+type DescribeVodUserDomainsRequest struct {
+	*requests.RpcRequest
+	FuncFilter       string           `position:"Query" name:"FuncFilter"`
+	CheckDomainShow  requests.Boolean `position:"Query" name:"CheckDomainShow"`
+	SecurityToken    string           `position:"Query" name:"SecurityToken"`
+	CdnType          string           `position:"Query" name:"CdnType"`
+	PageSize         requests.Integer `position:"Query" name:"PageSize"`
+	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"`
+}
+
+// DescribeVodUserDomainsResponse is the response struct for api DescribeVodUserDomains
+type DescribeVodUserDomainsResponse struct {
+	*responses.BaseResponse
+	RequestId  string  `json:"RequestId" xml:"RequestId"`
+	PageNumber int64   `json:"PageNumber" xml:"PageNumber"`
+	PageSize   int64   `json:"PageSize" xml:"PageSize"`
+	TotalCount int64   `json:"TotalCount" xml:"TotalCount"`
+	Domains    Domains `json:"Domains" xml:"Domains"`
+}
+
+// CreateDescribeVodUserDomainsRequest creates a request to invoke DescribeVodUserDomains API
+func CreateDescribeVodUserDomainsRequest() (request *DescribeVodUserDomainsRequest) {
+	request = &DescribeVodUserDomainsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "DescribeVodUserDomains", "vod", "openAPI")
+	return
+}
+
+// CreateDescribeVodUserDomainsResponse creates a response to parse from DescribeVodUserDomains response
+func CreateDescribeVodUserDomainsResponse() (response *DescribeVodUserDomainsResponse) {
+	response = &DescribeVodUserDomainsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 3 - 0
services/vod/list_transcode_template_group.go

@@ -78,6 +78,9 @@ type ListTranscodeTemplateGroupRequest struct {
 	*requests.RpcRequest
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	PageNo               requests.Integer `position:"Query" name:"PageNo"`
+	AppId                string           `position:"Query" name:"AppId"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 }
 

+ 1 - 0
services/vod/list_vod_template.go

@@ -79,6 +79,7 @@ type ListVodTemplateRequest struct {
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	TemplateType         string           `position:"Query" name:"TemplateType"`
+	AppId                string           `position:"Query" name:"AppId"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 }
 

+ 3 - 0
services/vod/list_watermark.go

@@ -78,6 +78,9 @@ type ListWatermarkRequest struct {
 	*requests.RpcRequest
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
+	PageNo               requests.Integer `position:"Query" name:"PageNo"`
+	AppId                string           `position:"Query" name:"AppId"`
+	PageSize             requests.Integer `position:"Query" name:"PageSize"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 }
 

+ 110 - 0
services/vod/set_vod_domain_certificate.go

@@ -0,0 +1,110 @@
+package vod
+
+//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"
+)
+
+// SetVodDomainCertificate invokes the vod.SetVodDomainCertificate API synchronously
+// api document: https://help.aliyun.com/api/vod/setvoddomaincertificate.html
+func (client *Client) SetVodDomainCertificate(request *SetVodDomainCertificateRequest) (response *SetVodDomainCertificateResponse, err error) {
+	response = CreateSetVodDomainCertificateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetVodDomainCertificateWithChan invokes the vod.SetVodDomainCertificate API asynchronously
+// api document: https://help.aliyun.com/api/vod/setvoddomaincertificate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetVodDomainCertificateWithChan(request *SetVodDomainCertificateRequest) (<-chan *SetVodDomainCertificateResponse, <-chan error) {
+	responseChan := make(chan *SetVodDomainCertificateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetVodDomainCertificate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetVodDomainCertificateWithCallback invokes the vod.SetVodDomainCertificate API asynchronously
+// api document: https://help.aliyun.com/api/vod/setvoddomaincertificate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetVodDomainCertificateWithCallback(request *SetVodDomainCertificateRequest, callback func(response *SetVodDomainCertificateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetVodDomainCertificateResponse
+		var err error
+		defer close(result)
+		response, err = client.SetVodDomainCertificate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetVodDomainCertificateRequest is the request struct for api SetVodDomainCertificate
+type SetVodDomainCertificateRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	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"`
+}
+
+// SetVodDomainCertificateResponse is the response struct for api SetVodDomainCertificate
+type SetVodDomainCertificateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSetVodDomainCertificateRequest creates a request to invoke SetVodDomainCertificate API
+func CreateSetVodDomainCertificateRequest() (request *SetVodDomainCertificateRequest) {
+	request = &SetVodDomainCertificateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "SetVodDomainCertificate", "vod", "openAPI")
+	return
+}
+
+// CreateSetVodDomainCertificateResponse creates a response to parse from SetVodDomainCertificate response
+func CreateSetVodDomainCertificateResponse() (response *SetVodDomainCertificateResponse) {
+	response = &SetVodDomainCertificateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 26 - 0
services/vod/struct_cert.go

@@ -0,0 +1,26 @@
+package vod
+
+//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 vod response
+type Cert struct {
+	CertName    string `json:"CertName" xml:"CertName"`
+	CertId      int64  `json:"CertId" xml:"CertId"`
+	Fingerprint string `json:"Fingerprint" xml:"Fingerprint"`
+	Common      string `json:"Common" xml:"Common"`
+	Issuer      string `json:"Issuer" xml:"Issuer"`
+	LastTime    int64  `json:"LastTime" xml:"LastTime"`
+}

+ 29 - 0
services/vod/struct_cert_info.go

@@ -0,0 +1,29 @@
+package vod
+
+//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 vod 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"`
+	ServerCertificateStatus string `json:"ServerCertificateStatus" xml:"ServerCertificateStatus"`
+	Status                  string `json:"Status" xml:"Status"`
+}

+ 21 - 0
services/vod/struct_cert_infos.go

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

+ 21 - 0
services/vod/struct_cert_list.go

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

+ 22 - 0
services/vod/struct_certificate_list_model.go

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

+ 24 - 0
services/vod/struct_domain_config.go

@@ -0,0 +1,24 @@
+package vod
+
+//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 vod 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/vod/struct_domain_configs.go

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

+ 32 - 0
services/vod/struct_domain_detail.go

@@ -0,0 +1,32 @@
+package vod
+
+//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 vod 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"`
+	Weight       string                           `json:"Weight" xml:"Weight"`
+	Sources      SourcesInDescribeVodDomainDetail `json:"Sources" xml:"Sources"`
+}

+ 21 - 0
services/vod/struct_domains.go

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

+ 22 - 0
services/vod/struct_function_arg.go

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

+ 21 - 0
services/vod/struct_function_args.go

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

+ 31 - 0
services/vod/struct_page_data.go

@@ -0,0 +1,31 @@
+package vod
+
+//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 vod response
+type PageData struct {
+	DomainName   string                          `json:"DomainName" xml:"DomainName"`
+	Cname        string                          `json:"Cname" xml:"Cname"`
+	CdnType      string                          `json:"CdnType" xml:"CdnType"`
+	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"`
+	Weight       string                          `json:"Weight" xml:"Weight"`
+	Sandbox      string                          `json:"Sandbox" xml:"Sandbox"`
+	Sources      SourcesInDescribeVodUserDomains `json:"Sources" xml:"Sources"`
+}

+ 25 - 0
services/vod/struct_source.go

@@ -0,0 +1,25 @@
+package vod
+
+//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 vod 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/vod/struct_sources_in_describe_vod_domain_detail.go

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

+ 21 - 0
services/vod/struct_sources_in_describe_vod_user_domains.go

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

+ 2 - 0
services/vod/struct_transcode_template_group.go

@@ -18,7 +18,9 @@ package vod
 // TranscodeTemplateGroup is a nested struct in vod response
 type TranscodeTemplateGroup struct {
 	Name                     string              `json:"Name" xml:"Name"`
+	AppId                    string              `json:"AppId" xml:"AppId"`
 	ModifyTime               string              `json:"ModifyTime" xml:"ModifyTime"`
+	TranscodeMode            string              `json:"TranscodeMode" xml:"TranscodeMode"`
 	CreationTime             string              `json:"CreationTime" xml:"CreationTime"`
 	Locked                   string              `json:"Locked" xml:"Locked"`
 	IsDefault                string              `json:"IsDefault" xml:"IsDefault"`

+ 1 - 0
services/vod/struct_vod_template_info.go

@@ -18,6 +18,7 @@ package vod
 // VodTemplateInfo is a nested struct in vod response
 type VodTemplateInfo struct {
 	Name            string `json:"Name" xml:"Name"`
+	AppId           string `json:"AppId" xml:"AppId"`
 	ModifyTime      string `json:"ModifyTime" xml:"ModifyTime"`
 	VodTemplateId   string `json:"VodTemplateId" xml:"VodTemplateId"`
 	CreationTime    string `json:"CreationTime" xml:"CreationTime"`

+ 1 - 0
services/vod/struct_watermark_info.go

@@ -18,6 +18,7 @@ package vod
 // WatermarkInfo is a nested struct in vod response
 type WatermarkInfo struct {
 	Name            string `json:"Name" xml:"Name"`
+	AppId           string `json:"AppId" xml:"AppId"`
 	WatermarkId     string `json:"WatermarkId" xml:"WatermarkId"`
 	FileUrl         string `json:"FileUrl" xml:"FileUrl"`
 	WatermarkConfig string `json:"WatermarkConfig" xml:"WatermarkConfig"`

+ 4 - 2
services/vod/submit_transcode_jobs.go

@@ -76,6 +76,7 @@ func (client *Client) SubmitTranscodeJobsWithCallback(request *SubmitTranscodeJo
 // SubmitTranscodeJobsRequest is the request struct for api SubmitTranscodeJobs
 type SubmitTranscodeJobsRequest struct {
 	*requests.RpcRequest
+	UserData             string           `position:"Query" name:"UserData"`
 	ResourceOwnerId      requests.Integer `position:"Query" name:"ResourceOwnerId"`
 	TemplateGroupId      string           `position:"Query" name:"TemplateGroupId"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
@@ -90,8 +91,9 @@ type SubmitTranscodeJobsRequest struct {
 // SubmitTranscodeJobsResponse is the response struct for api SubmitTranscodeJobs
 type SubmitTranscodeJobsResponse struct {
 	*responses.BaseResponse
-	RequestId     string        `json:"RequestId" xml:"RequestId"`
-	TranscodeJobs TranscodeJobs `json:"TranscodeJobs" xml:"TranscodeJobs"`
+	RequestId       string        `json:"RequestId" xml:"RequestId"`
+	TranscodeTaskId string        `json:"TranscodeTaskId" xml:"TranscodeTaskId"`
+	TranscodeJobs   TranscodeJobs `json:"TranscodeJobs" xml:"TranscodeJobs"`
 }
 
 // CreateSubmitTranscodeJobsRequest creates a request to invoke SubmitTranscodeJobs API

+ 107 - 0
services/vod/update_vod_domain.go

@@ -0,0 +1,107 @@
+package vod
+
+//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"
+)
+
+// UpdateVodDomain invokes the vod.UpdateVodDomain API synchronously
+// api document: https://help.aliyun.com/api/vod/updatevoddomain.html
+func (client *Client) UpdateVodDomain(request *UpdateVodDomainRequest) (response *UpdateVodDomainResponse, err error) {
+	response = CreateUpdateVodDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateVodDomainWithChan invokes the vod.UpdateVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/updatevoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateVodDomainWithChan(request *UpdateVodDomainRequest) (<-chan *UpdateVodDomainResponse, <-chan error) {
+	responseChan := make(chan *UpdateVodDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateVodDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateVodDomainWithCallback invokes the vod.UpdateVodDomain API asynchronously
+// api document: https://help.aliyun.com/api/vod/updatevoddomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateVodDomainWithCallback(request *UpdateVodDomainRequest, callback func(response *UpdateVodDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateVodDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateVodDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateVodDomainRequest is the request struct for api UpdateVodDomain
+type UpdateVodDomainRequest struct {
+	*requests.RpcRequest
+	TopLevelDomain string           `position:"Query" name:"TopLevelDomain"`
+	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"`
+}
+
+// UpdateVodDomainResponse is the response struct for api UpdateVodDomain
+type UpdateVodDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUpdateVodDomainRequest creates a request to invoke UpdateVodDomain API
+func CreateUpdateVodDomainRequest() (request *UpdateVodDomainRequest) {
+	request = &UpdateVodDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("vod", "2017-03-21", "UpdateVodDomain", "vod", "openAPI")
+	return
+}
+
+// CreateUpdateVodDomainResponse creates a response to parse from UpdateVodDomain response
+func CreateUpdateVodDomainResponse() (response *UpdateVodDomainResponse) {
+	response = &UpdateVodDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/vod/upload_media_by_url.go

@@ -82,6 +82,7 @@ type UploadMediaByURLRequest struct {
 	UploadMetadatas      string           `position:"Query" name:"UploadMetadatas"`
 	ResourceOwnerAccount string           `position:"Query" name:"ResourceOwnerAccount"`
 	UploadURLs           string           `position:"Query" name:"UploadURLs"`
+	AppId                string           `position:"Query" name:"AppId"`
 	MessageCallback      string           `position:"Query" name:"MessageCallback"`
 	OwnerId              requests.Integer `position:"Query" name:"OwnerId"`
 	Priority             string           `position:"Query" name:"Priority"`