Переглянути джерело

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

Signed-off-by: yixiong.jxy <yixiong.jxy@alibaba-inc.com>
yixiong.jxy 7 роки тому
батько
коміт
001ce07526
72 змінених файлів з 3773 додано та 73 видалено
  1. 4 0
      ChangeLog.txt
  2. 11 10
      services/live/add_caster_video_resource.go
  3. 1 0
      services/live/add_live_domain.go
  4. 106 0
      services/live/add_live_domain_mapping.go
  5. 105 0
      services/live/allow_push_stream.go
  6. 108 0
      services/live/apply_board_token.go
  7. 105 0
      services/live/complete_board.go
  8. 106 0
      services/live/create_board.go
  9. 109 0
      services/live/create_room.go
  10. 105 0
      services/live/delete_board.go
  11. 106 0
      services/live/delete_live_domain_mapping.go
  12. 105 0
      services/live/delete_live_lazy_pull_stream_info_config.go
  13. 2 3
      services/live/delete_live_streams_notify_url_config.go
  14. 105 0
      services/live/delete_room.go
  15. 108 0
      services/live/describe_board_events.go
  16. 106 0
      services/live/describe_board_snapshot.go
  17. 107 0
      services/live/describe_boards.go
  18. 106 0
      services/live/describe_caster_channels.go
  19. 1 0
      services/live/describe_caster_config.go
  20. 109 0
      services/live/describe_caster_scene_audio.go
  21. 114 0
      services/live/describe_domain_usage_data.go
  22. 110 0
      services/live/describe_forbid_push_stream_room_list.go
  23. 106 0
      services/live/describe_live_lazy_pull_stream_config.go
  24. 2 3
      services/live/describe_live_streams_notify_url_config.go
  25. 11 10
      services/live/describe_live_streams_online_list.go
  26. 11 11
      services/live/describe_live_streams_publish_list.go
  27. 111 0
      services/live/describe_room_kickout_user_list.go
  28. 111 0
      services/live/describe_room_list.go
  29. 106 0
      services/live/describe_room_status.go
  30. 8 7
      services/live/forbid_live_stream.go
  31. 107 0
      services/live/forbid_push_stream.go
  32. 109 0
      services/live/join_board.go
  33. 11 10
      services/live/modify_caster_video_resource.go
  34. 109 0
      services/live/send_room_notification.go
  35. 110 0
      services/live/send_room_user_notification.go
  36. 108 0
      services/live/set_caster_channel.go
  37. 1 0
      services/live/set_caster_config.go
  38. 110 0
      services/live/set_live_lazy_pull_stream_info_config.go
  39. 1 1
      services/live/struct_audio_layer.go
  40. 2 2
      services/live/struct_audio_layers_in_describe_caster_layouts.go
  41. 21 0
      services/live/struct_audio_layers_in_describe_caster_scene_audio.go
  42. 27 0
      services/live/struct_board.go
  43. 21 0
      services/live/struct_boards.go
  44. 1 0
      services/live/struct_caster.go
  45. 23 0
      services/live/struct_channel.go
  46. 21 0
      services/live/struct_channels.go
  47. 22 0
      services/live/struct_config.go
  48. 21 0
      services/live/struct_configs.go
  49. 22 0
      services/live/struct_data_module.go
  50. 25 0
      services/live/struct_element.go
  51. 21 0
      services/live/struct_elements.go
  52. 24 0
      services/live/struct_event.go
  53. 25 0
      services/live/struct_event_in_describe_board_events.go
  54. 21 0
      services/live/struct_events.go
  55. 5 5
      services/live/struct_layout.go
  56. 27 0
      services/live/struct_live_lazy_pull_config.go
  57. 21 0
      services/live/struct_live_lazy_pull_config_list.go
  58. 2 0
      services/live/struct_live_streams_notify_config.go
  59. 2 2
      services/live/struct_mix_list_in_describe_caster_layouts.go
  60. 21 0
      services/live/struct_mix_list_in_describe_caster_scene_audio.go
  61. 22 0
      services/live/struct_page.go
  62. 21 0
      services/live/struct_pages.go
  63. 26 0
      services/live/struct_room.go
  64. 21 0
      services/live/struct_room_list_in_describe_forbid_push_stream_room_list.go
  65. 21 0
      services/live/struct_room_list_in_describe_room_list.go
  66. 21 0
      services/live/struct_snapshot.go
  67. 21 0
      services/live/struct_usage_data_per_interval.go
  68. 23 0
      services/live/struct_user.go
  69. 21 0
      services/live/struct_user_list.go
  70. 10 9
      services/live/struct_video_resource.go
  71. 105 0
      services/live/update_board.go
  72. 115 0
      services/live/update_caster_scene_audio.go

+ 4 - 0
ChangeLog.txt

@@ -1,3 +1,7 @@
+2018-09-17 Version: 1.29.10
+1, Add field for AddCasterVideoResource, DescribeCasterVideoResources, ModifyCasterVideoResource.
+
+
 2018-09-17 Version: 1.29.9
 1, describeRegions modify.
 

+ 11 - 10
services/live/add_caster_video_resource.go

