Browse Source

LIVE SDK Auto Released By renrang.yl,Version:1.25.2

Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
yixiong.jxy 7 years ago
parent
commit
95bfc531f6
44 changed files with 2081 additions and 135 deletions
  1. 5 0
      ChangeLog.txt
  2. 1 1
      services/live/add_caster_episode_group.go
  3. 3 3
      services/live/add_caster_layout.go
  4. 4 4
      services/live/add_caster_program.go
  5. 12 11
      services/live/add_custom_live_stream_transcode.go
  6. 1 1
      services/live/add_live_app_record_config.go
  7. 110 0
      services/live/add_live_domain.go
  8. 107 0
      services/live/batch_delete_live_domain_configs.go
  9. 107 0
      services/live/batch_set_live_domain_configs.go
  10. 106 0
      services/live/delete_live_domain.go
  11. 106 0
      services/live/delete_live_specific_config.go
  12. 107 0
      services/live/describe_hls_live_stream_real_time_bps_data.go
  13. 109 0
      services/live/describe_live_certificate_detail.go
  14. 106 0
      services/live/describe_live_certificate_list.go
  15. 107 0
      services/live/describe_live_domain_configs.go
  16. 106 0
      services/live/describe_live_domain_detail.go
  17. 105 0
      services/live/describe_live_stream_count.go
  18. 115 0
      services/live/describe_live_user_domains.go
  19. 0 107
      services/live/image_porn_detection.go
  20. 3 3
      services/live/modify_caster_layout.go
  21. 5 5
      services/live/modify_caster_program.go
  22. 109 0
      services/live/set_live_domain_certificate.go
  23. 105 0
      services/live/start_live_domain.go
  24. 105 0
      services/live/stop_live_domain.go
  25. 26 0
      services/live/struct_cert.go
  26. 21 0
      services/live/struct_cert_list.go
  27. 22 0
      services/live/struct_certificate_list_model.go
  28. 24 0
      services/live/struct_domain_config.go
  29. 21 0
      services/live/struct_domain_configs.go
  30. 32 0
      services/live/struct_domain_detail.go
  31. 21 0
      services/live/struct_domains.go
  32. 22 0
      services/live/struct_function_arg.go
  33. 21 0
      services/live/struct_function_args.go
  34. 23 0
      services/live/struct_info.go
  35. 21 0
      services/live/struct_infos.go
  36. 28 0
      services/live/struct_page_data.go
  37. 23 0
      services/live/struct_stream_count_detail.go
  38. 21 0
      services/live/struct_stream_count_details.go
  39. 24 0
      services/live/struct_stream_count_info.go
  40. 21 0
      services/live/struct_stream_count_infos.go
  41. 2 0
      services/live/struct_stream_info.go
  42. 21 0
      services/live/struct_stream_infos_in_describe_hls_live_stream_real_time_bps_data.go
  43. 21 0
      services/live/struct_usage_data.go
  44. 22 0
      services/live/struct_usage_data_per_domain.go

+ 5 - 0
ChangeLog.txt

@@ -1,3 +1,8 @@
+2018-08-15 Version: 1.25.2
+1, Add domain operation api AddLiveDomain,DeleteLiveDomain,DescribeLiveDomainDetail,StartLiveDomain,StopLiveDomain.
+2, Add certificate operation api DescribeLiveCertificateDetail,DescribeLiveCertificateList,SetLiveDomainCertificate.
+3, Add domain config api BatchSetLiveDomainConfigs,BatchDeleteLiveDomainConfigs,DeleteLiveSpecificConfig,DescribeLiveDomainConfigs.
+
 2018-08-15 Version: 1.25.1
 1, Update ecs tag to 20 maximum
 

+ 1 - 1
services/live/add_caster_episode_group.go

