第一次提交:阿龙电竞 Django 后端最新版本

This commit is contained in:
XingQue
2026-06-14 02:23:24 +08:00
commit 4f7bf00224
9654 changed files with 5417000 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
# -*- coding: utf8 -*-
# Copyright (c) 2017-2025 Tencent. All Rights Reserved.
#
# 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.
# 操作失败。
FAILEDOPERATION = 'FailedOperation'
# 内部错误。
INTERNALERROR = 'InternalError'
# 参数错误。
INVALIDPARAMETER = 'InvalidParameter'
# 参数取值错误。
INVALIDPARAMETERVALUE = 'InvalidParameterValue'
# 缺少参数错误。
MISSINGPARAMETER = 'MissingParameter'
# 操作被拒绝。
OPERATIONDENIED = 'OperationDenied'
# license数量不足
OPERATIONDENIED_LICENSESNOTENOUGHERROR = 'OperationDenied.LicensesNotEnoughError'
# 资源不存在。
RESOURCENOTFOUND = 'ResourceNotFound'

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,743 @@
# -*- coding: utf8 -*-
# Copyright (c) 2017-2025 Tencent. All Rights Reserved.
#
# 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.
import json
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.common.abstract_client import AbstractClient
from tencentcloud.trro.v20220325 import models
class TrroClient(AbstractClient):
_apiVersion = '2022-03-25'
_endpoint = 'trro.tencentcloudapi.com'
_service = 'trro'
def BatchDeleteDevices(self, request):
r"""用于批量删除设备
:param request: Request instance for BatchDeleteDevices.
:type request: :class:`tencentcloud.trro.v20220325.models.BatchDeleteDevicesRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.BatchDeleteDevicesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("BatchDeleteDevices", params, headers=headers)
response = json.loads(body)
model = models.BatchDeleteDevicesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def BatchDeletePolicy(self, request):
r"""用于批量删除修改权限配置
:param request: Request instance for BatchDeletePolicy.
:type request: :class:`tencentcloud.trro.v20220325.models.BatchDeletePolicyRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.BatchDeletePolicyResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("BatchDeletePolicy", params, headers=headers)
response = json.loads(body)
model = models.BatchDeletePolicyResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def BoundLicenses(self, request):
r"""为推流设备绑定license优先绑定到期时间最近的到期时间相同优先绑定月包
:param request: Request instance for BoundLicenses.
:type request: :class:`tencentcloud.trro.v20220325.models.BoundLicensesRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.BoundLicensesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("BoundLicenses", params, headers=headers)
response = json.loads(body)
model = models.BoundLicensesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def CreateCloudRecording(self, request):
r"""启动云端录制功能,完成房间内的音视频录制,并上传到指定的云存储。
:param request: Request instance for CreateCloudRecording.
:type request: :class:`tencentcloud.trro.v20220325.models.CreateCloudRecordingRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.CreateCloudRecordingResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("CreateCloudRecording", params, headers=headers)
response = json.loads(body)
model = models.CreateCloudRecordingResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def CreateDevice(self, request):
r"""用于创建设备
:param request: Request instance for CreateDevice.
:type request: :class:`tencentcloud.trro.v20220325.models.CreateDeviceRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.CreateDeviceResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("CreateDevice", params, headers=headers)
response = json.loads(body)
model = models.CreateDeviceResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def CreateProject(self, request):
r"""用于创建项目
:param request: Request instance for CreateProject.
:type request: :class:`tencentcloud.trro.v20220325.models.CreateProjectRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.CreateProjectResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("CreateProject", params, headers=headers)
response = json.loads(body)
model = models.CreateProjectResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DeleteCloudRecording(self, request):
r"""成功开启录制后,可以使用此接口来停止录制任务。停止录制成功后不代表文件全部传输完成,如果未完成后台将会继续上传文件,成功后通过事件回调通知客户文件全部传输完成状态。
:param request: Request instance for DeleteCloudRecording.
:type request: :class:`tencentcloud.trro.v20220325.models.DeleteCloudRecordingRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DeleteCloudRecordingResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DeleteCloudRecording", params, headers=headers)
response = json.loads(body)
model = models.DeleteCloudRecordingResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DeleteProject(self, request):
r"""用于删除项目
:param request: Request instance for DeleteProject.
:type request: :class:`tencentcloud.trro.v20220325.models.DeleteProjectRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DeleteProjectResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DeleteProject", params, headers=headers)
response = json.loads(body)
model = models.DeleteProjectResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeDeviceInfo(self, request):
r"""用于获取指定设备信息
:param request: Request instance for DescribeDeviceInfo.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeDeviceInfoRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeDeviceInfoResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeDeviceInfo", params, headers=headers)
response = json.loads(body)
model = models.DescribeDeviceInfoResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeDeviceList(self, request):
r"""用于获取设备信息列表
:param request: Request instance for DescribeDeviceList.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeDeviceListRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeDeviceListResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeDeviceList", params, headers=headers)
response = json.loads(body)
model = models.DescribeDeviceListResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeDeviceSessionDetails(self, request):
r"""获取设备会话数据详单
:param request: Request instance for DescribeDeviceSessionDetails.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeDeviceSessionDetailsRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeDeviceSessionDetailsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeDeviceSessionDetails", params, headers=headers)
response = json.loads(body)
model = models.DescribeDeviceSessionDetailsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeDeviceSessionList(self, request):
r"""获取设备会话列表
:param request: Request instance for DescribeDeviceSessionList.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeDeviceSessionListRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeDeviceSessionListResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeDeviceSessionList", params, headers=headers)
response = json.loads(body)
model = models.DescribeDeviceSessionListResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribePolicy(self, request):
r"""用于查看权限配置
:param request: Request instance for DescribePolicy.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribePolicyRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribePolicyResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribePolicy", params, headers=headers)
response = json.loads(body)
model = models.DescribePolicyResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeProjectInfo(self, request):
r"""用于获取项目信息
:param request: Request instance for DescribeProjectInfo.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeProjectInfoRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeProjectInfoResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeProjectInfo", params, headers=headers)
response = json.loads(body)
model = models.DescribeProjectInfoResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeProjectList(self, request):
r"""用于获取项目列表
:param request: Request instance for DescribeProjectList.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeProjectListRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeProjectListResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeProjectList", params, headers=headers)
response = json.loads(body)
model = models.DescribeProjectListResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeRecentSessionList(self, request):
r"""获取最新设备会话列表
:param request: Request instance for DescribeRecentSessionList.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeRecentSessionListRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeRecentSessionListResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeRecentSessionList", params, headers=headers)
response = json.loads(body)
model = models.DescribeRecentSessionListResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeSessionStatistics(self, request):
r"""获取会话统计值
:param request: Request instance for DescribeSessionStatistics.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeSessionStatisticsRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeSessionStatisticsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeSessionStatistics", params, headers=headers)
response = json.loads(body)
model = models.DescribeSessionStatisticsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def DescribeSessionStatisticsByInterval(self, request):
r"""获取各时间段的会话统计值
:param request: Request instance for DescribeSessionStatisticsByInterval.
:type request: :class:`tencentcloud.trro.v20220325.models.DescribeSessionStatisticsByIntervalRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.DescribeSessionStatisticsByIntervalResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("DescribeSessionStatisticsByInterval", params, headers=headers)
response = json.loads(body)
model = models.DescribeSessionStatisticsByIntervalResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def GetDeviceLicense(self, request):
r"""获取设备已经绑定的可用授权数量
:param request: Request instance for GetDeviceLicense.
:type request: :class:`tencentcloud.trro.v20220325.models.GetDeviceLicenseRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.GetDeviceLicenseResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("GetDeviceLicense", params, headers=headers)
response = json.loads(body)
model = models.GetDeviceLicenseResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def GetDevices(self, request):
r"""查询用户设备的授权绑定情况
:param request: Request instance for GetDevices.
:type request: :class:`tencentcloud.trro.v20220325.models.GetDevicesRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.GetDevicesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("GetDevices", params, headers=headers)
response = json.loads(body)
model = models.GetDevicesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def GetDurationDetails(self, request):
r"""查询该时间段、对应项目、设备的不同分辨率的通话时长流水,流水以日期(天)为单位
:param request: Request instance for GetDurationDetails.
:type request: :class:`tencentcloud.trro.v20220325.models.GetDurationDetailsRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.GetDurationDetailsResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("GetDurationDetails", params, headers=headers)
response = json.loads(body)
model = models.GetDurationDetailsResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def GetLicenseStat(self, request):
r"""统计license类型数量
:param request: Request instance for GetLicenseStat.
:type request: :class:`tencentcloud.trro.v20220325.models.GetLicenseStatRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.GetLicenseStatResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("GetLicenseStat", params, headers=headers)
response = json.loads(body)
model = models.GetLicenseStatResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def GetLicenses(self, request):
r"""按授权查看license列表
:param request: Request instance for GetLicenses.
:type request: :class:`tencentcloud.trro.v20220325.models.GetLicensesRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.GetLicensesResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("GetLicenses", params, headers=headers)
response = json.loads(body)
model = models.GetLicensesResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def GetTotalDuration(self, request):
r"""查询该时间段、对应项目、设备的不同分辨率的通话时长汇总
:param request: Request instance for GetTotalDuration.
:type request: :class:`tencentcloud.trro.v20220325.models.GetTotalDurationRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.GetTotalDurationResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("GetTotalDuration", params, headers=headers)
response = json.loads(body)
model = models.GetTotalDurationResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def ModifyCallbackUrl(self, request):
r"""设置回调URL
录制回调事件内容参考https://cloud.tencent.com/document/product/647/81113
转推回调事件内容参考https://cloud.tencent.com/document/product/647/88552
:param request: Request instance for ModifyCallbackUrl.
:type request: :class:`tencentcloud.trro.v20220325.models.ModifyCallbackUrlRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.ModifyCallbackUrlResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("ModifyCallbackUrl", params, headers=headers)
response = json.loads(body)
model = models.ModifyCallbackUrlResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def ModifyDevice(self, request):
r"""用于修改设备信息
:param request: Request instance for ModifyDevice.
:type request: :class:`tencentcloud.trro.v20220325.models.ModifyDeviceRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.ModifyDeviceResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("ModifyDevice", params, headers=headers)
response = json.loads(body)
model = models.ModifyDeviceResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def ModifyPolicy(self, request):
r"""用于修改权限配置
:param request: Request instance for ModifyPolicy.
:type request: :class:`tencentcloud.trro.v20220325.models.ModifyPolicyRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.ModifyPolicyResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("ModifyPolicy", params, headers=headers)
response = json.loads(body)
model = models.ModifyPolicyResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def ModifyProject(self, request):
r"""用于修改项目信息
:param request: Request instance for ModifyProject.
:type request: :class:`tencentcloud.trro.v20220325.models.ModifyProjectRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.ModifyProjectResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("ModifyProject", params, headers=headers)
response = json.loads(body)
model = models.ModifyProjectResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def ModifyProjectSecMode(self, request):
r"""使用项目共享密钥可动态生成设备登录密钥,登录前无需对设备进行提前注册,适合希望简化业务流程的客户。由于是公共密钥,请务必注意保护项目共享密钥,并及时更新。建议项目共享密钥保存在服务器侧。由服务器生成设备登录密码下发给设备,避免密钥保存在客户端侧产生的密钥泄露风险。
开启项目共享密钥后,对于已注册的设备,仍可使用原设备密码登录。若希望仅能通过共享密钥生成密码登录,请通过云 API 将设备密码更新为"USEPROJECTKEYPWD"
:param request: Request instance for ModifyProjectSecMode.
:type request: :class:`tencentcloud.trro.v20220325.models.ModifyProjectSecModeRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.ModifyProjectSecModeResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("ModifyProjectSecMode", params, headers=headers)
response = json.loads(body)
model = models.ModifyProjectSecModeResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def StartPublishLiveStream(self, request):
r"""启动一个混流转推任务,将 TRTC 房间的多路音视频流混成一路音视频流,编码后推到直播 CDN 或者回推到 TRTC 房间。也支持不转码直接转推 TRTC 房间的单路流。启动成功后,会返回一个 SdkAppid 维度唯一的任务 IdTaskId。您需要保存该 TaskId后续需要依赖此 TaskId 更新和结束任务。
:param request: Request instance for StartPublishLiveStream.
:type request: :class:`tencentcloud.trro.v20220325.models.StartPublishLiveStreamRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.StartPublishLiveStreamResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("StartPublishLiveStream", params, headers=headers)
response = json.loads(body)
model = models.StartPublishLiveStreamResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))
def StopPublishLiveStream(self, request):
r"""停止指定的混流转推任务。如果没有调用 Stop 接口停止任务所有参与混流转推的主播离开房间超过MaxIdleTime 设置的时间后,任务也会自动停止。
:param request: Request instance for StopPublishLiveStream.
:type request: :class:`tencentcloud.trro.v20220325.models.StopPublishLiveStreamRequest`
:rtype: :class:`tencentcloud.trro.v20220325.models.StopPublishLiveStreamResponse`
"""
try:
params = request._serialize()
headers = request.headers
body = self.call("StopPublishLiveStream", params, headers=headers)
response = json.loads(body)
model = models.StopPublishLiveStreamResponse()
model._deserialize(response["Response"])
return model
except Exception as e:
if isinstance(e, TencentCloudSDKException):
raise
else:
raise TencentCloudSDKException(type(e).__name__, str(e))