@@ -76,16 +76,17 @@ func (client *Client) AddCasterVideoResourceWithCallback(request *AddCasterVideo
 // AddCasterVideoResourceRequest is the request struct for api AddCasterVideoResource
 type AddCasterVideoResourceRequest struct {
 	*requests.RpcRequest
-	BeginOffset   requests.Integer `position:"Query" name:"BeginOffset"`
-	VodUrl        string           `position:"Query" name:"VodUrl"`
-	LiveStreamUrl string           `position:"Query" name:"LiveStreamUrl"`
-	LocationId    string           `position:"Query" name:"LocationId"`
-	CasterId      string           `position:"Query" name:"CasterId"`
-	EndOffset     requests.Integer `position:"Query" name:"EndOffset"`
-	ResourceName  string           `position:"Query" name:"ResourceName"`
-	RepeatNum     requests.Integer `position:"Query" name:"RepeatNum"`
-	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
-	MaterialId    string           `position:"Query" name:"MaterialId"`
+	VodUrl              string           `position:"Query" name:"VodUrl"`
+	CasterId            string           `position:"Query" name:"CasterId"`
+	EndOffset           requests.Integer `position:"Query" name:"EndOffset"`
+	OwnerId             requests.Integer `position:"Query" name:"OwnerId"`
+	MaterialId          string           `position:"Query" name:"MaterialId"`
+	BeginOffset         requests.Integer `position:"Query" name:"BeginOffset"`
+	LiveStreamUrl       string           `position:"Query" name:"LiveStreamUrl"`
+	LocationId          string           `position:"Query" name:"LocationId"`
+	PtsCallbackInterval requests.Integer `position:"Query" name:"PtsCallbackInterval"`
+	ResourceName        string           `position:"Query" name:"ResourceName"`
+	RepeatNum           requests.Integer `position:"Query" name:"RepeatNum"`
 }
 
 // AddCasterVideoResourceResponse is the response struct for api AddCasterVideoResource

+ 1 - 0
services/live/add_live_domain.go

@@ -76,6 +76,7 @@ func (client *Client) AddLiveDomainWithCallback(request *AddLiveDomainRequest, c
 // AddLiveDomainRequest is the request struct for api AddLiveDomain
 type AddLiveDomainRequest struct {
 	*requests.RpcRequest
+	TopLevelDomain string           `position:"Query" name:"TopLevelDomain"`
 	SecurityToken  string           `position:"Query" name:"SecurityToken"`
 	OwnerAccount   string           `position:"Query" name:"OwnerAccount"`
 	Scope          string           `position:"Query" name:"Scope"`

+ 106 - 0
services/live/add_live_domain_mapping.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"
+)
+
+// AddLiveDomainMapping invokes the live.AddLiveDomainMapping API synchronously
+// api document: https://help.aliyun.com/api/live/addlivedomainmapping.html
+func (client *Client) AddLiveDomainMapping(request *AddLiveDomainMappingRequest) (response *AddLiveDomainMappingResponse, err error) {
+	response = CreateAddLiveDomainMappingResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AddLiveDomainMappingWithChan invokes the live.AddLiveDomainMapping API asynchronously
+// api document: https://help.aliyun.com/api/live/addlivedomainmapping.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddLiveDomainMappingWithChan(request *AddLiveDomainMappingRequest) (<-chan *AddLiveDomainMappingResponse, <-chan error) {
+	responseChan := make(chan *AddLiveDomainMappingResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AddLiveDomainMapping(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AddLiveDomainMappingWithCallback invokes the live.AddLiveDomainMapping API asynchronously
+// api document: https://help.aliyun.com/api/live/addlivedomainmapping.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AddLiveDomainMappingWithCallback(request *AddLiveDomainMappingRequest, callback func(response *AddLiveDomainMappingResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AddLiveDomainMappingResponse
+		var err error
+		defer close(result)
+		response, err = client.AddLiveDomainMapping(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AddLiveDomainMappingRequest is the request struct for api AddLiveDomainMapping
+type AddLiveDomainMappingRequest struct {
+	*requests.RpcRequest
+	PullDomain    string           `position:"Query" name:"PullDomain"`
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	PushDomain    string           `position:"Query" name:"PushDomain"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// AddLiveDomainMappingResponse is the response struct for api AddLiveDomainMapping
+type AddLiveDomainMappingResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAddLiveDomainMappingRequest creates a request to invoke AddLiveDomainMapping API
+func CreateAddLiveDomainMappingRequest() (request *AddLiveDomainMappingRequest) {
+	request = &AddLiveDomainMappingRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "AddLiveDomainMapping", "live", "openAPI")
+	return
+}
+
+// CreateAddLiveDomainMappingResponse creates a response to parse from AddLiveDomainMapping response
+func CreateAddLiveDomainMappingResponse() (response *AddLiveDomainMappingResponse) {
+	response = &AddLiveDomainMappingResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/live/allow_push_stream.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"
+)
+
+// AllowPushStream invokes the live.AllowPushStream API synchronously
+// api document: https://help.aliyun.com/api/live/allowpushstream.html
+func (client *Client) AllowPushStream(request *AllowPushStreamRequest) (response *AllowPushStreamResponse, err error) {
+	response = CreateAllowPushStreamResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// AllowPushStreamWithChan invokes the live.AllowPushStream API asynchronously
+// api document: https://help.aliyun.com/api/live/allowpushstream.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AllowPushStreamWithChan(request *AllowPushStreamRequest) (<-chan *AllowPushStreamResponse, <-chan error) {
+	responseChan := make(chan *AllowPushStreamResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.AllowPushStream(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// AllowPushStreamWithCallback invokes the live.AllowPushStream API asynchronously
+// api document: https://help.aliyun.com/api/live/allowpushstream.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) AllowPushStreamWithCallback(request *AllowPushStreamRequest, callback func(response *AllowPushStreamResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *AllowPushStreamResponse
+		var err error
+		defer close(result)
+		response, err = client.AllowPushStream(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// AllowPushStreamRequest is the request struct for api AllowPushStream
+type AllowPushStreamRequest struct {
+	*requests.RpcRequest
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	RoomId  string           `position:"Query" name:"RoomId"`
+	AppId   string           `position:"Query" name:"AppId"`
+}
+
+// AllowPushStreamResponse is the response struct for api AllowPushStream
+type AllowPushStreamResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateAllowPushStreamRequest creates a request to invoke AllowPushStream API
+func CreateAllowPushStreamRequest() (request *AllowPushStreamRequest) {
+	request = &AllowPushStreamRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "AllowPushStream", "live", "openAPI")
+	return
+}
+
+// CreateAllowPushStreamResponse creates a response to parse from AllowPushStream response
+func CreateAllowPushStreamResponse() (response *AllowPushStreamResponse) {
+	response = &AllowPushStreamResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/live/apply_board_token.go

@@ -0,0 +1,108 @@
+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"
+)
+
+// ApplyBoardToken invokes the live.ApplyBoardToken API synchronously
+// api document: https://help.aliyun.com/api/live/applyboardtoken.html
+func (client *Client) ApplyBoardToken(request *ApplyBoardTokenRequest) (response *ApplyBoardTokenResponse, err error) {
+	response = CreateApplyBoardTokenResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ApplyBoardTokenWithChan invokes the live.ApplyBoardToken API asynchronously
+// api document: https://help.aliyun.com/api/live/applyboardtoken.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApplyBoardTokenWithChan(request *ApplyBoardTokenRequest) (<-chan *ApplyBoardTokenResponse, <-chan error) {
+	responseChan := make(chan *ApplyBoardTokenResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ApplyBoardToken(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ApplyBoardTokenWithCallback invokes the live.ApplyBoardToken API asynchronously
+// api document: https://help.aliyun.com/api/live/applyboardtoken.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ApplyBoardTokenWithCallback(request *ApplyBoardTokenRequest, callback func(response *ApplyBoardTokenResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ApplyBoardTokenResponse
+		var err error
+		defer close(result)
+		response, err = client.ApplyBoardToken(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ApplyBoardTokenRequest is the request struct for api ApplyBoardToken
+type ApplyBoardTokenRequest struct {
+	*requests.RpcRequest
+	BoardId string           `position:"Query" name:"BoardId"`
+	AppUid  string           `position:"Query" name:"AppUid"`
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	AppId   string           `position:"Query" name:"AppId"`
+}
+
+// ApplyBoardTokenResponse is the response struct for api ApplyBoardToken
+type ApplyBoardTokenResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Token     string `json:"Token" xml:"Token"`
+	Expired   string `json:"Expired" xml:"Expired"`
+}
+
+// CreateApplyBoardTokenRequest creates a request to invoke ApplyBoardToken API
+func CreateApplyBoardTokenRequest() (request *ApplyBoardTokenRequest) {
+	request = &ApplyBoardTokenRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "ApplyBoardToken", "live", "openAPI")
+	return
+}
+
+// CreateApplyBoardTokenResponse creates a response to parse from ApplyBoardToken response
+func CreateApplyBoardTokenResponse() (response *ApplyBoardTokenResponse) {
+	response = &ApplyBoardTokenResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/live/complete_board.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"
+)
+
+// CompleteBoard invokes the live.CompleteBoard API synchronously
+// api document: https://help.aliyun.com/api/live/completeboard.html
+func (client *Client) CompleteBoard(request *CompleteBoardRequest) (response *CompleteBoardResponse, err error) {
+	response = CreateCompleteBoardResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CompleteBoardWithChan invokes the live.CompleteBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/completeboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CompleteBoardWithChan(request *CompleteBoardRequest) (<-chan *CompleteBoardResponse, <-chan error) {
+	responseChan := make(chan *CompleteBoardResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CompleteBoard(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CompleteBoardWithCallback invokes the live.CompleteBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/completeboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CompleteBoardWithCallback(request *CompleteBoardRequest, callback func(response *CompleteBoardResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CompleteBoardResponse
+		var err error
+		defer close(result)
+		response, err = client.CompleteBoard(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CompleteBoardRequest is the request struct for api CompleteBoard
+type CompleteBoardRequest struct {
+	*requests.RpcRequest
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	AppId   string           `position:"Query" name:"AppId"`
+	BoardId string           `position:"Query" name:"BoardId"`
+}
+
+// CompleteBoardResponse is the response struct for api CompleteBoard
+type CompleteBoardResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateCompleteBoardRequest creates a request to invoke CompleteBoard API
+func CreateCompleteBoardRequest() (request *CompleteBoardRequest) {
+	request = &CompleteBoardRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "CompleteBoard", "live", "openAPI")
+	return
+}
+
+// CreateCompleteBoardResponse creates a response to parse from CompleteBoard response
+func CreateCompleteBoardResponse() (response *CompleteBoardResponse) {
+	response = &CompleteBoardResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/create_board.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"
+)
+
+// CreateBoard invokes the live.CreateBoard API synchronously
+// api document: https://help.aliyun.com/api/live/createboard.html
+func (client *Client) CreateBoard(request *CreateBoardRequest) (response *CreateBoardResponse, err error) {
+	response = CreateCreateBoardResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateBoardWithChan invokes the live.CreateBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/createboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateBoardWithChan(request *CreateBoardRequest) (<-chan *CreateBoardResponse, <-chan error) {
+	responseChan := make(chan *CreateBoardResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateBoard(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateBoardWithCallback invokes the live.CreateBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/createboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateBoardWithCallback(request *CreateBoardRequest, callback func(response *CreateBoardResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateBoardResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateBoard(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateBoardRequest is the request struct for api CreateBoard
+type CreateBoardRequest struct {
+	*requests.RpcRequest
+	AppUid  string           `position:"Query" name:"AppUid"`
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	AppId   string           `position:"Query" name:"AppId"`
+}
+
+// CreateBoardResponse is the response struct for api CreateBoard
+type CreateBoardResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	BoardId   string `json:"BoardId" xml:"BoardId"`
+}
+
+// CreateCreateBoardRequest creates a request to invoke CreateBoard API
+func CreateCreateBoardRequest() (request *CreateBoardRequest) {
+	request = &CreateBoardRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "CreateBoard", "live", "openAPI")
+	return
+}
+
+// CreateCreateBoardResponse creates a response to parse from CreateBoard response
+func CreateCreateBoardResponse() (response *CreateBoardResponse) {
+	response = &CreateBoardResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/live/create_room.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"
+)
+
+// CreateRoom invokes the live.CreateRoom API synchronously
+// api document: https://help.aliyun.com/api/live/createroom.html
+func (client *Client) CreateRoom(request *CreateRoomRequest) (response *CreateRoomResponse, err error) {
+	response = CreateCreateRoomResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// CreateRoomWithChan invokes the live.CreateRoom API asynchronously
+// api document: https://help.aliyun.com/api/live/createroom.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRoomWithChan(request *CreateRoomRequest) (<-chan *CreateRoomResponse, <-chan error) {
+	responseChan := make(chan *CreateRoomResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.CreateRoom(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// CreateRoomWithCallback invokes the live.CreateRoom API asynchronously
+// api document: https://help.aliyun.com/api/live/createroom.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) CreateRoomWithCallback(request *CreateRoomRequest, callback func(response *CreateRoomResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *CreateRoomResponse
+		var err error
+		defer close(result)
+		response, err = client.CreateRoom(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// CreateRoomRequest is the request struct for api CreateRoom
+type CreateRoomRequest struct {
+	*requests.RpcRequest
+	AnchorId string           `position:"Query" name:"AnchorId"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+	RoomId   string           `position:"Query" name:"RoomId"`
+	AppId    string           `position:"Query" name:"AppId"`
+}
+
+// CreateRoomResponse is the response struct for api CreateRoom
+type CreateRoomResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	AppId     string `json:"AppId" xml:"AppId"`
+	RoomId    string `json:"RoomId" xml:"RoomId"`
+	AnchorId  string `json:"AnchorId" xml:"AnchorId"`
+}
+
+// CreateCreateRoomRequest creates a request to invoke CreateRoom API
+func CreateCreateRoomRequest() (request *CreateRoomRequest) {
+	request = &CreateRoomRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "CreateRoom", "live", "openAPI")
+	return
+}
+
+// CreateCreateRoomResponse creates a response to parse from CreateRoom response
+func CreateCreateRoomResponse() (response *CreateRoomResponse) {
+	response = &CreateRoomResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 105 - 0
services/live/delete_board.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"
+)
+
+// DeleteBoard invokes the live.DeleteBoard API synchronously
+// api document: https://help.aliyun.com/api/live/deleteboard.html
+func (client *Client) DeleteBoard(request *DeleteBoardRequest) (response *DeleteBoardResponse, err error) {
+	response = CreateDeleteBoardResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteBoardWithChan invokes the live.DeleteBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/deleteboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteBoardWithChan(request *DeleteBoardRequest) (<-chan *DeleteBoardResponse, <-chan error) {
+	responseChan := make(chan *DeleteBoardResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteBoard(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteBoardWithCallback invokes the live.DeleteBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/deleteboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteBoardWithCallback(request *DeleteBoardRequest, callback func(response *DeleteBoardResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteBoardResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteBoard(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteBoardRequest is the request struct for api DeleteBoard
+type DeleteBoardRequest struct {
+	*requests.RpcRequest
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	AppId   string           `position:"Query" name:"AppId"`
+	BoardId string           `position:"Query" name:"BoardId"`
+}
+
+// DeleteBoardResponse is the response struct for api DeleteBoard
+type DeleteBoardResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteBoardRequest creates a request to invoke DeleteBoard API
+func CreateDeleteBoardRequest() (request *DeleteBoardRequest) {
+	request = &DeleteBoardRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DeleteBoard", "live", "openAPI")
+	return
+}
+
+// CreateDeleteBoardResponse creates a response to parse from DeleteBoard response
+func CreateDeleteBoardResponse() (response *DeleteBoardResponse) {
+	response = &DeleteBoardResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/delete_live_domain_mapping.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"
+)
+
+// DeleteLiveDomainMapping invokes the live.DeleteLiveDomainMapping API synchronously
+// api document: https://help.aliyun.com/api/live/deletelivedomainmapping.html
+func (client *Client) DeleteLiveDomainMapping(request *DeleteLiveDomainMappingRequest) (response *DeleteLiveDomainMappingResponse, err error) {
+	response = CreateDeleteLiveDomainMappingResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteLiveDomainMappingWithChan invokes the live.DeleteLiveDomainMapping API asynchronously
+// api document: https://help.aliyun.com/api/live/deletelivedomainmapping.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteLiveDomainMappingWithChan(request *DeleteLiveDomainMappingRequest) (<-chan *DeleteLiveDomainMappingResponse, <-chan error) {
+	responseChan := make(chan *DeleteLiveDomainMappingResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteLiveDomainMapping(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteLiveDomainMappingWithCallback invokes the live.DeleteLiveDomainMapping API asynchronously
+// api document: https://help.aliyun.com/api/live/deletelivedomainmapping.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteLiveDomainMappingWithCallback(request *DeleteLiveDomainMappingRequest, callback func(response *DeleteLiveDomainMappingResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteLiveDomainMappingResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteLiveDomainMapping(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteLiveDomainMappingRequest is the request struct for api DeleteLiveDomainMapping
+type DeleteLiveDomainMappingRequest struct {
+	*requests.RpcRequest
+	PullDomain    string           `position:"Query" name:"PullDomain"`
+	SecurityToken string           `position:"Query" name:"SecurityToken"`
+	PushDomain    string           `position:"Query" name:"PushDomain"`
+	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DeleteLiveDomainMappingResponse is the response struct for api DeleteLiveDomainMapping
+type DeleteLiveDomainMappingResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteLiveDomainMappingRequest creates a request to invoke DeleteLiveDomainMapping API
+func CreateDeleteLiveDomainMappingRequest() (request *DeleteLiveDomainMappingRequest) {
+	request = &DeleteLiveDomainMappingRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DeleteLiveDomainMapping", "live", "openAPI")
+	return
+}
+
+// CreateDeleteLiveDomainMappingResponse creates a response to parse from DeleteLiveDomainMapping response
+func CreateDeleteLiveDomainMappingResponse() (response *DeleteLiveDomainMappingResponse) {
+	response = &DeleteLiveDomainMappingResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

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

+ 2 - 3
services/live/delete_live_streams_notify_url_config.go

@@ -76,9 +76,8 @@ func (client *Client) DeleteLiveStreamsNotifyUrlConfigWithCallback(request *Dele
 // DeleteLiveStreamsNotifyUrlConfigRequest is the request struct for api DeleteLiveStreamsNotifyUrlConfig
 type DeleteLiveStreamsNotifyUrlConfigRequest struct {
 	*requests.RpcRequest
-	SecurityToken string           `position:"Query" name:"SecurityToken"`
-	DomainName    string           `position:"Query" name:"DomainName"`
-	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+	DomainName string           `position:"Query" name:"DomainName"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
 }
 
 // DeleteLiveStreamsNotifyUrlConfigResponse is the response struct for api DeleteLiveStreamsNotifyUrlConfig

+ 105 - 0
services/live/delete_room.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"
+)
+
+// DeleteRoom invokes the live.DeleteRoom API synchronously
+// api document: https://help.aliyun.com/api/live/deleteroom.html
+func (client *Client) DeleteRoom(request *DeleteRoomRequest) (response *DeleteRoomResponse, err error) {
+	response = CreateDeleteRoomResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DeleteRoomWithChan invokes the live.DeleteRoom API asynchronously
+// api document: https://help.aliyun.com/api/live/deleteroom.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRoomWithChan(request *DeleteRoomRequest) (<-chan *DeleteRoomResponse, <-chan error) {
+	responseChan := make(chan *DeleteRoomResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DeleteRoom(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DeleteRoomWithCallback invokes the live.DeleteRoom API asynchronously
+// api document: https://help.aliyun.com/api/live/deleteroom.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DeleteRoomWithCallback(request *DeleteRoomRequest, callback func(response *DeleteRoomResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DeleteRoomResponse
+		var err error
+		defer close(result)
+		response, err = client.DeleteRoom(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DeleteRoomRequest is the request struct for api DeleteRoom
+type DeleteRoomRequest struct {
+	*requests.RpcRequest
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	RoomId  string           `position:"Query" name:"RoomId"`
+	AppId   string           `position:"Query" name:"AppId"`
+}
+
+// DeleteRoomResponse is the response struct for api DeleteRoom
+type DeleteRoomResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateDeleteRoomRequest creates a request to invoke DeleteRoom API
+func CreateDeleteRoomRequest() (request *DeleteRoomRequest) {
+	request = &DeleteRoomRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DeleteRoom", "live", "openAPI")
+	return
+}
+
+// CreateDeleteRoomResponse creates a response to parse from DeleteRoom response
+func CreateDeleteRoomResponse() (response *DeleteRoomResponse) {
+	response = &DeleteRoomResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/live/describe_board_events.go

@@ -0,0 +1,108 @@
+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"
+)
+
+// DescribeBoardEvents invokes the live.DescribeBoardEvents API synchronously
+// api document: https://help.aliyun.com/api/live/describeboardevents.html
+func (client *Client) DescribeBoardEvents(request *DescribeBoardEventsRequest) (response *DescribeBoardEventsResponse, err error) {
+	response = CreateDescribeBoardEventsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBoardEventsWithChan invokes the live.DescribeBoardEvents API asynchronously
+// api document: https://help.aliyun.com/api/live/describeboardevents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBoardEventsWithChan(request *DescribeBoardEventsRequest) (<-chan *DescribeBoardEventsResponse, <-chan error) {
+	responseChan := make(chan *DescribeBoardEventsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBoardEvents(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBoardEventsWithCallback invokes the live.DescribeBoardEvents API asynchronously
+// api document: https://help.aliyun.com/api/live/describeboardevents.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBoardEventsWithCallback(request *DescribeBoardEventsRequest, callback func(response *DescribeBoardEventsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBoardEventsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBoardEvents(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBoardEventsRequest is the request struct for api DescribeBoardEvents
+type DescribeBoardEventsRequest struct {
+	*requests.RpcRequest
+	StartTime string           `position:"Query" name:"StartTime"`
+	BoardId   string           `position:"Query" name:"BoardId"`
+	EndTime   string           `position:"Query" name:"EndTime"`
+	OwnerId   requests.Integer `position:"Query" name:"OwnerId"`
+	AppId     string           `position:"Query" name:"AppId"`
+}
+
+// DescribeBoardEventsResponse is the response struct for api DescribeBoardEvents
+type DescribeBoardEventsResponse struct {
+	*responses.BaseResponse
+	RequestId string                       `json:"RequestId" xml:"RequestId"`
+	Events    []EventInDescribeBoardEvents `json:"Events" xml:"Events"`
+}
+
+// CreateDescribeBoardEventsRequest creates a request to invoke DescribeBoardEvents API
+func CreateDescribeBoardEventsRequest() (request *DescribeBoardEventsRequest) {
+	request = &DescribeBoardEventsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeBoardEvents", "live", "openAPI")
+	return
+}
+
+// CreateDescribeBoardEventsResponse creates a response to parse from DescribeBoardEvents response
+func CreateDescribeBoardEventsResponse() (response *DescribeBoardEventsResponse) {
+	response = &DescribeBoardEventsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/describe_board_snapshot.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"
+)
+
+// DescribeBoardSnapshot invokes the live.DescribeBoardSnapshot API synchronously
+// api document: https://help.aliyun.com/api/live/describeboardsnapshot.html
+func (client *Client) DescribeBoardSnapshot(request *DescribeBoardSnapshotRequest) (response *DescribeBoardSnapshotResponse, err error) {
+	response = CreateDescribeBoardSnapshotResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBoardSnapshotWithChan invokes the live.DescribeBoardSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/live/describeboardsnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBoardSnapshotWithChan(request *DescribeBoardSnapshotRequest) (<-chan *DescribeBoardSnapshotResponse, <-chan error) {
+	responseChan := make(chan *DescribeBoardSnapshotResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBoardSnapshot(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBoardSnapshotWithCallback invokes the live.DescribeBoardSnapshot API asynchronously
+// api document: https://help.aliyun.com/api/live/describeboardsnapshot.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBoardSnapshotWithCallback(request *DescribeBoardSnapshotRequest, callback func(response *DescribeBoardSnapshotResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBoardSnapshotResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBoardSnapshot(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBoardSnapshotRequest is the request struct for api DescribeBoardSnapshot
+type DescribeBoardSnapshotRequest struct {
+	*requests.RpcRequest
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	AppId   string           `position:"Query" name:"AppId"`
+	BoardId string           `position:"Query" name:"BoardId"`
+}
+
+// DescribeBoardSnapshotResponse is the response struct for api DescribeBoardSnapshot
+type DescribeBoardSnapshotResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Snapshot  Snapshot `json:"Snapshot" xml:"Snapshot"`
+}
+
+// CreateDescribeBoardSnapshotRequest creates a request to invoke DescribeBoardSnapshot API
+func CreateDescribeBoardSnapshotRequest() (request *DescribeBoardSnapshotRequest) {
+	request = &DescribeBoardSnapshotRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeBoardSnapshot", "live", "openAPI")
+	return
+}
+
+// CreateDescribeBoardSnapshotResponse creates a response to parse from DescribeBoardSnapshot response
+func CreateDescribeBoardSnapshotResponse() (response *DescribeBoardSnapshotResponse) {
+	response = &DescribeBoardSnapshotResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 107 - 0
services/live/describe_boards.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"
+)
+
+// DescribeBoards invokes the live.DescribeBoards API synchronously
+// api document: https://help.aliyun.com/api/live/describeboards.html
+func (client *Client) DescribeBoards(request *DescribeBoardsRequest) (response *DescribeBoardsResponse, err error) {
+	response = CreateDescribeBoardsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeBoardsWithChan invokes the live.DescribeBoards API asynchronously
+// api document: https://help.aliyun.com/api/live/describeboards.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBoardsWithChan(request *DescribeBoardsRequest) (<-chan *DescribeBoardsResponse, <-chan error) {
+	responseChan := make(chan *DescribeBoardsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeBoards(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeBoardsWithCallback invokes the live.DescribeBoards API asynchronously
+// api document: https://help.aliyun.com/api/live/describeboards.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeBoardsWithCallback(request *DescribeBoardsRequest, callback func(response *DescribeBoardsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeBoardsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeBoards(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeBoardsRequest is the request struct for api DescribeBoards
+type DescribeBoardsRequest struct {
+	*requests.RpcRequest
+	PageNum  requests.Integer `position:"Query" name:"PageNum"`
+	PageSize requests.Integer `position:"Query" name:"PageSize"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+	AppId    string           `position:"Query" name:"AppId"`
+}
+
+// DescribeBoardsResponse is the response struct for api DescribeBoards
+type DescribeBoardsResponse struct {
+	*responses.BaseResponse
+	RequestId string  `json:"RequestId" xml:"RequestId"`
+	Boards    []Event `json:"Boards" xml:"Boards"`
+}
+
+// CreateDescribeBoardsRequest creates a request to invoke DescribeBoards API
+func CreateDescribeBoardsRequest() (request *DescribeBoardsRequest) {
+	request = &DescribeBoardsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeBoards", "live", "openAPI")
+	return
+}
+
+// CreateDescribeBoardsResponse creates a response to parse from DescribeBoards response
+func CreateDescribeBoardsResponse() (response *DescribeBoardsResponse) {
+	response = &DescribeBoardsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/describe_caster_channels.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"
+)
+
+// DescribeCasterChannels invokes the live.DescribeCasterChannels API synchronously
+// api document: https://help.aliyun.com/api/live/describecasterchannels.html
+func (client *Client) DescribeCasterChannels(request *DescribeCasterChannelsRequest) (response *DescribeCasterChannelsResponse, err error) {
+	response = CreateDescribeCasterChannelsResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCasterChannelsWithChan invokes the live.DescribeCasterChannels API asynchronously
+// api document: https://help.aliyun.com/api/live/describecasterchannels.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCasterChannelsWithChan(request *DescribeCasterChannelsRequest) (<-chan *DescribeCasterChannelsResponse, <-chan error) {
+	responseChan := make(chan *DescribeCasterChannelsResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCasterChannels(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCasterChannelsWithCallback invokes the live.DescribeCasterChannels API asynchronously
+// api document: https://help.aliyun.com/api/live/describecasterchannels.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCasterChannelsWithCallback(request *DescribeCasterChannelsRequest, callback func(response *DescribeCasterChannelsResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCasterChannelsResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCasterChannels(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCasterChannelsRequest is the request struct for api DescribeCasterChannels
+type DescribeCasterChannelsRequest struct {
+	*requests.RpcRequest
+	CasterId string           `position:"Query" name:"CasterId"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeCasterChannelsResponse is the response struct for api DescribeCasterChannels
+type DescribeCasterChannelsResponse struct {
+	*responses.BaseResponse
+	RequestId string   `json:"RequestId" xml:"RequestId"`
+	Total     int      `json:"Total" xml:"Total"`
+	Channels  Channels `json:"Channels" xml:"Channels"`
+}
+
+// CreateDescribeCasterChannelsRequest creates a request to invoke DescribeCasterChannels API
+func CreateDescribeCasterChannelsRequest() (request *DescribeCasterChannelsRequest) {
+	request = &DescribeCasterChannelsRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeCasterChannels", "live", "openAPI")
+	return
+}
+
+// CreateDescribeCasterChannelsResponse creates a response to parse from DescribeCasterChannels response
+func CreateDescribeCasterChannelsResponse() (response *DescribeCasterChannelsResponse) {
+	response = &DescribeCasterChannelsResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/live/describe_caster_config.go

@@ -93,6 +93,7 @@ type DescribeCasterConfigResponse struct {
 	CallbackUrl      string          `json:"CallbackUrl" xml:"CallbackUrl"`
 	ProgramName      string          `json:"ProgramName" xml:"ProgramName"`
 	ProgramEffect    int             `json:"ProgramEffect" xml:"ProgramEffect"`
+	ChannelEnable    int             `json:"ChannelEnable" xml:"ChannelEnable"`
 	TranscodeConfig  TranscodeConfig `json:"TranscodeConfig" xml:"TranscodeConfig"`
 	RecordConfig     RecordConfig    `json:"RecordConfig" xml:"RecordConfig"`
 }

+ 109 - 0
services/live/describe_caster_scene_audio.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"
+)
+
+// DescribeCasterSceneAudio invokes the live.DescribeCasterSceneAudio API synchronously
+// api document: https://help.aliyun.com/api/live/describecastersceneaudio.html
+func (client *Client) DescribeCasterSceneAudio(request *DescribeCasterSceneAudioRequest) (response *DescribeCasterSceneAudioResponse, err error) {
+	response = CreateDescribeCasterSceneAudioResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeCasterSceneAudioWithChan invokes the live.DescribeCasterSceneAudio API asynchronously
+// api document: https://help.aliyun.com/api/live/describecastersceneaudio.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCasterSceneAudioWithChan(request *DescribeCasterSceneAudioRequest) (<-chan *DescribeCasterSceneAudioResponse, <-chan error) {
+	responseChan := make(chan *DescribeCasterSceneAudioResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeCasterSceneAudio(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeCasterSceneAudioWithCallback invokes the live.DescribeCasterSceneAudio API asynchronously
+// api document: https://help.aliyun.com/api/live/describecastersceneaudio.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeCasterSceneAudioWithCallback(request *DescribeCasterSceneAudioRequest, callback func(response *DescribeCasterSceneAudioResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeCasterSceneAudioResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeCasterSceneAudio(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeCasterSceneAudioRequest is the request struct for api DescribeCasterSceneAudio
+type DescribeCasterSceneAudioRequest struct {
+	*requests.RpcRequest
+	CasterId string           `position:"Query" name:"CasterId"`
+	SceneId  string           `position:"Query" name:"SceneId"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeCasterSceneAudioResponse is the response struct for api DescribeCasterSceneAudio
+type DescribeCasterSceneAudioResponse struct {
+	*responses.BaseResponse
+	RequestId    string                                `json:"RequestId" xml:"RequestId"`
+	CasterId     string                                `json:"CasterId" xml:"CasterId"`
+	FollowEnable int                                   `json:"FollowEnable" xml:"FollowEnable"`
+	MixList      MixListInDescribeCasterSceneAudio     `json:"MixList" xml:"MixList"`
+	AudioLayers  AudioLayersInDescribeCasterSceneAudio `json:"AudioLayers" xml:"AudioLayers"`
+}
+
+// CreateDescribeCasterSceneAudioRequest creates a request to invoke DescribeCasterSceneAudio API
+func CreateDescribeCasterSceneAudioRequest() (request *DescribeCasterSceneAudioRequest) {
+	request = &DescribeCasterSceneAudioRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeCasterSceneAudio", "live", "openAPI")
+	return
+}
+
+// CreateDescribeCasterSceneAudioResponse creates a response to parse from DescribeCasterSceneAudio response
+func CreateDescribeCasterSceneAudioResponse() (response *DescribeCasterSceneAudioResponse) {
+	response = &DescribeCasterSceneAudioResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 114 - 0
services/live/describe_domain_usage_data.go

@@ -0,0 +1,114 @@
+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"
+)
+
+// DescribeDomainUsageData invokes the live.DescribeDomainUsageData API synchronously
+// api document: https://help.aliyun.com/api/live/describedomainusagedata.html
+func (client *Client) DescribeDomainUsageData(request *DescribeDomainUsageDataRequest) (response *DescribeDomainUsageDataResponse, err error) {
+	response = CreateDescribeDomainUsageDataResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeDomainUsageDataWithChan invokes the live.DescribeDomainUsageData API asynchronously
+// api document: https://help.aliyun.com/api/live/describedomainusagedata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainUsageDataWithChan(request *DescribeDomainUsageDataRequest) (<-chan *DescribeDomainUsageDataResponse, <-chan error) {
+	responseChan := make(chan *DescribeDomainUsageDataResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeDomainUsageData(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeDomainUsageDataWithCallback invokes the live.DescribeDomainUsageData API asynchronously
+// api document: https://help.aliyun.com/api/live/describedomainusagedata.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeDomainUsageDataWithCallback(request *DescribeDomainUsageDataRequest, callback func(response *DescribeDomainUsageDataResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeDomainUsageDataResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeDomainUsageData(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeDomainUsageDataRequest is the request struct for api DescribeDomainUsageData
+type DescribeDomainUsageDataRequest struct {
+	*requests.RpcRequest
+	StartTime  string           `position:"Query" name:"StartTime"`
+	Area       string           `position:"Query" name:"Area"`
+	DomainName string           `position:"Query" name:"DomainName"`
+	EndTime    string           `position:"Query" name:"EndTime"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+}
+
+// DescribeDomainUsageDataResponse is the response struct for api DescribeDomainUsageData
+type DescribeDomainUsageDataResponse struct {
+	*responses.BaseResponse
+	RequestId            string               `json:"RequestId" xml:"RequestId"`
+	DomainName           string               `json:"DomainName" xml:"DomainName"`
+	StartTime            string               `json:"StartTime" xml:"StartTime"`
+	EndTime              string               `json:"EndTime" xml:"EndTime"`
+	Field                string               `json:"Field" xml:"Field"`
+	Area                 string               `json:"Area" xml:"Area"`
+	DataInterval         string               `json:"DataInterval" xml:"DataInterval"`
+	UsageDataPerInterval UsageDataPerInterval `json:"UsageDataPerInterval" xml:"UsageDataPerInterval"`
+}
+
+// CreateDescribeDomainUsageDataRequest creates a request to invoke DescribeDomainUsageData API
+func CreateDescribeDomainUsageDataRequest() (request *DescribeDomainUsageDataRequest) {
+	request = &DescribeDomainUsageDataRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeDomainUsageData", "live", "openAPI")
+	return
+}
+
+// CreateDescribeDomainUsageDataResponse creates a response to parse from DescribeDomainUsageData response
+func CreateDescribeDomainUsageDataResponse() (response *DescribeDomainUsageDataResponse) {
+	response = &DescribeDomainUsageDataResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/live/describe_forbid_push_stream_room_list.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"
+)
+
+// DescribeForbidPushStreamRoomList invokes the live.DescribeForbidPushStreamRoomList API synchronously
+// api document: https://help.aliyun.com/api/live/describeforbidpushstreamroomlist.html
+func (client *Client) DescribeForbidPushStreamRoomList(request *DescribeForbidPushStreamRoomListRequest) (response *DescribeForbidPushStreamRoomListResponse, err error) {
+	response = CreateDescribeForbidPushStreamRoomListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeForbidPushStreamRoomListWithChan invokes the live.DescribeForbidPushStreamRoomList API asynchronously
+// api document: https://help.aliyun.com/api/live/describeforbidpushstreamroomlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeForbidPushStreamRoomListWithChan(request *DescribeForbidPushStreamRoomListRequest) (<-chan *DescribeForbidPushStreamRoomListResponse, <-chan error) {
+	responseChan := make(chan *DescribeForbidPushStreamRoomListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeForbidPushStreamRoomList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeForbidPushStreamRoomListWithCallback invokes the live.DescribeForbidPushStreamRoomList API asynchronously
+// api document: https://help.aliyun.com/api/live/describeforbidpushstreamroomlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeForbidPushStreamRoomListWithCallback(request *DescribeForbidPushStreamRoomListRequest, callback func(response *DescribeForbidPushStreamRoomListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeForbidPushStreamRoomListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeForbidPushStreamRoomList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeForbidPushStreamRoomListRequest is the request struct for api DescribeForbidPushStreamRoomList
+type DescribeForbidPushStreamRoomListRequest struct {
+	*requests.RpcRequest
+	PageNum  requests.Integer `position:"Query" name:"PageNum"`
+	PageSize requests.Integer `position:"Query" name:"PageSize"`
+	Order    string           `position:"Query" name:"Order"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+	AppId    string           `position:"Query" name:"AppId"`
+}
+
+// DescribeForbidPushStreamRoomListResponse is the response struct for api DescribeForbidPushStreamRoomList
+type DescribeForbidPushStreamRoomListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	TotalNum  int    `json:"TotalNum" xml:"TotalNum"`
+	TotalPage int    `json:"TotalPage" xml:"TotalPage"`
+	RoomList  []Room `json:"RoomList" xml:"RoomList"`
+}
+
+// CreateDescribeForbidPushStreamRoomListRequest creates a request to invoke DescribeForbidPushStreamRoomList API
+func CreateDescribeForbidPushStreamRoomListRequest() (request *DescribeForbidPushStreamRoomListRequest) {
+	request = &DescribeForbidPushStreamRoomListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeForbidPushStreamRoomList", "live", "openAPI")
+	return
+}
+
+// CreateDescribeForbidPushStreamRoomListResponse creates a response to parse from DescribeForbidPushStreamRoomList response
+func CreateDescribeForbidPushStreamRoomListResponse() (response *DescribeForbidPushStreamRoomListResponse) {
+	response = &DescribeForbidPushStreamRoomListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/describe_live_lazy_pull_stream_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"
+)
+
+// DescribeLiveLazyPullStreamConfig invokes the live.DescribeLiveLazyPullStreamConfig API synchronously
+// api document: https://help.aliyun.com/api/live/describelivelazypullstreamconfig.html
+func (client *Client) DescribeLiveLazyPullStreamConfig(request *DescribeLiveLazyPullStreamConfigRequest) (response *DescribeLiveLazyPullStreamConfigResponse, err error) {
+	response = CreateDescribeLiveLazyPullStreamConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeLiveLazyPullStreamConfigWithChan invokes the live.DescribeLiveLazyPullStreamConfig API asynchronously
+// api document: https://help.aliyun.com/api/live/describelivelazypullstreamconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveLazyPullStreamConfigWithChan(request *DescribeLiveLazyPullStreamConfigRequest) (<-chan *DescribeLiveLazyPullStreamConfigResponse, <-chan error) {
+	responseChan := make(chan *DescribeLiveLazyPullStreamConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeLiveLazyPullStreamConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeLiveLazyPullStreamConfigWithCallback invokes the live.DescribeLiveLazyPullStreamConfig API asynchronously
+// api document: https://help.aliyun.com/api/live/describelivelazypullstreamconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeLiveLazyPullStreamConfigWithCallback(request *DescribeLiveLazyPullStreamConfigRequest, callback func(response *DescribeLiveLazyPullStreamConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeLiveLazyPullStreamConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeLiveLazyPullStreamConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeLiveLazyPullStreamConfigRequest is the request struct for api DescribeLiveLazyPullStreamConfig
+type DescribeLiveLazyPullStreamConfigRequest struct {
+	*requests.RpcRequest
+	DomainName string           `position:"Query" name:"DomainName"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+	AppName    string           `position:"Query" name:"AppName"`
+}
+
+// DescribeLiveLazyPullStreamConfigResponse is the response struct for api DescribeLiveLazyPullStreamConfig
+type DescribeLiveLazyPullStreamConfigResponse struct {
+	*responses.BaseResponse
+	RequestId              string                 `json:"RequestId" xml:"RequestId"`
+	LiveLazyPullConfigList LiveLazyPullConfigList `json:"LiveLazyPullConfigList" xml:"LiveLazyPullConfigList"`
+}
+
+// CreateDescribeLiveLazyPullStreamConfigRequest creates a request to invoke DescribeLiveLazyPullStreamConfig API
+func CreateDescribeLiveLazyPullStreamConfigRequest() (request *DescribeLiveLazyPullStreamConfigRequest) {
+	request = &DescribeLiveLazyPullStreamConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeLiveLazyPullStreamConfig", "live", "openAPI")
+	return
+}
+
+// CreateDescribeLiveLazyPullStreamConfigResponse creates a response to parse from DescribeLiveLazyPullStreamConfig response
+func CreateDescribeLiveLazyPullStreamConfigResponse() (response *DescribeLiveLazyPullStreamConfigResponse) {
+	response = &DescribeLiveLazyPullStreamConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 2 - 3
services/live/describe_live_streams_notify_url_config.go

@@ -76,9 +76,8 @@ func (client *Client) DescribeLiveStreamsNotifyUrlConfigWithCallback(request *De
 // DescribeLiveStreamsNotifyUrlConfigRequest is the request struct for api DescribeLiveStreamsNotifyUrlConfig
 type DescribeLiveStreamsNotifyUrlConfigRequest struct {
 	*requests.RpcRequest
-	SecurityToken string           `position:"Query" name:"SecurityToken"`
-	DomainName    string           `position:"Query" name:"DomainName"`
-	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
+	DomainName string           `position:"Query" name:"DomainName"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
 }
 
 // DescribeLiveStreamsNotifyUrlConfigResponse is the response struct for api DescribeLiveStreamsNotifyUrlConfig

+ 11 - 10
services/live/describe_live_streams_online_list.go

@@ -76,16 +76,17 @@ func (client *Client) DescribeLiveStreamsOnlineListWithCallback(request *Describ
 // DescribeLiveStreamsOnlineListRequest is the request struct for api DescribeLiveStreamsOnlineList
 type DescribeLiveStreamsOnlineListRequest struct {
 	*requests.RpcRequest
-	StreamType    string           `position:"Query" name:"StreamType"`
-	AppName       string           `position:"Query" name:"AppName"`
-	SecurityToken string           `position:"Query" name:"SecurityToken"`
-	DomainName    string           `position:"Query" name:"DomainName"`
-	PageSize      requests.Integer `position:"Query" name:"PageSize"`
-	EndTime       string           `position:"Query" name:"EndTime"`
-	StartTime     string           `position:"Query" name:"StartTime"`
-	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
-	PageNum       requests.Integer `position:"Query" name:"PageNum"`
-	QueryType     string           `position:"Query" name:"QueryType"`
+	StreamType string           `position:"Query" name:"StreamType"`
+	DomainName string           `position:"Query" name:"DomainName"`
+	EndTime    string           `position:"Query" name:"EndTime"`
+	OrderBy    string           `position:"Query" name:"OrderBy"`
+	StartTime  string           `position:"Query" name:"StartTime"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+	PageNum    requests.Integer `position:"Query" name:"PageNum"`
+	AppName    string           `position:"Query" name:"AppName"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	StreamName string           `position:"Query" name:"StreamName"`
+	QueryType  string           `position:"Query" name:"QueryType"`
 }
 
 // DescribeLiveStreamsOnlineListResponse is the response struct for api DescribeLiveStreamsOnlineList

+ 11 - 11
services/live/describe_live_streams_publish_list.go

@@ -76,17 +76,17 @@ func (client *Client) DescribeLiveStreamsPublishListWithCallback(request *Descri
 // DescribeLiveStreamsPublishListRequest is the request struct for api DescribeLiveStreamsPublishList
 type DescribeLiveStreamsPublishListRequest struct {
 	*requests.RpcRequest
-	StreamType    string           `position:"Query" name:"StreamType"`
-	DomainName    string           `position:"Query" name:"DomainName"`
-	EndTime       string           `position:"Query" name:"EndTime"`
-	StartTime     string           `position:"Query" name:"StartTime"`
-	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
-	PageNumber    requests.Integer `position:"Query" name:"PageNumber"`
-	AppName       string           `position:"Query" name:"AppName"`
-	SecurityToken string           `position:"Query" name:"SecurityToken"`
-	PageSize      requests.Integer `position:"Query" name:"PageSize"`
-	StreamName    string           `position:"Query" name:"StreamName"`
-	QueryType     string           `position:"Query" name:"QueryType"`
+	StreamType string           `position:"Query" name:"StreamType"`
+	DomainName string           `position:"Query" name:"DomainName"`
+	EndTime    string           `position:"Query" name:"EndTime"`
+	OrderBy    string           `position:"Query" name:"OrderBy"`
+	StartTime  string           `position:"Query" name:"StartTime"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+	PageNumber requests.Integer `position:"Query" name:"PageNumber"`
+	AppName    string           `position:"Query" name:"AppName"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	StreamName string           `position:"Query" name:"StreamName"`
+	QueryType  string           `position:"Query" name:"QueryType"`
 }
 
 // DescribeLiveStreamsPublishListResponse is the response struct for api DescribeLiveStreamsPublishList

+ 111 - 0
services/live/describe_room_kickout_user_list.go

@@ -0,0 +1,111 @@
+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"
+)
+
+// DescribeRoomKickoutUserList invokes the live.DescribeRoomKickoutUserList API synchronously
+// api document: https://help.aliyun.com/api/live/describeroomkickoutuserlist.html
+func (client *Client) DescribeRoomKickoutUserList(request *DescribeRoomKickoutUserListRequest) (response *DescribeRoomKickoutUserListResponse, err error) {
+	response = CreateDescribeRoomKickoutUserListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRoomKickoutUserListWithChan invokes the live.DescribeRoomKickoutUserList API asynchronously
+// api document: https://help.aliyun.com/api/live/describeroomkickoutuserlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRoomKickoutUserListWithChan(request *DescribeRoomKickoutUserListRequest) (<-chan *DescribeRoomKickoutUserListResponse, <-chan error) {
+	responseChan := make(chan *DescribeRoomKickoutUserListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRoomKickoutUserList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRoomKickoutUserListWithCallback invokes the live.DescribeRoomKickoutUserList API asynchronously
+// api document: https://help.aliyun.com/api/live/describeroomkickoutuserlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRoomKickoutUserListWithCallback(request *DescribeRoomKickoutUserListRequest, callback func(response *DescribeRoomKickoutUserListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRoomKickoutUserListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRoomKickoutUserList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRoomKickoutUserListRequest is the request struct for api DescribeRoomKickoutUserList
+type DescribeRoomKickoutUserListRequest struct {
+	*requests.RpcRequest
+	PageNum  requests.Integer `position:"Query" name:"PageNum"`
+	PageSize requests.Integer `position:"Query" name:"PageSize"`
+	Order    string           `position:"Query" name:"Order"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+	RoomId   string           `position:"Query" name:"RoomId"`
+	AppId    string           `position:"Query" name:"AppId"`
+}
+
+// DescribeRoomKickoutUserListResponse is the response struct for api DescribeRoomKickoutUserList
+type DescribeRoomKickoutUserListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	TotalNum  int    `json:"TotalNum" xml:"TotalNum"`
+	TotalPage int    `json:"TotalPage" xml:"TotalPage"`
+	UserList  []User `json:"UserList" xml:"UserList"`
+}
+
+// CreateDescribeRoomKickoutUserListRequest creates a request to invoke DescribeRoomKickoutUserList API
+func CreateDescribeRoomKickoutUserListRequest() (request *DescribeRoomKickoutUserListRequest) {
+	request = &DescribeRoomKickoutUserListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeRoomKickoutUserList", "live", "openAPI")
+	return
+}
+
+// CreateDescribeRoomKickoutUserListResponse creates a response to parse from DescribeRoomKickoutUserList response
+func CreateDescribeRoomKickoutUserListResponse() (response *DescribeRoomKickoutUserListResponse) {
+	response = &DescribeRoomKickoutUserListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 111 - 0
services/live/describe_room_list.go

@@ -0,0 +1,111 @@
+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"
+)
+
+// DescribeRoomList invokes the live.DescribeRoomList API synchronously
+// api document: https://help.aliyun.com/api/live/describeroomlist.html
+func (client *Client) DescribeRoomList(request *DescribeRoomListRequest) (response *DescribeRoomListResponse, err error) {
+	response = CreateDescribeRoomListResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRoomListWithChan invokes the live.DescribeRoomList API asynchronously
+// api document: https://help.aliyun.com/api/live/describeroomlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRoomListWithChan(request *DescribeRoomListRequest) (<-chan *DescribeRoomListResponse, <-chan error) {
+	responseChan := make(chan *DescribeRoomListResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRoomList(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRoomListWithCallback invokes the live.DescribeRoomList API asynchronously
+// api document: https://help.aliyun.com/api/live/describeroomlist.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRoomListWithCallback(request *DescribeRoomListRequest, callback func(response *DescribeRoomListResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRoomListResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRoomList(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRoomListRequest is the request struct for api DescribeRoomList
+type DescribeRoomListRequest struct {
+	*requests.RpcRequest
+	PageNum    requests.Integer `position:"Query" name:"PageNum"`
+	RoomStatus requests.Integer `position:"Query" name:"RoomStatus"`
+	PageSize   requests.Integer `position:"Query" name:"PageSize"`
+	Order      string           `position:"Query" name:"Order"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+	AppId      string           `position:"Query" name:"AppId"`
+}
+
+// DescribeRoomListResponse is the response struct for api DescribeRoomList
+type DescribeRoomListResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	TotalNum  int    `json:"TotalNum" xml:"TotalNum"`
+	TotalPage int    `json:"TotalPage" xml:"TotalPage"`
+	RoomList  []Room `json:"RoomList" xml:"RoomList"`
+}
+
+// CreateDescribeRoomListRequest creates a request to invoke DescribeRoomList API
+func CreateDescribeRoomListRequest() (request *DescribeRoomListRequest) {
+	request = &DescribeRoomListRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeRoomList", "live", "openAPI")
+	return
+}
+
+// CreateDescribeRoomListResponse creates a response to parse from DescribeRoomList response
+func CreateDescribeRoomListResponse() (response *DescribeRoomListResponse) {
+	response = &DescribeRoomListResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 106 - 0
services/live/describe_room_status.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"
+)
+
+// DescribeRoomStatus invokes the live.DescribeRoomStatus API synchronously
+// api document: https://help.aliyun.com/api/live/describeroomstatus.html
+func (client *Client) DescribeRoomStatus(request *DescribeRoomStatusRequest) (response *DescribeRoomStatusResponse, err error) {
+	response = CreateDescribeRoomStatusResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// DescribeRoomStatusWithChan invokes the live.DescribeRoomStatus API asynchronously
+// api document: https://help.aliyun.com/api/live/describeroomstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRoomStatusWithChan(request *DescribeRoomStatusRequest) (<-chan *DescribeRoomStatusResponse, <-chan error) {
+	responseChan := make(chan *DescribeRoomStatusResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.DescribeRoomStatus(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// DescribeRoomStatusWithCallback invokes the live.DescribeRoomStatus API asynchronously
+// api document: https://help.aliyun.com/api/live/describeroomstatus.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) DescribeRoomStatusWithCallback(request *DescribeRoomStatusRequest, callback func(response *DescribeRoomStatusResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *DescribeRoomStatusResponse
+		var err error
+		defer close(result)
+		response, err = client.DescribeRoomStatus(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// DescribeRoomStatusRequest is the request struct for api DescribeRoomStatus
+type DescribeRoomStatusRequest struct {
+	*requests.RpcRequest
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	RoomId  string           `position:"Query" name:"RoomId"`
+	AppId   string           `position:"Query" name:"AppId"`
+}
+
+// DescribeRoomStatusResponse is the response struct for api DescribeRoomStatus
+type DescribeRoomStatusResponse struct {
+	*responses.BaseResponse
+	RequestId  string `json:"RequestId" xml:"RequestId"`
+	RoomStatus int    `json:"RoomStatus" xml:"RoomStatus"`
+}
+
+// CreateDescribeRoomStatusRequest creates a request to invoke DescribeRoomStatus API
+func CreateDescribeRoomStatusRequest() (request *DescribeRoomStatusRequest) {
+	request = &DescribeRoomStatusRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "DescribeRoomStatus", "live", "openAPI")
+	return
+}
+
+// CreateDescribeRoomStatusResponse creates a response to parse from DescribeRoomStatus response
+func CreateDescribeRoomStatusResponse() (response *DescribeRoomStatusResponse) {
+	response = &DescribeRoomStatusResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 8 - 7
services/live/forbid_live_stream.go

@@ -76,13 +76,14 @@ func (client *Client) ForbidLiveStreamWithCallback(request *ForbidLiveStreamRequ
 // ForbidLiveStreamRequest is the request struct for api ForbidLiveStream
 type ForbidLiveStreamRequest struct {
 	*requests.RpcRequest
-	ResumeTime     string           `position:"Query" name:"ResumeTime"`
-	AppName        string           `position:"Query" name:"AppName"`
-	SecurityToken  string           `position:"Query" name:"SecurityToken"`
-	LiveStreamType string           `position:"Query" name:"LiveStreamType"`
-	DomainName     string           `position:"Query" name:"DomainName"`
-	OwnerId        requests.Integer `position:"Query" name:"OwnerId"`
-	StreamName     string           `position:"Query" name:"StreamName"`
+	AppName             string           `position:"Query" name:"AppName"`
+	StreamName          string           `position:"Query" name:"StreamName"`
+	ControlStreamAction string           `position:"Query" name:"ControlStreamAction"`
+	ResumeTime          string           `position:"Query" name:"ResumeTime"`
+	LiveStreamType      string           `position:"Query" name:"LiveStreamType"`
+	DomainName          string           `position:"Query" name:"DomainName"`
+	OwnerId             requests.Integer `position:"Query" name:"OwnerId"`
+	Oneshot             string           `position:"Query" name:"Oneshot"`
 }
 
 // ForbidLiveStreamResponse is the response struct for api ForbidLiveStream

+ 107 - 0
services/live/forbid_push_stream.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"
+)
+
+// ForbidPushStream invokes the live.ForbidPushStream API synchronously
+// api document: https://help.aliyun.com/api/live/forbidpushstream.html
+func (client *Client) ForbidPushStream(request *ForbidPushStreamRequest) (response *ForbidPushStreamResponse, err error) {
+	response = CreateForbidPushStreamResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// ForbidPushStreamWithChan invokes the live.ForbidPushStream API asynchronously
+// api document: https://help.aliyun.com/api/live/forbidpushstream.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ForbidPushStreamWithChan(request *ForbidPushStreamRequest) (<-chan *ForbidPushStreamResponse, <-chan error) {
+	responseChan := make(chan *ForbidPushStreamResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.ForbidPushStream(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// ForbidPushStreamWithCallback invokes the live.ForbidPushStream API asynchronously
+// api document: https://help.aliyun.com/api/live/forbidpushstream.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) ForbidPushStreamWithCallback(request *ForbidPushStreamRequest, callback func(response *ForbidPushStreamResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *ForbidPushStreamResponse
+		var err error
+		defer close(result)
+		response, err = client.ForbidPushStream(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// ForbidPushStreamRequest is the request struct for api ForbidPushStream
+type ForbidPushStreamRequest struct {
+	*requests.RpcRequest
+	UserData string           `position:"Query" name:"UserData"`
+	EndTime  string           `position:"Query" name:"EndTime"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+	RoomId   string           `position:"Query" name:"RoomId"`
+	AppId    string           `position:"Query" name:"AppId"`
+}
+
+// ForbidPushStreamResponse is the response struct for api ForbidPushStream
+type ForbidPushStreamResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateForbidPushStreamRequest creates a request to invoke ForbidPushStream API
+func CreateForbidPushStreamRequest() (request *ForbidPushStreamRequest) {
+	request = &ForbidPushStreamRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "ForbidPushStream", "live", "openAPI")
+	return
+}
+
+// CreateForbidPushStreamResponse creates a response to parse from ForbidPushStream response
+func CreateForbidPushStreamResponse() (response *ForbidPushStreamResponse) {
+	response = &ForbidPushStreamResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 109 - 0
services/live/join_board.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"
+)
+
+// JoinBoard invokes the live.JoinBoard API synchronously
+// api document: https://help.aliyun.com/api/live/joinboard.html
+func (client *Client) JoinBoard(request *JoinBoardRequest) (response *JoinBoardResponse, err error) {
+	response = CreateJoinBoardResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// JoinBoardWithChan invokes the live.JoinBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/joinboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) JoinBoardWithChan(request *JoinBoardRequest) (<-chan *JoinBoardResponse, <-chan error) {
+	responseChan := make(chan *JoinBoardResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.JoinBoard(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// JoinBoardWithCallback invokes the live.JoinBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/joinboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) JoinBoardWithCallback(request *JoinBoardRequest, callback func(response *JoinBoardResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *JoinBoardResponse
+		var err error
+		defer close(result)
+		response, err = client.JoinBoard(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// JoinBoardRequest is the request struct for api JoinBoard
+type JoinBoardRequest struct {
+	*requests.RpcRequest
+	BoardId string           `position:"Query" name:"BoardId"`
+	AppUid  string           `position:"Query" name:"AppUid"`
+	OwnerId requests.Integer `position:"Query" name:"OwnerId"`
+	AppId   string           `position:"Query" name:"AppId"`
+}
+
+// JoinBoardResponse is the response struct for api JoinBoard
+type JoinBoardResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	Token     string `json:"Token" xml:"Token"`
+	BoardId   string `json:"BoardId" xml:"BoardId"`
+	TopicId   string `json:"TopicId" xml:"TopicId"`
+}
+
+// CreateJoinBoardRequest creates a request to invoke JoinBoard API
+func CreateJoinBoardRequest() (request *JoinBoardRequest) {
+	request = &JoinBoardRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "JoinBoard", "live", "openAPI")
+	return
+}
+
+// CreateJoinBoardResponse creates a response to parse from JoinBoard response
+func CreateJoinBoardResponse() (response *JoinBoardResponse) {
+	response = &JoinBoardResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 11 - 10
services/live/modify_caster_video_resource.go

@@ -76,16 +76,17 @@ func (client *Client) ModifyCasterVideoResourceWithCallback(request *ModifyCaste
 // ModifyCasterVideoResourceRequest is the request struct for api ModifyCasterVideoResource
 type ModifyCasterVideoResourceRequest struct {
 	*requests.RpcRequest
-	ResourceId    string           `position:"Query" name:"ResourceId"`
-	BeginOffset   requests.Integer `position:"Query" name:"BeginOffset"`
-	VodUrl        string           `position:"Query" name:"VodUrl"`
-	LiveStreamUrl string           `position:"Query" name:"LiveStreamUrl"`
-	CasterId      string           `position:"Query" name:"CasterId"`
-	EndOffset     requests.Integer `position:"Query" name:"EndOffset"`
-	ResourceName  string           `position:"Query" name:"ResourceName"`
-	RepeatNum     requests.Integer `position:"Query" name:"RepeatNum"`
-	OwnerId       requests.Integer `position:"Query" name:"OwnerId"`
-	MaterialId    string           `position:"Query" name:"MaterialId"`
+	ResourceId          string           `position:"Query" name:"ResourceId"`
+	VodUrl              string           `position:"Query" name:"VodUrl"`
+	CasterId            string           `position:"Query" name:"CasterId"`
+	EndOffset           requests.Integer `position:"Query" name:"EndOffset"`
+	OwnerId             requests.Integer `position:"Query" name:"OwnerId"`
+	MaterialId          string           `position:"Query" name:"MaterialId"`
+	BeginOffset         requests.Integer `position:"Query" name:"BeginOffset"`
+	LiveStreamUrl       string           `position:"Query" name:"LiveStreamUrl"`
+	PtsCallbackInterval requests.Integer `position:"Query" name:"PtsCallbackInterval"`
+	ResourceName        string           `position:"Query" name:"ResourceName"`
+	RepeatNum           requests.Integer `position:"Query" name:"RepeatNum"`
 }
 
 // ModifyCasterVideoResourceResponse is the response struct for api ModifyCasterVideoResource

+ 109 - 0
services/live/send_room_notification.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"
+)
+
+// SendRoomNotification invokes the live.SendRoomNotification API synchronously
+// api document: https://help.aliyun.com/api/live/sendroomnotification.html
+func (client *Client) SendRoomNotification(request *SendRoomNotificationRequest) (response *SendRoomNotificationResponse, err error) {
+	response = CreateSendRoomNotificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SendRoomNotificationWithChan invokes the live.SendRoomNotification API asynchronously
+// api document: https://help.aliyun.com/api/live/sendroomnotification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SendRoomNotificationWithChan(request *SendRoomNotificationRequest) (<-chan *SendRoomNotificationResponse, <-chan error) {
+	responseChan := make(chan *SendRoomNotificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SendRoomNotification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SendRoomNotificationWithCallback invokes the live.SendRoomNotification API asynchronously
+// api document: https://help.aliyun.com/api/live/sendroomnotification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SendRoomNotificationWithCallback(request *SendRoomNotificationRequest, callback func(response *SendRoomNotificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SendRoomNotificationResponse
+		var err error
+		defer close(result)
+		response, err = client.SendRoomNotification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SendRoomNotificationRequest is the request struct for api SendRoomNotification
+type SendRoomNotificationRequest struct {
+	*requests.RpcRequest
+	Data     string           `position:"Query" name:"Data"`
+	AppUid   string           `position:"Query" name:"AppUid"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+	Priority requests.Integer `position:"Query" name:"Priority"`
+	RoomId   string           `position:"Query" name:"RoomId"`
+	AppId    string           `position:"Query" name:"AppId"`
+}
+
+// SendRoomNotificationResponse is the response struct for api SendRoomNotification
+type SendRoomNotificationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	MessageId string `json:"MessageId" xml:"MessageId"`
+}
+
+// CreateSendRoomNotificationRequest creates a request to invoke SendRoomNotification API
+func CreateSendRoomNotificationRequest() (request *SendRoomNotificationRequest) {
+	request = &SendRoomNotificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "SendRoomNotification", "live", "openAPI")
+	return
+}
+
+// CreateSendRoomNotificationResponse creates a response to parse from SendRoomNotification response
+func CreateSendRoomNotificationResponse() (response *SendRoomNotificationResponse) {
+	response = &SendRoomNotificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 110 - 0
services/live/send_room_user_notification.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"
+)
+
+// SendRoomUserNotification invokes the live.SendRoomUserNotification API synchronously
+// api document: https://help.aliyun.com/api/live/sendroomusernotification.html
+func (client *Client) SendRoomUserNotification(request *SendRoomUserNotificationRequest) (response *SendRoomUserNotificationResponse, err error) {
+	response = CreateSendRoomUserNotificationResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SendRoomUserNotificationWithChan invokes the live.SendRoomUserNotification API asynchronously
+// api document: https://help.aliyun.com/api/live/sendroomusernotification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SendRoomUserNotificationWithChan(request *SendRoomUserNotificationRequest) (<-chan *SendRoomUserNotificationResponse, <-chan error) {
+	responseChan := make(chan *SendRoomUserNotificationResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SendRoomUserNotification(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SendRoomUserNotificationWithCallback invokes the live.SendRoomUserNotification API asynchronously
+// api document: https://help.aliyun.com/api/live/sendroomusernotification.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SendRoomUserNotificationWithCallback(request *SendRoomUserNotificationRequest, callback func(response *SendRoomUserNotificationResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SendRoomUserNotificationResponse
+		var err error
+		defer close(result)
+		response, err = client.SendRoomUserNotification(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SendRoomUserNotificationRequest is the request struct for api SendRoomUserNotification
+type SendRoomUserNotificationRequest struct {
+	*requests.RpcRequest
+	Data     string           `position:"Query" name:"Data"`
+	ToAppUid string           `position:"Query" name:"ToAppUid"`
+	AppUid   string           `position:"Query" name:"AppUid"`
+	OwnerId  requests.Integer `position:"Query" name:"OwnerId"`
+	Priority requests.Integer `position:"Query" name:"Priority"`
+	RoomId   string           `position:"Query" name:"RoomId"`
+	AppId    string           `position:"Query" name:"AppId"`
+}
+
+// SendRoomUserNotificationResponse is the response struct for api SendRoomUserNotification
+type SendRoomUserNotificationResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+	MessageId string `json:"MessageId" xml:"MessageId"`
+}
+
+// CreateSendRoomUserNotificationRequest creates a request to invoke SendRoomUserNotification API
+func CreateSendRoomUserNotificationRequest() (request *SendRoomUserNotificationRequest) {
+	request = &SendRoomUserNotificationRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "SendRoomUserNotification", "live", "openAPI")
+	return
+}
+
+// CreateSendRoomUserNotificationResponse creates a response to parse from SendRoomUserNotification response
+func CreateSendRoomUserNotificationResponse() (response *SendRoomUserNotificationResponse) {
+	response = &SendRoomUserNotificationResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 108 - 0
services/live/set_caster_channel.go

@@ -0,0 +1,108 @@
+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"
+)
+
+// SetCasterChannel invokes the live.SetCasterChannel API synchronously
+// api document: https://help.aliyun.com/api/live/setcasterchannel.html
+func (client *Client) SetCasterChannel(request *SetCasterChannelRequest) (response *SetCasterChannelResponse, err error) {
+	response = CreateSetCasterChannelResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetCasterChannelWithChan invokes the live.SetCasterChannel API asynchronously
+// api document: https://help.aliyun.com/api/live/setcasterchannel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetCasterChannelWithChan(request *SetCasterChannelRequest) (<-chan *SetCasterChannelResponse, <-chan error) {
+	responseChan := make(chan *SetCasterChannelResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetCasterChannel(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetCasterChannelWithCallback invokes the live.SetCasterChannel API asynchronously
+// api document: https://help.aliyun.com/api/live/setcasterchannel.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetCasterChannelWithCallback(request *SetCasterChannelRequest, callback func(response *SetCasterChannelResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetCasterChannelResponse
+		var err error
+		defer close(result)
+		response, err = client.SetCasterChannel(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetCasterChannelRequest is the request struct for api SetCasterChannel
+type SetCasterChannelRequest struct {
+	*requests.RpcRequest
+	ResourceId string           `position:"Query" name:"ResourceId"`
+	PlayStatus requests.Integer `position:"Query" name:"PlayStatus"`
+	CasterId   string           `position:"Query" name:"CasterId"`
+	OwnerId    requests.Integer `position:"Query" name:"OwnerId"`
+	SeekOffset requests.Integer `position:"Query" name:"SeekOffset"`
+	ChannelId  string           `position:"Query" name:"ChannelId"`
+}
+
+// SetCasterChannelResponse is the response struct for api SetCasterChannel
+type SetCasterChannelResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSetCasterChannelRequest creates a request to invoke SetCasterChannel API
+func CreateSetCasterChannelRequest() (request *SetCasterChannelRequest) {
+	request = &SetCasterChannelRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "SetCasterChannel", "live", "openAPI")
+	return
+}
+
+// CreateSetCasterChannelResponse creates a response to parse from SetCasterChannel response
+func CreateSetCasterChannelResponse() (response *SetCasterChannelResponse) {
+	response = &SetCasterChannelResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 0
services/live/set_caster_config.go

@@ -78,6 +78,7 @@ type SetCasterConfigRequest struct {
 	*requests.RpcRequest
 	SideOutputUrl    string           `position:"Query" name:"SideOutputUrl"`
 	CasterId         string           `position:"Query" name:"CasterId"`
+	ChannelEnable    requests.Integer `position:"Query" name:"ChannelEnable"`
 	DomainName       string           `position:"Query" name:"DomainName"`
 	ProgramEffect    requests.Integer `position:"Query" name:"ProgramEffect"`
 	ProgramName      string           `position:"Query" name:"ProgramName"`

+ 110 - 0
services/live/set_live_lazy_pull_stream_info_config.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"
+)
+
+// SetLiveLazyPullStreamInfoConfig invokes the live.SetLiveLazyPullStreamInfoConfig API synchronously
+// api document: https://help.aliyun.com/api/live/setlivelazypullstreaminfoconfig.html
+func (client *Client) SetLiveLazyPullStreamInfoConfig(request *SetLiveLazyPullStreamInfoConfigRequest) (response *SetLiveLazyPullStreamInfoConfigResponse, err error) {
+	response = CreateSetLiveLazyPullStreamInfoConfigResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// SetLiveLazyPullStreamInfoConfigWithChan invokes the live.SetLiveLazyPullStreamInfoConfig API asynchronously
+// api document: https://help.aliyun.com/api/live/setlivelazypullstreaminfoconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetLiveLazyPullStreamInfoConfigWithChan(request *SetLiveLazyPullStreamInfoConfigRequest) (<-chan *SetLiveLazyPullStreamInfoConfigResponse, <-chan error) {
+	responseChan := make(chan *SetLiveLazyPullStreamInfoConfigResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.SetLiveLazyPullStreamInfoConfig(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// SetLiveLazyPullStreamInfoConfigWithCallback invokes the live.SetLiveLazyPullStreamInfoConfig API asynchronously
+// api document: https://help.aliyun.com/api/live/setlivelazypullstreaminfoconfig.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) SetLiveLazyPullStreamInfoConfigWithCallback(request *SetLiveLazyPullStreamInfoConfigRequest, callback func(response *SetLiveLazyPullStreamInfoConfigResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *SetLiveLazyPullStreamInfoConfigResponse
+		var err error
+		defer close(result)
+		response, err = client.SetLiveLazyPullStreamInfoConfig(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// SetLiveLazyPullStreamInfoConfigRequest is the request struct for api SetLiveLazyPullStreamInfoConfig
+type SetLiveLazyPullStreamInfoConfigRequest struct {
+	*requests.RpcRequest
+	AppName        string           `position:"Query" name:"AppName"`
+	PullAuthKey    string           `position:"Query" name:"PullAuthKey"`
+	PullAuthType   string           `position:"Query" name:"PullAuthType"`
+	DomainName     string           `position:"Query" name:"DomainName"`
+	PullDomainName string           `position:"Query" name:"PullDomainName"`
+	OwnerId        requests.Integer `position:"Query" name:"OwnerId"`
+	PullAppName    string           `position:"Query" name:"PullAppName"`
+	PullProtocol   string           `position:"Query" name:"PullProtocol"`
+}
+
+// SetLiveLazyPullStreamInfoConfigResponse is the response struct for api SetLiveLazyPullStreamInfoConfig
+type SetLiveLazyPullStreamInfoConfigResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateSetLiveLazyPullStreamInfoConfigRequest creates a request to invoke SetLiveLazyPullStreamInfoConfig API
+func CreateSetLiveLazyPullStreamInfoConfigRequest() (request *SetLiveLazyPullStreamInfoConfigRequest) {
+	request = &SetLiveLazyPullStreamInfoConfigRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "SetLiveLazyPullStreamInfoConfig", "live", "openAPI")
+	return
+}
+
+// CreateSetLiveLazyPullStreamInfoConfigResponse creates a response to parse from SetLiveLazyPullStreamInfoConfig response
+func CreateSetLiveLazyPullStreamInfoConfigResponse() (response *SetLiveLazyPullStreamInfoConfigResponse) {
+	response = &SetLiveLazyPullStreamInfoConfigResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 1 - 1
services/live/struct_audio_layer.go

@@ -17,7 +17,7 @@ package live
 
 // AudioLayer is a nested struct in live response
 type AudioLayer struct {
-	VolumeRate         float64 `json:"VolumeRate" xml:"VolumeRate"`
 	ValidChannel       string  `json:"ValidChannel" xml:"ValidChannel"`
 	FixedDelayDuration int     `json:"FixedDelayDuration" xml:"FixedDelayDuration"`
+	VolumeRate         float64 `json:"VolumeRate" xml:"VolumeRate"`
 }

+ 2 - 2
services/live/struct_audio_layers.go → services/live/struct_audio_layers_in_describe_caster_layouts.go

@@ -15,7 +15,7 @@ package live
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-// AudioLayers is a nested struct in live response
-type AudioLayers struct {
+// AudioLayersInDescribeCasterLayouts is a nested struct in live response
+type AudioLayersInDescribeCasterLayouts struct {
 	AudioLayer []AudioLayer `json:"AudioLayer" xml:"AudioLayer"`
 }

+ 21 - 0
services/live/struct_audio_layers_in_describe_caster_scene_audio.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.
+
+// AudioLayersInDescribeCasterSceneAudio is a nested struct in live response
+type AudioLayersInDescribeCasterSceneAudio struct {
+	AudioLayer []AudioLayer `json:"AudioLayer" xml:"AudioLayer"`
+}

+ 27 - 0
services/live/struct_board.go

@@ -0,0 +1,27 @@
+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.
+
+// Board is a nested struct in live response
+type Board struct {
+	BoardId         string   `json:"BoardId" xml:"BoardId"`
+	AppUid          string   `json:"AppUid" xml:"AppUid"`
+	EventTimestamp  int      `json:"EventTimestamp" xml:"EventTimestamp"`
+	CreateTimestamp int      `json:"CreateTimestamp" xml:"CreateTimestamp"`
+	UpdateTimestamp int      `json:"UpdateTimestamp" xml:"UpdateTimestamp"`
+	Pages           []Page   `json:"Pages" xml:"Pages"`
+	Configs         []Config `json:"Configs" xml:"Configs"`
+}

+ 21 - 0
services/live/struct_boards.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.
+
+// Boards is a nested struct in live response
+type Boards struct {
+	Event []Event `json:"Event" xml:"Event"`
+}

+ 1 - 0
services/live/struct_caster.go

@@ -27,4 +27,5 @@ type Caster struct {
 	ExpireTime     string `json:"ExpireTime" xml:"ExpireTime"`
 	ChargeType     string `json:"ChargeType" xml:"ChargeType"`
 	CasterTemplate string `json:"CasterTemplate" xml:"CasterTemplate"`
+	ChannelEnable  int    `json:"ChannelEnable" xml:"ChannelEnable"`
 }

+ 23 - 0
services/live/struct_channel.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.
+
+// Channel is a nested struct in live response
+type Channel struct {
+	ChannelId  string `json:"ChannelId" xml:"ChannelId"`
+	ResourceId string `json:"ResourceId" xml:"ResourceId"`
+	StreamUrl  string `json:"StreamUrl" xml:"StreamUrl"`
+}

+ 21 - 0
services/live/struct_channels.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.
+
+// Channels is a nested struct in live response
+type Channels struct {
+	Channel []Channel `json:"Channel" xml:"Channel"`
+}

+ 22 - 0
services/live/struct_config.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.
+
+// Config is a nested struct in live response
+type Config struct {
+	AppUid string `json:"AppUid" xml:"AppUid"`
+	Data   string `json:"Data" xml:"Data"`
+}

+ 21 - 0
services/live/struct_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.
+
+// Configs is a nested struct in live response
+type Configs struct {
+	Config []Config `json:"Config" xml:"Config"`
+}

+ 22 - 0
services/live/struct_data_module.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.
+
+// DataModule is a nested struct in live response
+type DataModule struct {
+	TimeStamp string `json:"TimeStamp" xml:"TimeStamp"`
+	Value     string `json:"Value" xml:"Value"`
+}

+ 25 - 0
services/live/struct_element.go

@@ -0,0 +1,25 @@
+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.
+
+// Element is a nested struct in live response
+type Element struct {
+	ElementIndex    string `json:"ElementIndex" xml:"ElementIndex"`
+	OwnerId         string `json:"OwnerId" xml:"OwnerId"`
+	ElementType     int    `json:"ElementType" xml:"ElementType"`
+	UpdateTimestamp int    `json:"UpdateTimestamp" xml:"UpdateTimestamp"`
+	Data            string `json:"Data" xml:"Data"`
+}

+ 21 - 0
services/live/struct_elements.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.
+
+// Elements is a nested struct in live response
+type Elements struct {
+	Element []Element `json:"Element" xml:"Element"`
+}

+ 24 - 0
services/live/struct_event.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.
+
+// Event is a nested struct in live response
+type Event struct {
+	BoardId string `json:"BoardId" xml:"BoardId"`
+	UserId  string `json:"UserId" xml:"UserId"`
+	Topic   string `json:"Topic" xml:"Topic"`
+	State   int    `json:"State" xml:"State"`
+}

+ 25 - 0
services/live/struct_event_in_describe_board_events.go

@@ -0,0 +1,25 @@
+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.
+
+// EventInDescribeBoardEvents is a nested struct in live response
+type EventInDescribeBoardEvents struct {
+	EventId   int    `json:"EventId" xml:"EventId"`
+	EventType int    `json:"EventType" xml:"EventType"`
+	UserId    int    `json:"UserId" xml:"UserId"`
+	Data      string `json:"Data" xml:"Data"`
+	Timestamp int    `json:"Timestamp" xml:"Timestamp"`
+}

+ 21 - 0
services/live/struct_events.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.
+
+// Events is a nested struct in live response
+type Events struct {
+	Event []EventInDescribeBoardEvents `json:"Event" xml:"Event"`
+}

+ 5 - 5
services/live/struct_layout.go

@@ -17,9 +17,9 @@ package live
 
 // Layout is a nested struct in live response
 type Layout struct {
-	LayoutId    string      `json:"LayoutId" xml:"LayoutId"`
-	BlendList   BlendList   `json:"BlendList" xml:"BlendList"`
-	MixList     MixList     `json:"MixList" xml:"MixList"`
-	VideoLayers VideoLayers `json:"VideoLayers" xml:"VideoLayers"`
-	AudioLayers AudioLayers `json:"AudioLayers" xml:"AudioLayers"`
+	LayoutId    string                             `json:"LayoutId" xml:"LayoutId"`
+	BlendList   BlendList                          `json:"BlendList" xml:"BlendList"`
+	MixList     MixListInDescribeCasterLayouts     `json:"MixList" xml:"MixList"`
+	VideoLayers VideoLayers                        `json:"VideoLayers" xml:"VideoLayers"`
+	AudioLayers AudioLayersInDescribeCasterLayouts `json:"AudioLayers" xml:"AudioLayers"`
 }

+ 27 - 0
services/live/struct_live_lazy_pull_config.go

@@ -0,0 +1,27 @@
+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.
+
+// LiveLazyPullConfig is a nested struct in live response
+type LiveLazyPullConfig struct {
+	DomainName     string `json:"DomainName" xml:"DomainName"`
+	AppName        string `json:"AppName" xml:"AppName"`
+	PullDomainName string `json:"PullDomainName" xml:"PullDomainName"`
+	PullAppName    string `json:"PullAppName" xml:"PullAppName"`
+	PullProtocol   string `json:"PullProtocol" xml:"PullProtocol"`
+	PullAuthType   string `json:"PullAuthType" xml:"PullAuthType"`
+	PullAuthKey    string `json:"PullAuthKey" xml:"PullAuthKey"`
+}

+ 21 - 0
services/live/struct_live_lazy_pull_config_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.
+
+// LiveLazyPullConfigList is a nested struct in live response
+type LiveLazyPullConfigList struct {
+	LiveLazyPullConfig []LiveLazyPullConfig `json:"LiveLazyPullConfig" xml:"LiveLazyPullConfig"`
+}

+ 2 - 0
services/live/struct_live_streams_notify_config.go

@@ -19,4 +19,6 @@ package live
 type LiveStreamsNotifyConfig struct {
 	DomainName string `json:"DomainName" xml:"DomainName"`
 	NotifyUrl  string `json:"NotifyUrl" xml:"NotifyUrl"`
+	AuthType   string `json:"AuthType" xml:"AuthType"`
+	AuthKey    string `json:"AuthKey" xml:"AuthKey"`
 }

+ 2 - 2
services/live/struct_mix_list.go → services/live/struct_mix_list_in_describe_caster_layouts.go

@@ -15,7 +15,7 @@ package live
 // Code generated by Alibaba Cloud SDK Code Generator.
 // Changes may cause incorrect behavior and will be lost if the code is regenerated.
 
-// MixList is a nested struct in live response
-type MixList struct {
+// MixListInDescribeCasterLayouts is a nested struct in live response
+type MixListInDescribeCasterLayouts struct {
 	LocationId []string `json:"LocationId" xml:"LocationId"`
 }

+ 21 - 0
services/live/struct_mix_list_in_describe_caster_scene_audio.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.
+
+// MixListInDescribeCasterSceneAudio is a nested struct in live response
+type MixListInDescribeCasterSceneAudio struct {
+	LocationId []string `json:"LocationId" xml:"LocationId"`
+}

+ 22 - 0
services/live/struct_page.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.
+
+// Page is a nested struct in live response
+type Page struct {
+	PageIndex int       `json:"PageIndex" xml:"PageIndex"`
+	Elements  []Element `json:"Elements" xml:"Elements"`
+}

+ 21 - 0
services/live/struct_pages.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.
+
+// Pages is a nested struct in live response
+type Pages struct {
+	Page []Page `json:"Page" xml:"Page"`
+}

+ 26 - 0
services/live/struct_room.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.
+
+// Room is a nested struct in live response
+type Room struct {
+	AnchorId    string `json:"AnchorId" xml:"AnchorId"`
+	OpEndTime   string `json:"OpEndTime" xml:"OpEndTime"`
+	OpStartTime string `json:"OpStartTime" xml:"OpStartTime"`
+	CreateTime  string `json:"CreateTime" xml:"CreateTime"`
+	RoomStatus  int    `json:"RoomStatus" xml:"RoomStatus"`
+	RoomId      string `json:"RoomId" xml:"RoomId"`
+}

+ 21 - 0
services/live/struct_room_list_in_describe_forbid_push_stream_room_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.
+
+// RoomListInDescribeForbidPushStreamRoomList is a nested struct in live response
+type RoomListInDescribeForbidPushStreamRoomList struct {
+	Room []Room `json:"Room" xml:"Room"`
+}

+ 21 - 0
services/live/struct_room_list_in_describe_room_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.
+
+// RoomListInDescribeRoomList is a nested struct in live response
+type RoomListInDescribeRoomList struct {
+	Room []Room `json:"Room" xml:"Room"`
+}

+ 21 - 0
services/live/struct_snapshot.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.
+
+// Snapshot is a nested struct in live response
+type Snapshot struct {
+	Board Board `json:"Board" xml:"Board"`
+}

+ 21 - 0
services/live/struct_usage_data_per_interval.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.
+
+// UsageDataPerInterval is a nested struct in live response
+type UsageDataPerInterval struct {
+	DataModule []DataModule `json:"DataModule" xml:"DataModule"`
+}

+ 23 - 0
services/live/struct_user.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.
+
+// User is a nested struct in live response
+type User struct {
+	AppUid      string `json:"AppUid" xml:"AppUid"`
+	OpStartTime string `json:"OpStartTime" xml:"OpStartTime"`
+	OpEndTime   string `json:"OpEndTime" xml:"OpEndTime"`
+}

+ 21 - 0
services/live/struct_user_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.
+
+// UserList is a nested struct in live response
+type UserList struct {
+	User []User `json:"User" xml:"User"`
+}

+ 10 - 9
services/live/struct_video_resource.go

@@ -17,13 +17,14 @@ package live
 
 // VideoResource is a nested struct in live response
 type VideoResource struct {
-	MaterialId    string `json:"MaterialId" xml:"MaterialId"`
-	ResourceId    string `json:"ResourceId" xml:"ResourceId"`
-	ResourceName  string `json:"ResourceName" xml:"ResourceName"`
-	LocationId    string `json:"LocationId" xml:"LocationId"`
-	LiveStreamUrl string `json:"LiveStreamUrl" xml:"LiveStreamUrl"`
-	RepeatNum     int    `json:"RepeatNum" xml:"RepeatNum"`
-	VodUrl        string `json:"VodUrl" xml:"VodUrl"`
-	BeginOffset   int    `json:"BeginOffset" xml:"BeginOffset"`
-	EndOffset     int    `json:"EndOffset" xml:"EndOffset"`
+	MaterialId          string `json:"MaterialId" xml:"MaterialId"`
+	ResourceId          string `json:"ResourceId" xml:"ResourceId"`
+	ResourceName        string `json:"ResourceName" xml:"ResourceName"`
+	LocationId          string `json:"LocationId" xml:"LocationId"`
+	LiveStreamUrl       string `json:"LiveStreamUrl" xml:"LiveStreamUrl"`
+	RepeatNum           int    `json:"RepeatNum" xml:"RepeatNum"`
+	VodUrl              string `json:"VodUrl" xml:"VodUrl"`
+	BeginOffset         int    `json:"BeginOffset" xml:"BeginOffset"`
+	EndOffset           int    `json:"EndOffset" xml:"EndOffset"`
+	PtsCallbackInterval int    `json:"PtsCallbackInterval" xml:"PtsCallbackInterval"`
 }

+ 105 - 0
services/live/update_board.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"
+)
+
+// UpdateBoard invokes the live.UpdateBoard API synchronously
+// api document: https://help.aliyun.com/api/live/updateboard.html
+func (client *Client) UpdateBoard(request *UpdateBoardRequest) (response *UpdateBoardResponse, err error) {
+	response = CreateUpdateBoardResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateBoardWithChan invokes the live.UpdateBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/updateboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateBoardWithChan(request *UpdateBoardRequest) (<-chan *UpdateBoardResponse, <-chan error) {
+	responseChan := make(chan *UpdateBoardResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateBoard(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateBoardWithCallback invokes the live.UpdateBoard API asynchronously
+// api document: https://help.aliyun.com/api/live/updateboard.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateBoardWithCallback(request *UpdateBoardRequest, callback func(response *UpdateBoardResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateBoardResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateBoard(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateBoardRequest is the request struct for api UpdateBoard
+type UpdateBoardRequest struct {
+	*requests.RpcRequest
+	OwnerId   requests.Integer `position:"Query" name:"OwnerId"`
+	AppId     string           `position:"Query" name:"AppId"`
+	BoardData string           `position:"Query" name:"BoardData"`
+}
+
+// UpdateBoardResponse is the response struct for api UpdateBoard
+type UpdateBoardResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUpdateBoardRequest creates a request to invoke UpdateBoard API
+func CreateUpdateBoardRequest() (request *UpdateBoardRequest) {
+	request = &UpdateBoardRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "UpdateBoard", "live", "openAPI")
+	return
+}
+
+// CreateUpdateBoardResponse creates a response to parse from UpdateBoard response
+func CreateUpdateBoardResponse() (response *UpdateBoardResponse) {
+	response = &UpdateBoardResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}

+ 115 - 0
services/live/update_caster_scene_audio.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"
+)
+
+// UpdateCasterSceneAudio invokes the live.UpdateCasterSceneAudio API synchronously
+// api document: https://help.aliyun.com/api/live/updatecastersceneaudio.html
+func (client *Client) UpdateCasterSceneAudio(request *UpdateCasterSceneAudioRequest) (response *UpdateCasterSceneAudioResponse, err error) {
+	response = CreateUpdateCasterSceneAudioResponse()
+	err = client.DoAction(request, response)
+	return
+}
+
+// UpdateCasterSceneAudioWithChan invokes the live.UpdateCasterSceneAudio API asynchronously
+// api document: https://help.aliyun.com/api/live/updatecastersceneaudio.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateCasterSceneAudioWithChan(request *UpdateCasterSceneAudioRequest) (<-chan *UpdateCasterSceneAudioResponse, <-chan error) {
+	responseChan := make(chan *UpdateCasterSceneAudioResponse, 1)
+	errChan := make(chan error, 1)
+	err := client.AddAsyncTask(func() {
+		defer close(responseChan)
+		defer close(errChan)
+		response, err := client.UpdateCasterSceneAudio(request)
+		if err != nil {
+			errChan <- err
+		} else {
+			responseChan <- response
+		}
+	})
+	if err != nil {
+		errChan <- err
+		close(responseChan)
+		close(errChan)
+	}
+	return responseChan, errChan
+}
+
+// UpdateCasterSceneAudioWithCallback invokes the live.UpdateCasterSceneAudio API asynchronously
+// api document: https://help.aliyun.com/api/live/updatecastersceneaudio.html
+// asynchronous document: https://help.aliyun.com/document_detail/66220.html
+func (client *Client) UpdateCasterSceneAudioWithCallback(request *UpdateCasterSceneAudioRequest, callback func(response *UpdateCasterSceneAudioResponse, err error)) <-chan int {
+	result := make(chan int, 1)
+	err := client.AddAsyncTask(func() {
+		var response *UpdateCasterSceneAudioResponse
+		var err error
+		defer close(result)
+		response, err = client.UpdateCasterSceneAudio(request)
+		callback(response, err)
+		result <- 1
+	})
+	if err != nil {
+		defer close(result)
+		callback(nil, err)
+		result <- 0
+	}
+	return result
+}
+
+// UpdateCasterSceneAudioRequest is the request struct for api UpdateCasterSceneAudio
+type UpdateCasterSceneAudioRequest struct {
+	*requests.RpcRequest
+	AudioLayer   *[]UpdateCasterSceneAudioAudioLayer `position:"Query" name:"AudioLayer"  type:"Repeated"`
+	CasterId     string                              `position:"Query" name:"CasterId"`
+	SceneId      string                              `position:"Query" name:"SceneId"`
+	MixList      *[]string                           `position:"Query" name:"MixList"  type:"Repeated"`
+	OwnerId      requests.Integer                    `position:"Query" name:"OwnerId"`
+	FollowEnable requests.Integer                    `position:"Query" name:"FollowEnable"`
+}
+
+// UpdateCasterSceneAudioAudioLayer is a repeated param struct in UpdateCasterSceneAudioRequest
+type UpdateCasterSceneAudioAudioLayer struct {
+	FixedDelayDuration string `name:"FixedDelayDuration"`
+	VolumeRate         string `name:"VolumeRate"`
+	ValidChannel       string `name:"ValidChannel"`
+}
+
+// UpdateCasterSceneAudioResponse is the response struct for api UpdateCasterSceneAudio
+type UpdateCasterSceneAudioResponse struct {
+	*responses.BaseResponse
+	RequestId string `json:"RequestId" xml:"RequestId"`
+}
+
+// CreateUpdateCasterSceneAudioRequest creates a request to invoke UpdateCasterSceneAudio API
+func CreateUpdateCasterSceneAudioRequest() (request *UpdateCasterSceneAudioRequest) {
+	request = &UpdateCasterSceneAudioRequest{
+		RpcRequest: &requests.RpcRequest{},
+	}
+	request.InitWithApiInfo("live", "2016-11-01", "UpdateCasterSceneAudio", "live", "openAPI")
+	return
+}
+
+// CreateUpdateCasterSceneAudioResponse creates a response to parse from UpdateCasterSceneAudio response
+func CreateUpdateCasterSceneAudioResponse() (response *UpdateCasterSceneAudioResponse) {
+	response = &UpdateCasterSceneAudioResponse{
+		BaseResponse: &responses.BaseResponse{},
+	}
+	return
+}