@@ -88,8 +88,8 @@ type AddCasterEpisodeGroupRequest struct {
 
 // AddCasterEpisodeGroupItem is a repeated param struct in AddCasterEpisodeGroupRequest
 type AddCasterEpisodeGroupItem struct {
-	ItemName string `name:"ItemName"`
 	VodUrl   string `name:"VodUrl"`
+	ItemName string `name:"ItemName"`
 }
 
 // AddCasterEpisodeGroupResponse is the response struct for api AddCasterEpisodeGroup

+ 3 - 3
services/live/add_caster_layout.go

@@ -86,19 +86,19 @@ type AddCasterLayoutRequest struct {
 
 // AddCasterLayoutAudioLayer is a repeated param struct in AddCasterLayoutRequest
 type AddCasterLayoutAudioLayer struct {
+	FixedDelayDuration string `name:"FixedDelayDuration"`
 	VolumeRate         string `name:"VolumeRate"`
 	ValidChannel       string `name:"ValidChannel"`
-	FixedDelayDuration string `name:"FixedDelayDuration"`
 }
 
 // AddCasterLayoutVideoLayer is a repeated param struct in AddCasterLayoutRequest
 type AddCasterLayoutVideoLayer struct {
 	FillMode           string            `name:"FillMode"`
-	HeightNormalized   string            `name:"HeightNormalized"`
 	WidthNormalized    string            `name:"WidthNormalized"`
+	FixedDelayDuration string            `name:"FixedDelayDuration"`
 	PositionRefer      string            `name:"PositionRefer"`
 	PositionNormalized *[]requests.Float `name:"PositionNormalized" type:"Repeated"`
-	FixedDelayDuration string            `name:"FixedDelayDuration"`
+	HeightNormalized   string            `name:"HeightNormalized"`
 }
 
 // AddCasterLayoutResponse is the response struct for api AddCasterLayout

+ 4 - 4
services/live/add_caster_program.go

@@ -83,13 +83,13 @@ type AddCasterProgramRequest struct {
 
 // AddCasterProgramEpisode is a repeated param struct in AddCasterProgramRequest
 type AddCasterProgramEpisode struct {
-	EpisodeType string    `name:"EpisodeType"`
-	EpisodeName string    `name:"EpisodeName"`
 	ResourceId  string    `name:"ResourceId"`
 	ComponentId *[]string `name:"ComponentId" type:"Repeated"`
-	StartTime   string    `name:"StartTime"`
-	EndTime     string    `name:"EndTime"`
 	SwitchType  string    `name:"SwitchType"`
+	EpisodeType string    `name:"EpisodeType"`
+	EpisodeName string    `name:"EpisodeName"`
+	EndTime     string    `name:"EndTime"`
+	StartTime   string    `name:"StartTime"`
 }
 
 // AddCasterProgramResponse is the response struct for api AddCasterProgram

+ 12 - 11
services/live/add_custom_live_stream_transcode.go

@@ -76,17 +76,18 @@ func (client *Client) AddCustomLiveStreamTranscodeWithCallback(request *AddCusto
 // AddCustomLiveStreamTranscodeRequest is the request struct for api AddCustomLiveStreamTranscode
 type AddCustomLiveStreamTranscodeRequest struct {
 	*requests.RpcRequest
-	App           string           `position:"Query" name:"App"`
-	Template      string           `position:"Query" name:"Template"`
-	FPS           requests.Integer `position:"Query" name:"FPS"`
-	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
-	Version       string           `position:"Query" name:"Version"`
-	SecurityToken string           `position:"Query" name:"SecurityToken"`
-	TemplateType  string           `position:"Query" name:"TemplateType"`
-	Domain        string           `position:"Query" name:"Domain"`
-	Width         requests.Integer `position:"Query" name:"Width"`
-	VideoBitrate  requests.Integer `position:"Query" name:"VideoBitrate"`
-	Height        requests.Integer `position:"Query" name:"Height"`
+	App          string           `position:"Query" name:"App"`
+	Template     string           `position:"Query" name:"Template"`
+	Profile      requests.Integer `position:"Query" name:"Profile"`
+	FPS          requests.Integer `position:"Query" name:"FPS"`
+	Gop          string           `position:"Query" name:"Gop"`
+	OwnerId      requests.Integer `position:"Query" name:"OwnerId"`
+	TemplateType string           `position:"Query" name:"TemplateType"`
+	AudioBitrate requests.Integer `position:"Query" name:"AudioBitrate"`
+	Domain       string           `position:"Query" name:"Domain"`
+	Width        requests.Integer `position:"Query" name:"Width"`
+	VideoBitrate requests.Integer `position:"Query" name:"VideoBitrate"`
+	Height       requests.Integer `position:"Query" name:"Height"`
 }
 
 // AddCustomLiveStreamTranscodeResponse is the response struct for api AddCustomLiveStreamTranscode

+ 1 - 1
services/live/add_live_app_record_config.go

@@ -91,9 +91,9 @@ type AddLiveAppRecordConfigRequest struct {
 
 // AddLiveAppRecordConfigRecordFormat is a repeated param struct in AddLiveAppRecordConfigRequest
 type AddLiveAppRecordConfigRecordFormat struct {
+	SliceOssObjectPrefix string `name:"SliceOssObjectPrefix"`
 	Format               string `name:"Format"`
 	OssObjectPrefix      string `name:"OssObjectPrefix"`
-	SliceOssObjectPrefix string `name:"SliceOssObjectPrefix"`
 	CycleDuration        string `name:"CycleDuration"`
 }
 

+ 110 - 0
services/live/add_live_domain.go

@@ -0,0 +1,110 @@
+package live
+
+//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"
+)
+
+// AddLiveDomain invokes the live.AddLiveDomain API synchronously
+// api document: https://help.aliyun.com/api/live/addlivedomain.html
+func (client *Client) AddLiveDomain(request *AddLiveDomainRequest) (response *AddLiveDomainResponse, err error) {
+	response = CreateAddLiveDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddLiveDomainWithChan invokes the live.AddLiveDomain API asynchronously
+// api document: https://help.aliyun.com/api/live/addlivedomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddLiveDomainWithChan(request *AddLiveDomainRequest) (<-chan *AddLiveDomainResponse, <-chan error) {
+	responseChan := make(chan *AddLiveDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddLiveDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddLiveDomainWithCallback invokes the live.AddLiveDomain API asynchronously
+// api document: https://help.aliyun.com/api/live/addlivedomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddLiveDomainWithCallback(request *AddLiveDomainRequest, callback func(response *AddLiveDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddLiveDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.AddLiveDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddLiveDomainRequest is the request struct for api AddLiveDomain
+type AddLiveDomainRequest struct {
+	*requests.RpcRequest
+	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"`
+	Region         string           `position:"Query" name:"Region"`
+	CheckUrl       string           `position:"Query" name:"CheckUrl"`
+	LiveDomainType string           `position:"Query" name:"LiveDomainType"`
+}
+
+// AddLiveDomainResponse is the response struct for api AddLiveDomain
+type AddLiveDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAddLiveDomainRequest creates a request to invoke AddLiveDomain API
+func CreateAddLiveDomainRequest() (request *AddLiveDomainRequest) {
+	request = &AddLiveDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "AddLiveDomain", "live", "openAPI")
+	return
+}
+
+// CreateAddLiveDomainResponse creates a response to parse from AddLiveDomain response
+func CreateAddLiveDomainResponse() (response *AddLiveDomainResponse) {
+	response = &AddLiveDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/live/batch_delete_live_domain_configs.go

@@ -0,0 +1,107 @@
+package live
+
+//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"
+)
+
+// BatchDeleteLiveDomainConfigs invokes the live.BatchDeleteLiveDomainConfigs API synchronously
+// api document: https://help.aliyun.com/api/live/batchdeletelivedomainconfigs.html
+func (client *Client) BatchDeleteLiveDomainConfigs(request *BatchDeleteLiveDomainConfigsRequest) (response *BatchDeleteLiveDomainConfigsResponse, err error) {
+	response = CreateBatchDeleteLiveDomainConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchDeleteLiveDomainConfigsWithChan invokes the live.BatchDeleteLiveDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/live/batchdeletelivedomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchDeleteLiveDomainConfigsWithChan(request *BatchDeleteLiveDomainConfigsRequest) (<-chan *BatchDeleteLiveDomainConfigsResponse, <-chan error) {
+	responseChan := make(chan *BatchDeleteLiveDomainConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchDeleteLiveDomainConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchDeleteLiveDomainConfigsWithCallback invokes the live.BatchDeleteLiveDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/live/batchdeletelivedomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchDeleteLiveDomainConfigsWithCallback(request *BatchDeleteLiveDomainConfigsRequest, callback func(response *BatchDeleteLiveDomainConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchDeleteLiveDomainConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchDeleteLiveDomainConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchDeleteLiveDomainConfigsRequest is the request struct for api BatchDeleteLiveDomainConfigs
+type BatchDeleteLiveDomainConfigsRequest 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"`
+}
+
+// BatchDeleteLiveDomainConfigsResponse is the response struct for api BatchDeleteLiveDomainConfigs
+type BatchDeleteLiveDomainConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBatchDeleteLiveDomainConfigsRequest creates a request to invoke BatchDeleteLiveDomainConfigs API
+func CreateBatchDeleteLiveDomainConfigsRequest() (request *BatchDeleteLiveDomainConfigsRequest) {
+	request = &BatchDeleteLiveDomainConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "BatchDeleteLiveDomainConfigs", "live", "openAPI")
+	return
+}
+
+// CreateBatchDeleteLiveDomainConfigsResponse creates a response to parse from BatchDeleteLiveDomainConfigs response
+func CreateBatchDeleteLiveDomainConfigsResponse() (response *BatchDeleteLiveDomainConfigsResponse) {
+	response = &BatchDeleteLiveDomainConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/live/batch_set_live_domain_configs.go

@@ -0,0 +1,107 @@
+package live
+
+//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"
+)
+
+// BatchSetLiveDomainConfigs invokes the live.BatchSetLiveDomainConfigs API synchronously
+// api document: https://help.aliyun.com/api/live/batchsetlivedomainconfigs.html
+func (client *Client) BatchSetLiveDomainConfigs(request *BatchSetLiveDomainConfigsRequest) (response *BatchSetLiveDomainConfigsResponse, err error) {
+	response = CreateBatchSetLiveDomainConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// BatchSetLiveDomainConfigsWithChan invokes the live.BatchSetLiveDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/live/batchsetlivedomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchSetLiveDomainConfigsWithChan(request *BatchSetLiveDomainConfigsRequest) (<-chan *BatchSetLiveDomainConfigsResponse, <-chan error) {
+	responseChan := make(chan *BatchSetLiveDomainConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.BatchSetLiveDomainConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// BatchSetLiveDomainConfigsWithCallback invokes the live.BatchSetLiveDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/live/batchsetlivedomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) BatchSetLiveDomainConfigsWithCallback(request *BatchSetLiveDomainConfigsRequest, callback func(response *BatchSetLiveDomainConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *BatchSetLiveDomainConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.BatchSetLiveDomainConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// BatchSetLiveDomainConfigsRequest is the request struct for api BatchSetLiveDomainConfigs
+type BatchSetLiveDomainConfigsRequest 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"`
+}
+
+// BatchSetLiveDomainConfigsResponse is the response struct for api BatchSetLiveDomainConfigs
+type BatchSetLiveDomainConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateBatchSetLiveDomainConfigsRequest creates a request to invoke BatchSetLiveDomainConfigs API
+func CreateBatchSetLiveDomainConfigsRequest() (request *BatchSetLiveDomainConfigsRequest) {
+	request = &BatchSetLiveDomainConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "BatchSetLiveDomainConfigs", "live", "openAPI")
+	return
+}
+
+// CreateBatchSetLiveDomainConfigsResponse creates a response to parse from BatchSetLiveDomainConfigs response
+func CreateBatchSetLiveDomainConfigsResponse() (response *BatchSetLiveDomainConfigsResponse) {
+	response = &BatchSetLiveDomainConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/delete_live_domain.go

@@ -0,0 +1,106 @@
+package live
+
+//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"
+)
+
+// DeleteLiveDomain invokes the live.DeleteLiveDomain API synchronously
+// api document: https://help.aliyun.com/api/live/deletelivedomain.html
+func (client *Client) DeleteLiveDomain(request *DeleteLiveDomainRequest) (response *DeleteLiveDomainResponse, err error) {
+	response = CreateDeleteLiveDomainResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteLiveDomainWithChan invokes the live.DeleteLiveDomain API asynchronously
+// api document: https://help.aliyun.com/api/live/deletelivedomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteLiveDomainWithChan(request *DeleteLiveDomainRequest) (<-chan *DeleteLiveDomainResponse, <-chan error) {
+	responseChan := make(chan *DeleteLiveDomainResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteLiveDomain(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteLiveDomainWithCallback invokes the live.DeleteLiveDomain API asynchronously
+// api document: https://help.aliyun.com/api/live/deletelivedomain.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteLiveDomainWithCallback(request *DeleteLiveDomainRequest, callback func(response *DeleteLiveDomainResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteLiveDomainResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteLiveDomain(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteLiveDomainRequest is the request struct for api DeleteLiveDomain
+type DeleteLiveDomainRequest 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"`
+}
+
+// DeleteLiveDomainResponse is the response struct for api DeleteLiveDomain
+type DeleteLiveDomainResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteLiveDomainRequest creates a request to invoke DeleteLiveDomain API
+func CreateDeleteLiveDomainRequest() (request *DeleteLiveDomainRequest) {
+	request = &DeleteLiveDomainRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DeleteLiveDomain", "live", "openAPI")
+	return
+}
+
+// CreateDeleteLiveDomainResponse creates a response to parse from DeleteLiveDomain response
+func CreateDeleteLiveDomainResponse() (response *DeleteLiveDomainResponse) {
+	response = &DeleteLiveDomainResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/delete_live_specific_config.go

@@ -0,0 +1,106 @@
+package live
+
+//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"
+)
+
+// DeleteLiveSpecificConfig invokes the live.DeleteLiveSpecificConfig API synchronously
+// api document: https://help.aliyun.com/api/live/deletelivespecificconfig.html
+func (client *Client) DeleteLiveSpecificConfig(request *DeleteLiveSpecificConfigRequest) (response *DeleteLiveSpecificConfigResponse, err error) {
+	response = CreateDeleteLiveSpecificConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteLiveSpecificConfigWithChan invokes the live.DeleteLiveSpecificConfig API asynchronously
+// api document: https://help.aliyun.com/api/live/deletelivespecificconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteLiveSpecificConfigWithChan(request *DeleteLiveSpecificConfigRequest) (<-chan *DeleteLiveSpecificConfigResponse, <-chan error) {
+	responseChan := make(chan *DeleteLiveSpecificConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteLiveSpecificConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteLiveSpecificConfigWithCallback invokes the live.DeleteLiveSpecificConfig API asynchronously
+// api document: https://help.aliyun.com/api/live/deletelivespecificconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteLiveSpecificConfigWithCallback(request *DeleteLiveSpecificConfigRequest, callback func(response *DeleteLiveSpecificConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteLiveSpecificConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteLiveSpecificConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteLiveSpecificConfigRequest is the request struct for api DeleteLiveSpecificConfig
+type DeleteLiveSpecificConfigRequest 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"`
+}
+
+// DeleteLiveSpecificConfigResponse is the response struct for api DeleteLiveSpecificConfig
+type DeleteLiveSpecificConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteLiveSpecificConfigRequest creates a request to invoke DeleteLiveSpecificConfig API
+func CreateDeleteLiveSpecificConfigRequest() (request *DeleteLiveSpecificConfigRequest) {
+	request = &DeleteLiveSpecificConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DeleteLiveSpecificConfig", "live", "openAPI")
+	return
+}
+
+// CreateDeleteLiveSpecificConfigResponse creates a response to parse from DeleteLiveSpecificConfig response
+func CreateDeleteLiveSpecificConfigResponse() (response *DeleteLiveSpecificConfigResponse) {
+	response = &DeleteLiveSpecificConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/live/describe_hls_live_stream_real_time_bps_data.go

@@ -0,0 +1,107 @@
+package live
+
+//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"
+)
+
+// DescribeHlsLiveStreamRealTimeBpsData invokes the live.DescribeHlsLiveStreamRealTimeBpsData API synchronously
+// api document: https://help.aliyun.com/api/live/describehlslivestreamrealtimebpsdata.html
+func (client *Client) DescribeHlsLiveStreamRealTimeBpsData(request *DescribeHlsLiveStreamRealTimeBpsDataRequest) (response *DescribeHlsLiveStreamRealTimeBpsDataResponse, err error) {
+	response = CreateDescribeHlsLiveStreamRealTimeBpsDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeHlsLiveStreamRealTimeBpsDataWithChan invokes the live.DescribeHlsLiveStreamRealTimeBpsData API asynchronously
+// api document: https://help.aliyun.com/api/live/describehlslivestreamrealtimebpsdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeHlsLiveStreamRealTimeBpsDataWithChan(request *DescribeHlsLiveStreamRealTimeBpsDataRequest) (<-chan *DescribeHlsLiveStreamRealTimeBpsDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeHlsLiveStreamRealTimeBpsDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeHlsLiveStreamRealTimeBpsData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeHlsLiveStreamRealTimeBpsDataWithCallback invokes the live.DescribeHlsLiveStreamRealTimeBpsData API asynchronously
+// api document: https://help.aliyun.com/api/live/describehlslivestreamrealtimebpsdata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeHlsLiveStreamRealTimeBpsDataWithCallback(request *DescribeHlsLiveStreamRealTimeBpsDataRequest, callback func(response *DescribeHlsLiveStreamRealTimeBpsDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeHlsLiveStreamRealTimeBpsDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeHlsLiveStreamRealTimeBpsData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeHlsLiveStreamRealTimeBpsDataRequest is the request struct for api DescribeHlsLiveStreamRealTimeBpsData
+type DescribeHlsLiveStreamRealTimeBpsDataRequest struct {
+	*requests.RpcRequest
+	DomainName string           `position:"Query" name:"DomainName"`
+	Time       string           `position:"Query" name:"Time"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeHlsLiveStreamRealTimeBpsDataResponse is the response struct for api DescribeHlsLiveStreamRealTimeBpsData
+type DescribeHlsLiveStreamRealTimeBpsDataResponse struct {
+	*responses.BaseResponse
+	Time      string               `json:"Time" xml:"Time"`
+	RequestId string               `json:"RequestId" xml:"RequestId"`
+	UsageData []UsageDataPerDomain `json:"UsageData" xml:"UsageData"`
+}
+
+// CreateDescribeHlsLiveStreamRealTimeBpsDataRequest creates a request to invoke DescribeHlsLiveStreamRealTimeBpsData API
+func CreateDescribeHlsLiveStreamRealTimeBpsDataRequest() (request *DescribeHlsLiveStreamRealTimeBpsDataRequest) {
+	request = &DescribeHlsLiveStreamRealTimeBpsDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeHlsLiveStreamRealTimeBpsData", "live", "openAPI")
+	return
+}
+
+// CreateDescribeHlsLiveStreamRealTimeBpsDataResponse creates a response to parse from DescribeHlsLiveStreamRealTimeBpsData response
+func CreateDescribeHlsLiveStreamRealTimeBpsDataResponse() (response *DescribeHlsLiveStreamRealTimeBpsDataResponse) {
+	response = &DescribeHlsLiveStreamRealTimeBpsDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/live/describe_live_certificate_detail.go

@@ -0,0 +1,109 @@
+package live
+
+//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"
+)
+
+// DescribeLiveCertificateDetail invokes the live.DescribeLiveCertificateDetail API synchronously
+// api document: https://help.aliyun.com/api/live/describelivecertificatedetail.html
+func (client *Client) DescribeLiveCertificateDetail(request *DescribeLiveCertificateDetailRequest) (response *DescribeLiveCertificateDetailResponse, err error) {
+	response = CreateDescribeLiveCertificateDetailResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeLiveCertificateDetailWithChan invokes the live.DescribeLiveCertificateDetail API asynchronously
+// api document: https://help.aliyun.com/api/live/describelivecertificatedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveCertificateDetailWithChan(request *DescribeLiveCertificateDetailRequest) (<-chan *DescribeLiveCertificateDetailResponse, <-chan error) {
+	responseChan := make(chan *DescribeLiveCertificateDetailResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeLiveCertificateDetail(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeLiveCertificateDetailWithCallback invokes the live.DescribeLiveCertificateDetail API asynchronously
+// api document: https://help.aliyun.com/api/live/describelivecertificatedetail.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveCertificateDetailWithCallback(request *DescribeLiveCertificateDetailRequest, callback func(response *DescribeLiveCertificateDetailResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeLiveCertificateDetailResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeLiveCertificateDetail(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeLiveCertificateDetailRequest is the request struct for api DescribeLiveCertificateDetail
+type DescribeLiveCertificateDetailRequest struct {
+	*requests.RpcRequest
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	CertName      string           `position:"Query" name:"CertName"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeLiveCertificateDetailResponse is the response struct for api DescribeLiveCertificateDetail
+type DescribeLiveCertificateDetailResponse 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"`
+}
+
+// CreateDescribeLiveCertificateDetailRequest creates a request to invoke DescribeLiveCertificateDetail API
+func CreateDescribeLiveCertificateDetailRequest() (request *DescribeLiveCertificateDetailRequest) {
+	request = &DescribeLiveCertificateDetailRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeLiveCertificateDetail", "live", "openAPI")
+	return
+}
+
+// CreateDescribeLiveCertificateDetailResponse creates a response to parse from DescribeLiveCertificateDetail response
+func CreateDescribeLiveCertificateDetailResponse() (response *DescribeLiveCertificateDetailResponse) {
+	response = &DescribeLiveCertificateDetailResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/describe_live_certificate_list.go

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

+ 107 - 0
services/live/describe_live_domain_configs.go

@@ -0,0 +1,107 @@
+package live
+
+//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"
+)
+
+// DescribeLiveDomainConfigs invokes the live.DescribeLiveDomainConfigs API synchronously
+// api document: https://help.aliyun.com/api/live/describelivedomainconfigs.html
+func (client *Client) DescribeLiveDomainConfigs(request *DescribeLiveDomainConfigsRequest) (response *DescribeLiveDomainConfigsResponse, err error) {
+	response = CreateDescribeLiveDomainConfigsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeLiveDomainConfigsWithChan invokes the live.DescribeLiveDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/live/describelivedomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveDomainConfigsWithChan(request *DescribeLiveDomainConfigsRequest) (<-chan *DescribeLiveDomainConfigsResponse, <-chan error) {
+	responseChan := make(chan *DescribeLiveDomainConfigsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeLiveDomainConfigs(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeLiveDomainConfigsWithCallback invokes the live.DescribeLiveDomainConfigs API asynchronously
+// api document: https://help.aliyun.com/api/live/describelivedomainconfigs.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveDomainConfigsWithCallback(request *DescribeLiveDomainConfigsRequest, callback func(response *DescribeLiveDomainConfigsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeLiveDomainConfigsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeLiveDomainConfigs(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeLiveDomainConfigsRequest is the request struct for api DescribeLiveDomainConfigs
+type DescribeLiveDomainConfigsRequest 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"`
+}
+
+// DescribeLiveDomainConfigsResponse is the response struct for api DescribeLiveDomainConfigs
+type DescribeLiveDomainConfigsResponse struct {
+	*responses.BaseResponse
+	RequestId     string        `json:"RequestId" xml:"RequestId"`
+	DomainConfigs DomainConfigs `json:"DomainConfigs" xml:"DomainConfigs"`
+}
+
+// CreateDescribeLiveDomainConfigsRequest creates a request to invoke DescribeLiveDomainConfigs API
+func CreateDescribeLiveDomainConfigsRequest() (request *DescribeLiveDomainConfigsRequest) {
+	request = &DescribeLiveDomainConfigsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeLiveDomainConfigs", "live", "openAPI")
+	return
+}
+
+// CreateDescribeLiveDomainConfigsResponse creates a response to parse from DescribeLiveDomainConfigs response
+func CreateDescribeLiveDomainConfigsResponse() (response *DescribeLiveDomainConfigsResponse) {
+	response = &DescribeLiveDomainConfigsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/describe_live_domain_detail.go

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

+ 105 - 0
services/live/describe_live_stream_count.go

@@ -0,0 +1,105 @@
+package live
+
+//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"
+)
+
+// DescribeLiveStreamCount invokes the live.DescribeLiveStreamCount API synchronously
+// api document: https://help.aliyun.com/api/live/describelivestreamcount.html
+func (client *Client) DescribeLiveStreamCount(request *DescribeLiveStreamCountRequest) (response *DescribeLiveStreamCountResponse, err error) {
+	response = CreateDescribeLiveStreamCountResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeLiveStreamCountWithChan invokes the live.DescribeLiveStreamCount API asynchronously
+// api document: https://help.aliyun.com/api/live/describelivestreamcount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveStreamCountWithChan(request *DescribeLiveStreamCountRequest) (<-chan *DescribeLiveStreamCountResponse, <-chan error) {
+	responseChan := make(chan *DescribeLiveStreamCountResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeLiveStreamCount(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeLiveStreamCountWithCallback invokes the live.DescribeLiveStreamCount API asynchronously
+// api document: https://help.aliyun.com/api/live/describelivestreamcount.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveStreamCountWithCallback(request *DescribeLiveStreamCountRequest, callback func(response *DescribeLiveStreamCountResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeLiveStreamCountResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeLiveStreamCount(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeLiveStreamCountRequest is the request struct for api DescribeLiveStreamCount
+type DescribeLiveStreamCountRequest struct {
+	*requests.RpcRequest
+	DomainName string           `position:"Query" name:"DomainName"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeLiveStreamCountResponse is the response struct for api DescribeLiveStreamCount
+type DescribeLiveStreamCountResponse struct {
+	*responses.BaseResponse
+	RequestId        string           `json:"RequestId" xml:"RequestId"`
+	StreamCountInfos StreamCountInfos `json:"StreamCountInfos" xml:"StreamCountInfos"`
+}
+
+// CreateDescribeLiveStreamCountRequest creates a request to invoke DescribeLiveStreamCount API
+func CreateDescribeLiveStreamCountRequest() (request *DescribeLiveStreamCountRequest) {
+	request = &DescribeLiveStreamCountRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeLiveStreamCount", "live", "openAPI")
+	return
+}
+
+// CreateDescribeLiveStreamCountResponse creates a response to parse from DescribeLiveStreamCount response
+func CreateDescribeLiveStreamCountResponse() (response *DescribeLiveStreamCountResponse) {
+	response = &DescribeLiveStreamCountResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/live/describe_live_user_domains.go

@@ -0,0 +1,115 @@
+package live
+
+//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"
+)
+
+// DescribeLiveUserDomains invokes the live.DescribeLiveUserDomains API synchronously
+// api document: https://help.aliyun.com/api/live/describeliveuserdomains.html
+func (client *Client) DescribeLiveUserDomains(request *DescribeLiveUserDomainsRequest) (response *DescribeLiveUserDomainsResponse, err error) {
+	response = CreateDescribeLiveUserDomainsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeLiveUserDomainsWithChan invokes the live.DescribeLiveUserDomains API asynchronously
+// api document: https://help.aliyun.com/api/live/describeliveuserdomains.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveUserDomainsWithChan(request *DescribeLiveUserDomainsRequest) (<-chan *DescribeLiveUserDomainsResponse, <-chan error) {
+	responseChan := make(chan *DescribeLiveUserDomainsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeLiveUserDomains(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeLiveUserDomainsWithCallback invokes the live.DescribeLiveUserDomains API asynchronously
+// api document: https://help.aliyun.com/api/live/describeliveuserdomains.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveUserDomainsWithCallback(request *DescribeLiveUserDomainsRequest, callback func(response *DescribeLiveUserDomainsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeLiveUserDomainsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeLiveUserDomains(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeLiveUserDomainsRequest is the request struct for api DescribeLiveUserDomains
+type DescribeLiveUserDomainsRequest struct {
+	*requests.RpcRequest
+	SecurityToken    string           `position:"Query" name:"SecurityToken"`
+	PageSize         requests.Integer `position:"Query" name:"PageSize"`
+	DomainName       string           `position:"Query" name:"DomainName"`
+	RegionName       string           `position:"Query" name:"RegionName"`
+	OwnerId          requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber       requests.Integer `position:"Query" name:"PageNumber"`
+	DomainStatus     string           `position:"Query" name:"DomainStatus"`
+	LiveDomainType   string           `position:"Query" name:"LiveDomainType"`
+	DomainSearchType string           `position:"Query" name:"DomainSearchType"`
+}
+
+// DescribeLiveUserDomainsResponse is the response struct for api DescribeLiveUserDomains
+type DescribeLiveUserDomainsResponse 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"`
+}
+
+// CreateDescribeLiveUserDomainsRequest creates a request to invoke DescribeLiveUserDomains API
+func CreateDescribeLiveUserDomainsRequest() (request *DescribeLiveUserDomainsRequest) {
+	request = &DescribeLiveUserDomainsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeLiveUserDomains", "live", "openAPI")
+	return
+}
+
+// CreateDescribeLiveUserDomainsResponse creates a response to parse from DescribeLiveUserDomains response
+func CreateDescribeLiveUserDomainsResponse() (response *DescribeLiveUserDomainsResponse) {
+	response = &DescribeLiveUserDomainsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 0 - 107
services/live/image_porn_detection.go

@@ -1,107 +0,0 @@
-package live
-
-//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"
-)
-
-// ImagePornDetection invokes the live.ImagePornDetection API synchronously
-// api document: https://help.aliyun.com/api/live/imageporndetection.html
-func (client *Client) ImagePornDetection(request *ImagePornDetectionRequest) (response *ImagePornDetectionResponse, err error) {
-	response = CreateImagePornDetectionResponse()
-	err = client.DoAction(request, response)
-	return
-}
-
-// ImagePornDetectionWithChan invokes the live.ImagePornDetection API asynchronously
-// api document: https://help.aliyun.com/api/live/imageporndetection.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) ImagePornDetectionWithChan(request *ImagePornDetectionRequest) (<-chan *ImagePornDetectionResponse, <-chan error) {
-	responseChan := make(chan *ImagePornDetectionResponse, 1)
-	errChan := make(chan error, 1)
-	err := client.AddAsyncTask(func() {
-		defer close(responseChan)
-		defer close(errChan)
-		response, err := client.ImagePornDetection(request)
-		if err != nil {
-			errChan <- err
-		} else {
-			responseChan <- response
-		}
-	})
-	if err != nil {
-		errChan <- err
-		close(responseChan)
-		close(errChan)
-	}
-	return responseChan, errChan
-}
-
-// ImagePornDetectionWithCallback invokes the live.ImagePornDetection API asynchronously
-// api document: https://help.aliyun.com/api/live/imageporndetection.html
-// asynchronous document: https://help.aliyun.com/document_detail/66220.html
-func (client *Client) ImagePornDetectionWithCallback(request *ImagePornDetectionRequest, callback func(response *ImagePornDetectionResponse, err error)) <-chan int {
-	result := make(chan int, 1)
-	err := client.AddAsyncTask(func() {
-		var response *ImagePornDetectionResponse
-		var err error
-		defer close(result)
-		response, err = client.ImagePornDetection(request)
-		callback(response, err)
-		result <- 1
-	})
-	if err != nil {
-		defer close(result)
-		callback(nil, err)
-		result <- 0
-	}
-	return result
-}
-
-// ImagePornDetectionRequest is the request struct for api ImagePornDetection
-type ImagePornDetectionRequest struct {
-	*requests.RpcRequest
-	SecurityToken string           `position:"Query" name:"SecurityToken"`
-	ImageUrl      string           `position:"Query" name:"ImageUrl"`
-	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
-}
-
-// ImagePornDetectionResponse is the response struct for api ImagePornDetection
-type ImagePornDetectionResponse struct {
-	*responses.BaseResponse
-	RequestId string  `json:"RequestId" xml:"RequestId"`
-	Label     string  `json:"Label" xml:"Label"`
-	Rate      float64 `json:"Rate" xml:"Rate"`
-}
-
-// CreateImagePornDetectionRequest creates a request to invoke ImagePornDetection API
-func CreateImagePornDetectionRequest() (request *ImagePornDetectionRequest) {
-	request = &ImagePornDetectionRequest{
-		RpcRequest: &requests.RpcRequest{},
-	}
-	request.InitWithApiInfo("live", "2016-11-01", "ImagePornDetection", "live", "openAPI")
-	return
-}
-
-// CreateImagePornDetectionResponse creates a response to parse from ImagePornDetection response
-func CreateImagePornDetectionResponse() (response *ImagePornDetectionResponse) {
-	response = &ImagePornDetectionResponse{
-		BaseResponse: &responses.BaseResponse{},
-	}
-	return
-}

+ 3 - 3
services/live/modify_caster_layout.go

@@ -87,19 +87,19 @@ type ModifyCasterLayoutRequest struct {
 
 // ModifyCasterLayoutAudioLayer is a repeated param struct in ModifyCasterLayoutRequest
 type ModifyCasterLayoutAudioLayer struct {
+	FixedDelayDuration string `name:"FixedDelayDuration"`
 	VolumeRate         string `name:"VolumeRate"`
 	ValidChannel       string `name:"ValidChannel"`
-	FixedDelayDuration string `name:"FixedDelayDuration"`
 }
 
 // ModifyCasterLayoutVideoLayer is a repeated param struct in ModifyCasterLayoutRequest
 type ModifyCasterLayoutVideoLayer struct {
 	FillMode           string            `name:"FillMode"`
-	HeightNormalized   string            `name:"HeightNormalized"`
 	WidthNormalized    string            `name:"WidthNormalized"`
+	FixedDelayDuration string            `name:"FixedDelayDuration"`
 	PositionRefer      string            `name:"PositionRefer"`
 	PositionNormalized *[]requests.Float `name:"PositionNormalized" type:"Repeated"`
-	FixedDelayDuration string            `name:"FixedDelayDuration"`
+	HeightNormalized   string            `name:"HeightNormalized"`
 }
 
 // ModifyCasterLayoutResponse is the response struct for api ModifyCasterLayout

+ 5 - 5
services/live/modify_caster_program.go

@@ -83,14 +83,14 @@ type ModifyCasterProgramRequest struct {
 
 // ModifyCasterProgramEpisode is a repeated param struct in ModifyCasterProgramRequest
 type ModifyCasterProgramEpisode struct {
-	EpisodeId   string    `name:"EpisodeId"`
-	EpisodeType string    `name:"EpisodeType"`
-	EpisodeName string    `name:"EpisodeName"`
 	ResourceId  string    `name:"ResourceId"`
 	ComponentId *[]string `name:"ComponentId" type:"Repeated"`
-	StartTime   string    `name:"StartTime"`
-	EndTime     string    `name:"EndTime"`
 	SwitchType  string    `name:"SwitchType"`
+	EpisodeType string    `name:"EpisodeType"`
+	EpisodeName string    `name:"EpisodeName"`
+	EndTime     string    `name:"EndTime"`
+	StartTime   string    `name:"StartTime"`
+	EpisodeId   string    `name:"EpisodeId"`
 }
 
 // ModifyCasterProgramResponse is the response struct for api ModifyCasterProgram

+ 109 - 0
services/live/set_live_domain_certificate.go

@@ -0,0 +1,109 @@
+package live
+
+//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"
+)
+
+// SetLiveDomainCertificate invokes the live.SetLiveDomainCertificate API synchronously
+// api document: https://help.aliyun.com/api/live/setlivedomaincertificate.html
+func (client *Client) SetLiveDomainCertificate(request *SetLiveDomainCertificateRequest) (response *SetLiveDomainCertificateResponse, err error) {
+	response = CreateSetLiveDomainCertificateResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetLiveDomainCertificateWithChan invokes the live.SetLiveDomainCertificate API asynchronously
+// api document: https://help.aliyun.com/api/live/setlivedomaincertificate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetLiveDomainCertificateWithChan(request *SetLiveDomainCertificateRequest) (<-chan *SetLiveDomainCertificateResponse, <-chan error) {
+	responseChan := make(chan *SetLiveDomainCertificateResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetLiveDomainCertificate(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetLiveDomainCertificateWithCallback invokes the live.SetLiveDomainCertificate API asynchronously
+// api document: https://help.aliyun.com/api/live/setlivedomaincertificate.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetLiveDomainCertificateWithCallback(request *SetLiveDomainCertificateRequest, callback func(response *SetLiveDomainCertificateResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetLiveDomainCertificateResponse
+		var err error
+		defer close(result)
+		response, err = client.SetLiveDomainCertificate(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetLiveDomainCertificateRequest is the request struct for api SetLiveDomainCertificate
+type SetLiveDomainCertificateRequest 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"`
+	SSLPri        string           `position:"Query" name:"SSLPri"`
+}
+
+// SetLiveDomainCertificateResponse is the response struct for api SetLiveDomainCertificate
+type SetLiveDomainCertificateResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSetLiveDomainCertificateRequest creates a request to invoke SetLiveDomainCertificate API
+func CreateSetLiveDomainCertificateRequest() (request *SetLiveDomainCertificateRequest) {
+	request = &SetLiveDomainCertificateRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "SetLiveDomainCertificate", "live", "openAPI")
+	return
+}
+
+// CreateSetLiveDomainCertificateResponse creates a response to parse from SetLiveDomainCertificate response
+func CreateSetLiveDomainCertificateResponse() (response *SetLiveDomainCertificateResponse) {
+	response = &SetLiveDomainCertificateResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/live/start_live_domain.go

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

+ 105 - 0
services/live/stop_live_domain.go

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

+ 26 - 0
services/live/struct_cert.go

@@ -0,0 +1,26 @@
+package live
+
+//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 live 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"`
+}

+ 21 - 0
services/live/struct_cert_list.go

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

+ 22 - 0
services/live/struct_certificate_list_model.go

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

+ 24 - 0
services/live/struct_domain_config.go

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

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

+ 32 - 0
services/live/struct_domain_detail.go

@@ -0,0 +1,32 @@
+package live
+
+//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 live 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"`
+	LiveDomainType string `json:"LiveDomainType" xml:"LiveDomainType"`
+	Region         string `json:"Region" xml:"Region"`
+	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"`
+}

+ 21 - 0
services/live/struct_domains.go

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

+ 22 - 0
services/live/struct_function_arg.go

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

+ 21 - 0
services/live/struct_function_args.go

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

+ 23 - 0
services/live/struct_info.go

@@ -0,0 +1,23 @@
+package live
+
+//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.
+
+// Info is a nested struct in live response
+type Info struct {
+	DownFlow float64 `json:"DownFlow" xml:"DownFlow"`
+	Rate     string  `json:"Rate" xml:"Rate"`
+	Online   float64 `json:"Online" xml:"Online"`
+}

+ 21 - 0
services/live/struct_infos.go

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

+ 28 - 0
services/live/struct_page_data.go

@@ -0,0 +1,28 @@
+package live
+
+//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 live response
+type PageData struct {
+	DomainName       string `json:"DomainName" xml:"DomainName"`
+	Cname            string `json:"Cname" xml:"Cname"`
+	LiveDomainType   string `json:"LiveDomainType" xml:"LiveDomainType"`
+	GmtCreated       string `json:"GmtCreated" xml:"GmtCreated"`
+	GmtModified      string `json:"GmtModified" xml:"GmtModified"`
+	Description      string `json:"Description" xml:"Description"`
+	LiveDomainStatus string `json:"LiveDomainStatus" xml:"LiveDomainStatus"`
+	RegionName       string `json:"RegionName" xml:"RegionName"`
+}

+ 23 - 0
services/live/struct_stream_count_detail.go

@@ -0,0 +1,23 @@
+package live
+
+//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.
+
+// StreamCountDetail is a nested struct in live response
+type StreamCountDetail struct {
+	Format        string `json:"Format" xml:"Format"`
+	VideoDataRate int    `json:"VideoDataRate" xml:"VideoDataRate"`
+	Count         int    `json:"Count" xml:"Count"`
+}

+ 21 - 0
services/live/struct_stream_count_details.go

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

+ 24 - 0
services/live/struct_stream_count_info.go

@@ -0,0 +1,24 @@
+package live
+
+//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.
+
+// StreamCountInfo is a nested struct in live response
+type StreamCountInfo struct {
+	Count              int                `json:"Count" xml:"Count"`
+	Limit              int                `json:"Limit" xml:"Limit"`
+	Type               string             `json:"Type" xml:"Type"`
+	StreamCountDetails StreamCountDetails `json:"StreamCountDetails" xml:"StreamCountDetails"`
+}

+ 21 - 0
services/live/struct_stream_count_infos.go

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

+ 2 - 0
services/live/struct_stream_info.go

@@ -20,4 +20,6 @@ type StreamInfo struct {
 	VideoFormat     string `json:"VideoFormat" xml:"VideoFormat"`
 	TranscodeConfig string `json:"TranscodeConfig" xml:"TranscodeConfig"`
 	OutputStreamUrl string `json:"OutputStreamUrl" xml:"OutputStreamUrl"`
+	StreamName      string `json:"StreamName" xml:"StreamName"`
+	Infos           Infos  `json:"Infos" xml:"Infos"`
 }

+ 21 - 0
services/live/struct_stream_infos_in_describe_hls_live_stream_real_time_bps_data.go

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

+ 21 - 0
services/live/struct_usage_data.go

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

+ 22 - 0
services/live/struct_usage_data_per_domain.go

@@ -0,0 +1,22 @@
+package live
+
+//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.
+
+// UsageDataPerDomain is a nested struct in live response
+type UsageDataPerDomain struct {
+	DomainName  string       `json:"DomainName" xml:"DomainName"`
+	StreamInfos []StreamInfo `json:"StreamInfos" xml:"StreamInfos"`
+}