View File

@@ -0,0 +1,588 @@
# -*- coding: utf8 -*-
# Copyright (c) 2017-2025 Tencent. All Rights Reserved.
#
# 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.
from tencentcloud.common.abstract_client_async import AbstractClient
from tencentcloud.trro.v20220325 import models
from typing import Dict
class TrroClient(AbstractClient):
_apiVersion = '2022-03-25'
_endpoint = 'trro.tencentcloudapi.com'
_service = 'trro'
async def BatchDeleteDevices(
self,
request: models.BatchDeleteDevicesRequest,
opts: Dict = None,
) -> models.BatchDeleteDevicesResponse:
"""
用于批量删除设备
"""
kwargs = {}
kwargs["action"] = "BatchDeleteDevices"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.BatchDeleteDevicesResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def BatchDeletePolicy(
self,
request: models.BatchDeletePolicyRequest,
opts: Dict = None,
) -> models.BatchDeletePolicyResponse:
"""
用于批量删除修改权限配置
"""
kwargs = {}
kwargs["action"] = "BatchDeletePolicy"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.BatchDeletePolicyResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def BoundLicenses(
self,
request: models.BoundLicensesRequest,
opts: Dict = None,
) -> models.BoundLicensesResponse:
"""
为推流设备绑定license优先绑定到期时间最近的到期时间相同优先绑定月包
"""
kwargs = {}
kwargs["action"] = "BoundLicenses"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.BoundLicensesResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def CreateCloudRecording(
self,
request: models.CreateCloudRecordingRequest,
opts: Dict = None,
) -> models.CreateCloudRecordingResponse:
"""
启动云端录制功能,完成房间内的音视频录制,并上传到指定的云存储。
"""
kwargs = {}
kwargs["action"] = "CreateCloudRecording"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.CreateCloudRecordingResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def CreateDevice(
self,
request: models.CreateDeviceRequest,
opts: Dict = None,
) -> models.CreateDeviceResponse:
"""
用于创建设备
"""
kwargs = {}
kwargs["action"] = "CreateDevice"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.CreateDeviceResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def CreateProject(
self,
request: models.CreateProjectRequest,
opts: Dict = None,
) -> models.CreateProjectResponse:
"""
用于创建项目
"""
kwargs = {}
kwargs["action"] = "CreateProject"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.CreateProjectResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DeleteCloudRecording(
self,
request: models.DeleteCloudRecordingRequest,
opts: Dict = None,
) -> models.DeleteCloudRecordingResponse:
"""
成功开启录制后,可以使用此接口来停止录制任务。停止录制成功后不代表文件全部传输完成,如果未完成后台将会继续上传文件,成功后通过事件回调通知客户文件全部传输完成状态。
"""
kwargs = {}
kwargs["action"] = "DeleteCloudRecording"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DeleteCloudRecordingResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DeleteProject(
self,
request: models.DeleteProjectRequest,
opts: Dict = None,
) -> models.DeleteProjectResponse:
"""
用于删除项目
"""
kwargs = {}
kwargs["action"] = "DeleteProject"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DeleteProjectResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeDeviceInfo(
self,
request: models.DescribeDeviceInfoRequest,
opts: Dict = None,
) -> models.DescribeDeviceInfoResponse:
"""
用于获取指定设备信息
"""
kwargs = {}
kwargs["action"] = "DescribeDeviceInfo"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeDeviceInfoResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeDeviceList(
self,
request: models.DescribeDeviceListRequest,
opts: Dict = None,
) -> models.DescribeDeviceListResponse:
"""
用于获取设备信息列表
"""
kwargs = {}
kwargs["action"] = "DescribeDeviceList"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeDeviceListResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeDeviceSessionDetails(
self,
request: models.DescribeDeviceSessionDetailsRequest,
opts: Dict = None,
) -> models.DescribeDeviceSessionDetailsResponse:
"""
获取设备会话数据详单
"""
kwargs = {}
kwargs["action"] = "DescribeDeviceSessionDetails"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeDeviceSessionDetailsResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeDeviceSessionList(
self,
request: models.DescribeDeviceSessionListRequest,
opts: Dict = None,
) -> models.DescribeDeviceSessionListResponse:
"""
获取设备会话列表
"""
kwargs = {}
kwargs["action"] = "DescribeDeviceSessionList"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeDeviceSessionListResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribePolicy(
self,
request: models.DescribePolicyRequest,
opts: Dict = None,
) -> models.DescribePolicyResponse:
"""
用于查看权限配置
"""
kwargs = {}
kwargs["action"] = "DescribePolicy"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribePolicyResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeProjectInfo(
self,
request: models.DescribeProjectInfoRequest,
opts: Dict = None,
) -> models.DescribeProjectInfoResponse:
"""
用于获取项目信息
"""
kwargs = {}
kwargs["action"] = "DescribeProjectInfo"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeProjectInfoResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeProjectList(
self,
request: models.DescribeProjectListRequest,
opts: Dict = None,
) -> models.DescribeProjectListResponse:
"""
用于获取项目列表
"""
kwargs = {}
kwargs["action"] = "DescribeProjectList"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeProjectListResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeRecentSessionList(
self,
request: models.DescribeRecentSessionListRequest,
opts: Dict = None,
) -> models.DescribeRecentSessionListResponse:
"""
获取最新设备会话列表
"""
kwargs = {}
kwargs["action"] = "DescribeRecentSessionList"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeRecentSessionListResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeSessionStatistics(
self,
request: models.DescribeSessionStatisticsRequest,
opts: Dict = None,
) -> models.DescribeSessionStatisticsResponse:
"""
获取会话统计值
"""
kwargs = {}
kwargs["action"] = "DescribeSessionStatistics"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeSessionStatisticsResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def DescribeSessionStatisticsByInterval(
self,
request: models.DescribeSessionStatisticsByIntervalRequest,
opts: Dict = None,
) -> models.DescribeSessionStatisticsByIntervalResponse:
"""
获取各时间段的会话统计值
"""
kwargs = {}
kwargs["action"] = "DescribeSessionStatisticsByInterval"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.DescribeSessionStatisticsByIntervalResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def GetDeviceLicense(
self,
request: models.GetDeviceLicenseRequest,
opts: Dict = None,
) -> models.GetDeviceLicenseResponse:
"""
获取设备已经绑定的可用授权数量
"""
kwargs = {}
kwargs["action"] = "GetDeviceLicense"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.GetDeviceLicenseResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def GetDevices(
self,
request: models.GetDevicesRequest,
opts: Dict = None,
) -> models.GetDevicesResponse:
"""
查询用户设备的授权绑定情况
"""
kwargs = {}
kwargs["action"] = "GetDevices"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.GetDevicesResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def GetDurationDetails(
self,
request: models.GetDurationDetailsRequest,
opts: Dict = None,
) -> models.GetDurationDetailsResponse:
"""
查询该时间段、对应项目、设备的不同分辨率的通话时长流水,流水以日期(天)为单位
"""
kwargs = {}
kwargs["action"] = "GetDurationDetails"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.GetDurationDetailsResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def GetLicenseStat(
self,
request: models.GetLicenseStatRequest,
opts: Dict = None,
) -> models.GetLicenseStatResponse:
"""
统计license类型数量
"""
kwargs = {}
kwargs["action"] = "GetLicenseStat"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.GetLicenseStatResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def GetLicenses(
self,
request: models.GetLicensesRequest,
opts: Dict = None,
) -> models.GetLicensesResponse:
"""
按授权查看license列表
"""
kwargs = {}
kwargs["action"] = "GetLicenses"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.GetLicensesResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def GetTotalDuration(
self,
request: models.GetTotalDurationRequest,
opts: Dict = None,
) -> models.GetTotalDurationResponse:
"""
查询该时间段、对应项目、设备的不同分辨率的通话时长汇总
"""
kwargs = {}
kwargs["action"] = "GetTotalDuration"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.GetTotalDurationResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def ModifyCallbackUrl(
self,
request: models.ModifyCallbackUrlRequest,
opts: Dict = None,
) -> models.ModifyCallbackUrlResponse:
"""
设置回调URL
录制回调事件内容参考https://cloud.tencent.com/document/product/647/81113
转推回调事件内容参考https://cloud.tencent.com/document/product/647/88552
"""
kwargs = {}
kwargs["action"] = "ModifyCallbackUrl"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.ModifyCallbackUrlResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def ModifyDevice(
self,
request: models.ModifyDeviceRequest,
opts: Dict = None,
) -> models.ModifyDeviceResponse:
"""
用于修改设备信息
"""
kwargs = {}
kwargs["action"] = "ModifyDevice"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.ModifyDeviceResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def ModifyPolicy(
self,
request: models.ModifyPolicyRequest,
opts: Dict = None,
) -> models.ModifyPolicyResponse:
"""
用于修改权限配置
"""
kwargs = {}
kwargs["action"] = "ModifyPolicy"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.ModifyPolicyResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def ModifyProject(
self,
request: models.ModifyProjectRequest,
opts: Dict = None,
) -> models.ModifyProjectResponse:
"""
用于修改项目信息
"""
kwargs = {}
kwargs["action"] = "ModifyProject"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.ModifyProjectResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def ModifyProjectSecMode(
self,
request: models.ModifyProjectSecModeRequest,
opts: Dict = None,
) -> models.ModifyProjectSecModeResponse:
"""
使用项目共享密钥可动态生成设备登录密钥,登录前无需对设备进行提前注册,适合希望简化业务流程的客户。由于是公共密钥,请务必注意保护项目共享密钥,并及时更新。建议项目共享密钥保存在服务器侧。由服务器生成设备登录密码下发给设备,避免密钥保存在客户端侧产生的密钥泄露风险。
开启项目共享密钥后,对于已注册的设备,仍可使用原设备密码登录。若希望仅能通过共享密钥生成密码登录,请通过云 API 将设备密码更新为"USEPROJECTKEYPWD"
"""
kwargs = {}
kwargs["action"] = "ModifyProjectSecMode"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.ModifyProjectSecModeResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def StartPublishLiveStream(
self,
request: models.StartPublishLiveStreamRequest,
opts: Dict = None,
) -> models.StartPublishLiveStreamResponse:
"""
启动一个混流转推任务,将 TRTC 房间的多路音视频流混成一路音视频流,编码后推到直播 CDN 或者回推到 TRTC 房间。也支持不转码直接转推 TRTC 房间的单路流。启动成功后,会返回一个 SdkAppid 维度唯一的任务 IdTaskId。您需要保存该 TaskId后续需要依赖此 TaskId 更新和结束任务。
"""
kwargs = {}
kwargs["action"] = "StartPublishLiveStream"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.StartPublishLiveStreamResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)
async def StopPublishLiveStream(
self,
request: models.StopPublishLiveStreamRequest,
opts: Dict = None,
) -> models.StopPublishLiveStreamResponse:
"""
停止指定的混流转推任务。如果没有调用 Stop 接口停止任务所有参与混流转推的主播离开房间超过MaxIdleTime 设置的时间后,任务也会自动停止。
"""
kwargs = {}
kwargs["action"] = "StopPublishLiveStream"
kwargs["params"] = request._serialize()
kwargs["resp_cls"] = models.StopPublishLiveStreamResponse
kwargs["headers"] = request.headers
kwargs["opts"] = opts or {}
return await self.call_and_deserialize(**kwargs)