# -*- coding: utf8 -*- # Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. 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 warnings from tencentcloud.common.abstract_model import AbstractModel class AddFairPlayPemRequest(AbstractModel): """AddFairPlayPem请求参数结构体 """ def __init__(self): r""" :param _Pem: 加密后的fairplay方案申请时使用的私钥。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对私钥文件中的字段进行加密,并对加密结果进行base64编码。 :type Pem: str :param _Ask: 加密后的fairplay方案申请返回的ask数据。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对Ask字符串进行加密,并对加密结果进行base64编码。 :type Ask: str :param _PemDecryptKey: 私钥的解密密钥。 openssl在生成rsa时,可能会需要设置加密密钥,请记住设置的密钥。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对解密密钥进行加密,并对加密结果进行base64编码。 :type PemDecryptKey: str :param _BailorId: 委托者Id,适用于托管自身证书的客户。普通客户无需填该字段。 :type BailorId: int :param _Priority: 私钥的优先级,优先级数值越高,优先级越高。 该值可以不传,后台将自动分配一个优先级。 :type Priority: int """ self._Pem = None self._Ask = None self._PemDecryptKey = None self._BailorId = None self._Priority = None @property def Pem(self): """加密后的fairplay方案申请时使用的私钥。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对私钥文件中的字段进行加密,并对加密结果进行base64编码。 :rtype: str """ return self._Pem @Pem.setter def Pem(self, Pem): self._Pem = Pem @property def Ask(self): """加密后的fairplay方案申请返回的ask数据。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对Ask字符串进行加密,并对加密结果进行base64编码。 :rtype: str """ return self._Ask @Ask.setter def Ask(self, Ask): self._Ask = Ask @property def PemDecryptKey(self): """私钥的解密密钥。 openssl在生成rsa时,可能会需要设置加密密钥,请记住设置的密钥。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对解密密钥进行加密,并对加密结果进行base64编码。 :rtype: str """ return self._PemDecryptKey @PemDecryptKey.setter def PemDecryptKey(self, PemDecryptKey): self._PemDecryptKey = PemDecryptKey @property def BailorId(self): """委托者Id,适用于托管自身证书的客户。普通客户无需填该字段。 :rtype: int """ return self._BailorId @BailorId.setter def BailorId(self, BailorId): self._BailorId = BailorId @property def Priority(self): """私钥的优先级,优先级数值越高,优先级越高。 该值可以不传,后台将自动分配一个优先级。 :rtype: int """ return self._Priority @Priority.setter def Priority(self, Priority): self._Priority = Priority def _deserialize(self, params): self._Pem = params.get("Pem") self._Ask = params.get("Ask") self._PemDecryptKey = params.get("PemDecryptKey") self._BailorId = params.get("BailorId") self._Priority = params.get("Priority") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class AddFairPlayPemResponse(AbstractModel): """AddFairPlayPem返回参数结构体 """ def __init__(self): r""" :param _FairPlayPemId: 设置私钥后,后台返回的pem id,用来唯一标识一个私钥。 注意:此字段可能返回 null,表示取不到有效值。 :type FairPlayPemId: int :param _Priority: 私钥的优先级,优先级数值越高,优先级越高。 注意:此字段可能返回 null,表示取不到有效值。 :type Priority: int :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._FairPlayPemId = None self._Priority = None self._RequestId = None @property def FairPlayPemId(self): """设置私钥后,后台返回的pem id,用来唯一标识一个私钥。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: int """ return self._FairPlayPemId @FairPlayPemId.setter def FairPlayPemId(self, FairPlayPemId): self._FairPlayPemId = FairPlayPemId @property def Priority(self): """私钥的优先级,优先级数值越高,优先级越高。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: int """ return self._Priority @Priority.setter def Priority(self, Priority): self._Priority = Priority @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._FairPlayPemId = params.get("FairPlayPemId") self._Priority = params.get("Priority") self._RequestId = params.get("RequestId") class CreateEncryptKeysRequest(AbstractModel): """CreateEncryptKeys请求参数结构体 """ def __init__(self): r""" :param _DrmType: 使用的DRM方案类型,接口取值WIDEVINE、FAIRPLAY、NORMALAES。 :type DrmType: str :param _Keys: 设置的加密密钥列表。 :type Keys: list of KeyParam :param _ContentId: 一个加密内容的唯一标识。 :type ContentId: str :param _ContentType: 内容类型。接口取值VodVideo,LiveVideo。 :type ContentType: str """ self._DrmType = None self._Keys = None self._ContentId = None self._ContentType = None @property def DrmType(self): """使用的DRM方案类型,接口取值WIDEVINE、FAIRPLAY、NORMALAES。 :rtype: str """ return self._DrmType @DrmType.setter def DrmType(self, DrmType): self._DrmType = DrmType @property def Keys(self): """设置的加密密钥列表。 :rtype: list of KeyParam """ return self._Keys @Keys.setter def Keys(self, Keys): self._Keys = Keys @property def ContentId(self): """一个加密内容的唯一标识。 :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def ContentType(self): """内容类型。接口取值VodVideo,LiveVideo。 :rtype: str """ return self._ContentType @ContentType.setter def ContentType(self, ContentType): self._ContentType = ContentType def _deserialize(self, params): self._DrmType = params.get("DrmType") if params.get("Keys") is not None: self._Keys = [] for item in params.get("Keys"): obj = KeyParam() obj._deserialize(item) self._Keys.append(obj) self._ContentId = params.get("ContentId") self._ContentType = params.get("ContentType") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class CreateEncryptKeysResponse(AbstractModel): """CreateEncryptKeys返回参数结构体 """ def __init__(self): r""" :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._RequestId = None @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._RequestId = params.get("RequestId") class CreateLicenseRequest(AbstractModel): """CreateLicense请求参数结构体 """ def __init__(self): r""" :param _DrmType: DRM方案类型,接口取值:WIDEVINE,FAIRPLAY。 :type DrmType: str :param _LicenseRequest: Base64编码的终端设备License Request数据。 :type LicenseRequest: str :param _ContentType: 内容类型,接口取值:VodVideo,LiveVideo。 :type ContentType: str :param _Tracks: 授权播放的Track列表。 该值为空时,默认授权所有track播放。 :type Tracks: list of str :param _PlaybackPolicy: 播放策略参数。 :type PlaybackPolicy: :class:`tencentcloud.drm.v20181115.models.PlaybackPolicy` :param _WidevineSecurityLevel: Widevine安全级别,接口取值[L1, L2, L3]。 安全级别定义参考Widevine安全级别定义。 :type WidevineSecurityLevel: str """ self._DrmType = None self._LicenseRequest = None self._ContentType = None self._Tracks = None self._PlaybackPolicy = None self._WidevineSecurityLevel = None @property def DrmType(self): """DRM方案类型,接口取值:WIDEVINE,FAIRPLAY。 :rtype: str """ return self._DrmType @DrmType.setter def DrmType(self, DrmType): self._DrmType = DrmType @property def LicenseRequest(self): """Base64编码的终端设备License Request数据。 :rtype: str """ return self._LicenseRequest @LicenseRequest.setter def LicenseRequest(self, LicenseRequest): self._LicenseRequest = LicenseRequest @property def ContentType(self): """内容类型,接口取值:VodVideo,LiveVideo。 :rtype: str """ return self._ContentType @ContentType.setter def ContentType(self, ContentType): self._ContentType = ContentType @property def Tracks(self): """授权播放的Track列表。 该值为空时,默认授权所有track播放。 :rtype: list of str """ return self._Tracks @Tracks.setter def Tracks(self, Tracks): self._Tracks = Tracks @property def PlaybackPolicy(self): """播放策略参数。 :rtype: :class:`tencentcloud.drm.v20181115.models.PlaybackPolicy` """ return self._PlaybackPolicy @PlaybackPolicy.setter def PlaybackPolicy(self, PlaybackPolicy): self._PlaybackPolicy = PlaybackPolicy @property def WidevineSecurityLevel(self): """Widevine安全级别,接口取值[L1, L2, L3]。 安全级别定义参考Widevine安全级别定义。 :rtype: str """ return self._WidevineSecurityLevel @WidevineSecurityLevel.setter def WidevineSecurityLevel(self, WidevineSecurityLevel): self._WidevineSecurityLevel = WidevineSecurityLevel def _deserialize(self, params): self._DrmType = params.get("DrmType") self._LicenseRequest = params.get("LicenseRequest") self._ContentType = params.get("ContentType") self._Tracks = params.get("Tracks") if params.get("PlaybackPolicy") is not None: self._PlaybackPolicy = PlaybackPolicy() self._PlaybackPolicy._deserialize(params.get("PlaybackPolicy")) self._WidevineSecurityLevel = params.get("WidevineSecurityLevel") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class CreateLicenseResponse(AbstractModel): """CreateLicense返回参数结构体 """ def __init__(self): r""" :param _License: Base64 编码的许可证二进制数据。 :type License: str :param _ContentId: 加密内容的内容ID :type ContentId: str :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._License = None self._ContentId = None self._RequestId = None @property def License(self): """Base64 编码的许可证二进制数据。 :rtype: str """ return self._License @License.setter def License(self, License): self._License = License @property def ContentId(self): """加密内容的内容ID :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._License = params.get("License") self._ContentId = params.get("ContentId") self._RequestId = params.get("RequestId") class DeleteFairPlayPemRequest(AbstractModel): """DeleteFairPlayPem请求参数结构体 """ def __init__(self): r""" :param _BailorId: 委托者Id,适用于托管自身证书的客户。普通客户无需填该字段。 :type BailorId: int :param _FairPlayPemId: 要删除的pem id。 当未传入该值时,将删除所有的私钥。 :type FairPlayPemId: int """ self._BailorId = None self._FairPlayPemId = None @property def BailorId(self): """委托者Id,适用于托管自身证书的客户。普通客户无需填该字段。 :rtype: int """ return self._BailorId @BailorId.setter def BailorId(self, BailorId): self._BailorId = BailorId @property def FairPlayPemId(self): """要删除的pem id。 当未传入该值时,将删除所有的私钥。 :rtype: int """ return self._FairPlayPemId @FairPlayPemId.setter def FairPlayPemId(self, FairPlayPemId): self._FairPlayPemId = FairPlayPemId def _deserialize(self, params): self._BailorId = params.get("BailorId") self._FairPlayPemId = params.get("FairPlayPemId") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class DeleteFairPlayPemResponse(AbstractModel): """DeleteFairPlayPem返回参数结构体 """ def __init__(self): r""" :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._RequestId = None @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._RequestId = params.get("RequestId") class DescribeAllKeysRequest(AbstractModel): """DescribeAllKeys请求参数结构体 """ def __init__(self): r""" :param _DrmType: 使用的DRM方案类型,接口取值WIDEVINE、FAIRPLAY、NORMALAES。 :type DrmType: str :param _RsaPublicKey: Base64编码的Rsa公钥,用来加密出参中的SessionKey。 如果该参数为空,则出参中SessionKey为明文。 :type RsaPublicKey: str :param _ContentId: 一个加密内容的唯一标识。 :type ContentId: str :param _ContentType: 内容类型。接口取值VodVideo,LiveVideo。 :type ContentType: str """ self._DrmType = None self._RsaPublicKey = None self._ContentId = None self._ContentType = None @property def DrmType(self): """使用的DRM方案类型,接口取值WIDEVINE、FAIRPLAY、NORMALAES。 :rtype: str """ return self._DrmType @DrmType.setter def DrmType(self, DrmType): self._DrmType = DrmType @property def RsaPublicKey(self): """Base64编码的Rsa公钥,用来加密出参中的SessionKey。 如果该参数为空,则出参中SessionKey为明文。 :rtype: str """ return self._RsaPublicKey @RsaPublicKey.setter def RsaPublicKey(self, RsaPublicKey): self._RsaPublicKey = RsaPublicKey @property def ContentId(self): """一个加密内容的唯一标识。 :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def ContentType(self): """内容类型。接口取值VodVideo,LiveVideo。 :rtype: str """ return self._ContentType @ContentType.setter def ContentType(self, ContentType): self._ContentType = ContentType def _deserialize(self, params): self._DrmType = params.get("DrmType") self._RsaPublicKey = params.get("RsaPublicKey") self._ContentId = params.get("ContentId") self._ContentType = params.get("ContentType") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class DescribeAllKeysResponse(AbstractModel): """DescribeAllKeys返回参数结构体 """ def __init__(self): r""" :param _Keys: 加密密钥列表。 注意:此字段可能返回 null,表示取不到有效值。 :type Keys: list of Key :param _SessionKey: 用来加密密钥。 如果入参中带有RsaPublicKey,则SessionKey为使用Rsa公钥加密后的二进制数据,Base64编码字符串。 如果入参中没有RsaPublicKey,则SessionKey为原始数据的字符串形式。 注意:此字段可能返回 null,表示取不到有效值。 :type SessionKey: str :param _ContentId: 内容ID 注意:此字段可能返回 null,表示取不到有效值。 :type ContentId: str :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._Keys = None self._SessionKey = None self._ContentId = None self._RequestId = None @property def Keys(self): """加密密钥列表。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: list of Key """ return self._Keys @Keys.setter def Keys(self, Keys): self._Keys = Keys @property def SessionKey(self): """用来加密密钥。 如果入参中带有RsaPublicKey,则SessionKey为使用Rsa公钥加密后的二进制数据,Base64编码字符串。 如果入参中没有RsaPublicKey,则SessionKey为原始数据的字符串形式。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._SessionKey @SessionKey.setter def SessionKey(self, SessionKey): self._SessionKey = SessionKey @property def ContentId(self): """内容ID 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): if params.get("Keys") is not None: self._Keys = [] for item in params.get("Keys"): obj = Key() obj._deserialize(item) self._Keys.append(obj) self._SessionKey = params.get("SessionKey") self._ContentId = params.get("ContentId") self._RequestId = params.get("RequestId") class DescribeDRMLicenseRequest(AbstractModel): """DescribeDRMLicense请求参数结构体 """ def __init__(self): r""" :param _DrmType: 使用的DRM方案类型,接口取值 NORMALAES 。 :type DrmType: str :param _Tracks: 加密的track列表,接口取值 SD 。 :type Tracks: list of str :param _ContentId: 一个加密内容的唯一标识。 :type ContentId: str :param _ContentType: 内容类型。接口取值 LiveVideo 。 :type ContentType: str """ self._DrmType = None self._Tracks = None self._ContentId = None self._ContentType = None @property def DrmType(self): """使用的DRM方案类型,接口取值 NORMALAES 。 :rtype: str """ return self._DrmType @DrmType.setter def DrmType(self, DrmType): self._DrmType = DrmType @property def Tracks(self): """加密的track列表,接口取值 SD 。 :rtype: list of str """ return self._Tracks @Tracks.setter def Tracks(self, Tracks): self._Tracks = Tracks @property def ContentId(self): """一个加密内容的唯一标识。 :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def ContentType(self): """内容类型。接口取值 LiveVideo 。 :rtype: str """ return self._ContentType @ContentType.setter def ContentType(self, ContentType): self._ContentType = ContentType def _deserialize(self, params): self._DrmType = params.get("DrmType") self._Tracks = params.get("Tracks") self._ContentId = params.get("ContentId") self._ContentType = params.get("ContentType") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class DescribeDRMLicenseResponse(AbstractModel): """DescribeDRMLicense返回参数结构体 """ def __init__(self): r""" :param _ContentId: 内容ID。 :type ContentId: str :param _TXEncryptionToken: 加密密钥。 :type TXEncryptionToken: str :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._ContentId = None self._TXEncryptionToken = None self._RequestId = None @property def ContentId(self): """内容ID。 :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def TXEncryptionToken(self): """加密密钥。 :rtype: str """ return self._TXEncryptionToken @TXEncryptionToken.setter def TXEncryptionToken(self, TXEncryptionToken): self._TXEncryptionToken = TXEncryptionToken @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._ContentId = params.get("ContentId") self._TXEncryptionToken = params.get("TXEncryptionToken") self._RequestId = params.get("RequestId") class DescribeFairPlayPemRequest(AbstractModel): """DescribeFairPlayPem请求参数结构体 """ def __init__(self): r""" :param _BailorId: 委托者Id,适用于托管自身证书的客户。普通客户无需填该字段。 :type BailorId: int :param _FairPlayPemId: 需要查询的pem id。 当该值未填入时,将返回所有的私钥信息。 :type FairPlayPemId: int """ self._BailorId = None self._FairPlayPemId = None @property def BailorId(self): """委托者Id,适用于托管自身证书的客户。普通客户无需填该字段。 :rtype: int """ return self._BailorId @BailorId.setter def BailorId(self, BailorId): self._BailorId = BailorId @property def FairPlayPemId(self): """需要查询的pem id。 当该值未填入时,将返回所有的私钥信息。 :rtype: int """ return self._FairPlayPemId @FairPlayPemId.setter def FairPlayPemId(self, FairPlayPemId): self._FairPlayPemId = FairPlayPemId def _deserialize(self, params): self._BailorId = params.get("BailorId") self._FairPlayPemId = params.get("FairPlayPemId") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class DescribeFairPlayPemResponse(AbstractModel): """DescribeFairPlayPem返回参数结构体 """ def __init__(self): r""" :param _FairPlayPems: 该账户下,所有设置的FairPlay私钥摘要信息 注意:此字段可能返回 null,表示取不到有效值。 :type FairPlayPems: list of FairPlayPemDigestInfo :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._FairPlayPems = None self._RequestId = None @property def FairPlayPems(self): """该账户下,所有设置的FairPlay私钥摘要信息 注意:此字段可能返回 null,表示取不到有效值。 :rtype: list of FairPlayPemDigestInfo """ return self._FairPlayPems @FairPlayPems.setter def FairPlayPems(self, FairPlayPems): self._FairPlayPems = FairPlayPems @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): if params.get("FairPlayPems") is not None: self._FairPlayPems = [] for item in params.get("FairPlayPems"): obj = FairPlayPemDigestInfo() obj._deserialize(item) self._FairPlayPems.append(obj) self._RequestId = params.get("RequestId") class DescribeKeysRequest(AbstractModel): """DescribeKeys请求参数结构体 """ def __init__(self): r""" :param _DrmType: 使用的DRM方案类型,接口取值WIDEVINE、FAIRPLAY、NORMALAES。 :type DrmType: str :param _Tracks: 加密的track列表,接口取值VIDEO、AUDIO。 :type Tracks: list of str :param _ContentType: 内容类型。接口取值VodVideo,LiveVideo :type ContentType: str :param _RsaPublicKey: Base64编码的Rsa公钥,用来加密出参中的SessionKey。 如果该参数为空,则出参中SessionKey为明文。 :type RsaPublicKey: str :param _ContentId: 一个加密内容的唯一标识。 如果该参数为空,则后台自动生成 :type ContentId: str """ self._DrmType = None self._Tracks = None self._ContentType = None self._RsaPublicKey = None self._ContentId = None @property def DrmType(self): """使用的DRM方案类型,接口取值WIDEVINE、FAIRPLAY、NORMALAES。 :rtype: str """ return self._DrmType @DrmType.setter def DrmType(self, DrmType): self._DrmType = DrmType @property def Tracks(self): """加密的track列表,接口取值VIDEO、AUDIO。 :rtype: list of str """ return self._Tracks @Tracks.setter def Tracks(self, Tracks): self._Tracks = Tracks @property def ContentType(self): """内容类型。接口取值VodVideo,LiveVideo :rtype: str """ return self._ContentType @ContentType.setter def ContentType(self, ContentType): self._ContentType = ContentType @property def RsaPublicKey(self): """Base64编码的Rsa公钥,用来加密出参中的SessionKey。 如果该参数为空,则出参中SessionKey为明文。 :rtype: str """ return self._RsaPublicKey @RsaPublicKey.setter def RsaPublicKey(self, RsaPublicKey): self._RsaPublicKey = RsaPublicKey @property def ContentId(self): """一个加密内容的唯一标识。 如果该参数为空,则后台自动生成 :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId def _deserialize(self, params): self._DrmType = params.get("DrmType") self._Tracks = params.get("Tracks") self._ContentType = params.get("ContentType") self._RsaPublicKey = params.get("RsaPublicKey") self._ContentId = params.get("ContentId") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class DescribeKeysResponse(AbstractModel): """DescribeKeys返回参数结构体 """ def __init__(self): r""" :param _Keys: 加密密钥列表 :type Keys: list of Key :param _SessionKey: 用来加密密钥。 如果入参中带有RsaPublicKey,则SessionKey为使用Rsa公钥加密后的二进制数据,Base64编码字符串。 如果入参中没有RsaPublicKey,则SessionKey为原始数据的字符串形式。 :type SessionKey: str :param _ContentId: 内容ID :type ContentId: str :param _Pssh: Widevine方案的Pssh数据,Base64编码。 Fairplay方案无该值。 :type Pssh: str :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._Keys = None self._SessionKey = None self._ContentId = None self._Pssh = None self._RequestId = None @property def Keys(self): """加密密钥列表 :rtype: list of Key """ return self._Keys @Keys.setter def Keys(self, Keys): self._Keys = Keys @property def SessionKey(self): """用来加密密钥。 如果入参中带有RsaPublicKey,则SessionKey为使用Rsa公钥加密后的二进制数据,Base64编码字符串。 如果入参中没有RsaPublicKey,则SessionKey为原始数据的字符串形式。 :rtype: str """ return self._SessionKey @SessionKey.setter def SessionKey(self, SessionKey): self._SessionKey = SessionKey @property def ContentId(self): """内容ID :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def Pssh(self): """Widevine方案的Pssh数据,Base64编码。 Fairplay方案无该值。 :rtype: str """ return self._Pssh @Pssh.setter def Pssh(self, Pssh): self._Pssh = Pssh @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): if params.get("Keys") is not None: self._Keys = [] for item in params.get("Keys"): obj = Key() obj._deserialize(item) self._Keys.append(obj) self._SessionKey = params.get("SessionKey") self._ContentId = params.get("ContentId") self._Pssh = params.get("Pssh") self._RequestId = params.get("RequestId") class DrmOutputObject(AbstractModel): """DRM加密后的输出对象 """ def __init__(self): r""" :param _BucketName: 输出的桶名称。 :type BucketName: str :param _ObjectName: 输出的对象名称。 :type ObjectName: str :param _Para: 输出对象参数。 :type Para: :class:`tencentcloud.drm.v20181115.models.DrmOutputPara` """ self._BucketName = None self._ObjectName = None self._Para = None @property def BucketName(self): """输出的桶名称。 :rtype: str """ return self._BucketName @BucketName.setter def BucketName(self, BucketName): self._BucketName = BucketName @property def ObjectName(self): """输出的对象名称。 :rtype: str """ return self._ObjectName @ObjectName.setter def ObjectName(self, ObjectName): self._ObjectName = ObjectName @property def Para(self): """输出对象参数。 :rtype: :class:`tencentcloud.drm.v20181115.models.DrmOutputPara` """ return self._Para @Para.setter def Para(self, Para): self._Para = Para def _deserialize(self, params): self._BucketName = params.get("BucketName") self._ObjectName = params.get("ObjectName") if params.get("Para") is not None: self._Para = DrmOutputPara() self._Para._deserialize(params.get("Para")) memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class DrmOutputPara(AbstractModel): """Drm加密对象输出参数 """ def __init__(self): r""" :param _Type: 内容类型。例:video,audio,mpd,m3u8 :type Type: str :param _Language: 语言,例: en, zh-cn :type Language: str """ self._Type = None self._Language = None @property def Type(self): """内容类型。例:video,audio,mpd,m3u8 :rtype: str """ return self._Type @Type.setter def Type(self, Type): self._Type = Type @property def Language(self): """语言,例: en, zh-cn :rtype: str """ return self._Language @Language.setter def Language(self, Language): self._Language = Language def _deserialize(self, params): self._Type = params.get("Type") self._Language = params.get("Language") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class DrmSourceObject(AbstractModel): """用于DRM加密的源对象 """ def __init__(self): r""" :param _BucketName: 输入的桶名称。 :type BucketName: str :param _ObjectName: 输入对象名称。 :type ObjectName: str """ self._BucketName = None self._ObjectName = None @property def BucketName(self): """输入的桶名称。 :rtype: str """ return self._BucketName @BucketName.setter def BucketName(self, BucketName): self._BucketName = BucketName @property def ObjectName(self): """输入对象名称。 :rtype: str """ return self._ObjectName @ObjectName.setter def ObjectName(self, ObjectName): self._ObjectName = ObjectName def _deserialize(self, params): self._BucketName = params.get("BucketName") self._ObjectName = params.get("ObjectName") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class FairPlayPemDigestInfo(AbstractModel): """FairPlay 私钥摘要信息。 """ def __init__(self): r""" :param _FairPlayPemId: fairplay 私钥pem id。 注意:此字段可能返回 null,表示取不到有效值。 :type FairPlayPemId: int :param _Priority: 私钥的优先级。 注意:此字段可能返回 null,表示取不到有效值。 :type Priority: int :param _Md5Pem: 私钥的md5 信息。 注意:此字段可能返回 null,表示取不到有效值。 :type Md5Pem: str :param _Md5Ask: ASK的md5信息。 注意:此字段可能返回 null,表示取不到有效值。 :type Md5Ask: str :param _Md5PemDecryptKey: 私钥解密密钥的md5值。 注意:此字段可能返回 null,表示取不到有效值。 :type Md5PemDecryptKey: str """ self._FairPlayPemId = None self._Priority = None self._Md5Pem = None self._Md5Ask = None self._Md5PemDecryptKey = None @property def FairPlayPemId(self): """fairplay 私钥pem id。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: int """ return self._FairPlayPemId @FairPlayPemId.setter def FairPlayPemId(self, FairPlayPemId): self._FairPlayPemId = FairPlayPemId @property def Priority(self): """私钥的优先级。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: int """ return self._Priority @Priority.setter def Priority(self, Priority): self._Priority = Priority @property def Md5Pem(self): """私钥的md5 信息。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._Md5Pem @Md5Pem.setter def Md5Pem(self, Md5Pem): self._Md5Pem = Md5Pem @property def Md5Ask(self): """ASK的md5信息。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._Md5Ask @Md5Ask.setter def Md5Ask(self, Md5Ask): self._Md5Ask = Md5Ask @property def Md5PemDecryptKey(self): """私钥解密密钥的md5值。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._Md5PemDecryptKey @Md5PemDecryptKey.setter def Md5PemDecryptKey(self, Md5PemDecryptKey): self._Md5PemDecryptKey = Md5PemDecryptKey def _deserialize(self, params): self._FairPlayPemId = params.get("FairPlayPemId") self._Priority = params.get("Priority") self._Md5Pem = params.get("Md5Pem") self._Md5Ask = params.get("Md5Ask") self._Md5PemDecryptKey = params.get("Md5PemDecryptKey") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class GenerateTDRMKeyRequest(AbstractModel): """GenerateTDRMKey请求参数结构体 """ def __init__(self): r""" :param _DrmType: 使用的DRM方案类型,接口取值 NORMALAES 。 :type DrmType: str :param _Tracks: 加密的track列表,接口取值 SD 。 :type Tracks: list of str :param _ContentId: 一个加密内容的唯一标识。 :type ContentId: str :param _ContentType: 内容类型。接口取值 LiveVideo 。 :type ContentType: str """ self._DrmType = None self._Tracks = None self._ContentId = None self._ContentType = None @property def DrmType(self): """使用的DRM方案类型,接口取值 NORMALAES 。 :rtype: str """ return self._DrmType @DrmType.setter def DrmType(self, DrmType): self._DrmType = DrmType @property def Tracks(self): """加密的track列表,接口取值 SD 。 :rtype: list of str """ return self._Tracks @Tracks.setter def Tracks(self, Tracks): self._Tracks = Tracks @property def ContentId(self): """一个加密内容的唯一标识。 :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def ContentType(self): """内容类型。接口取值 LiveVideo 。 :rtype: str """ return self._ContentType @ContentType.setter def ContentType(self, ContentType): self._ContentType = ContentType def _deserialize(self, params): self._DrmType = params.get("DrmType") self._Tracks = params.get("Tracks") self._ContentId = params.get("ContentId") self._ContentType = params.get("ContentType") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class GenerateTDRMKeyResponse(AbstractModel): """GenerateTDRMKey返回参数结构体 """ def __init__(self): r""" :param _ContentId: 内容ID。 :type ContentId: str :param _TXEncryptionToken: 加密密钥。 :type TXEncryptionToken: str :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._ContentId = None self._TXEncryptionToken = None self._RequestId = None @property def ContentId(self): """内容ID。 :rtype: str """ return self._ContentId @ContentId.setter def ContentId(self, ContentId): self._ContentId = ContentId @property def TXEncryptionToken(self): """加密密钥。 :rtype: str """ return self._TXEncryptionToken @TXEncryptionToken.setter def TXEncryptionToken(self, TXEncryptionToken): self._TXEncryptionToken = TXEncryptionToken @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._ContentId = params.get("ContentId") self._TXEncryptionToken = params.get("TXEncryptionToken") self._RequestId = params.get("RequestId") class Key(AbstractModel): """DRM加密密钥 """ def __init__(self): r""" :param _Track: 加密track类型。Widevine支持SD、HD、UHD1、UHD2、AUDIO。Fairplay只支持HD。 :type Track: str :param _KeyId: 密钥ID。 :type KeyId: str :param _Key: 原始Key使用AES-128 ECB模式和SessionKey加密的后的二进制数据,Base64编码的字符串。 :type Key: str :param _Iv: 原始IV使用AES-128 ECB模式和SessionKey加密的后的二进制数据,Base64编码的字符串。 :type Iv: str :param _InsertTimestamp: 该key生成时的时间戳 注意:此字段可能返回 null,表示取不到有效值。 :type InsertTimestamp: int """ self._Track = None self._KeyId = None self._Key = None self._Iv = None self._InsertTimestamp = None @property def Track(self): """加密track类型。Widevine支持SD、HD、UHD1、UHD2、AUDIO。Fairplay只支持HD。 :rtype: str """ return self._Track @Track.setter def Track(self, Track): self._Track = Track @property def KeyId(self): """密钥ID。 :rtype: str """ return self._KeyId @KeyId.setter def KeyId(self, KeyId): self._KeyId = KeyId @property def Key(self): """原始Key使用AES-128 ECB模式和SessionKey加密的后的二进制数据,Base64编码的字符串。 :rtype: str """ return self._Key @Key.setter def Key(self, Key): self._Key = Key @property def Iv(self): """原始IV使用AES-128 ECB模式和SessionKey加密的后的二进制数据,Base64编码的字符串。 :rtype: str """ return self._Iv @Iv.setter def Iv(self, Iv): self._Iv = Iv @property def InsertTimestamp(self): """该key生成时的时间戳 注意:此字段可能返回 null,表示取不到有效值。 :rtype: int """ return self._InsertTimestamp @InsertTimestamp.setter def InsertTimestamp(self, InsertTimestamp): self._InsertTimestamp = InsertTimestamp def _deserialize(self, params): self._Track = params.get("Track") self._KeyId = params.get("KeyId") self._Key = params.get("Key") self._Iv = params.get("Iv") self._InsertTimestamp = params.get("InsertTimestamp") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class KeyParam(AbstractModel): """设置加密密钥所需的参数 """ def __init__(self): r""" :param _Track: 加密track类型。取值范围: SD、HD、UHD1、UHD2、AUDIO :type Track: str :param _Key: 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对解密密钥进行加密,并对加密结果进行base64编码。 :type Key: str :param _KeyId: 密钥ID。 :type KeyId: str :param _Iv: 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对解密密钥进行加密,并对加密结果进行base64编码。 :type Iv: str """ self._Track = None self._Key = None self._KeyId = None self._Iv = None @property def Track(self): """加密track类型。取值范围: SD、HD、UHD1、UHD2、AUDIO :rtype: str """ return self._Track @Track.setter def Track(self, Track): self._Track = Track @property def Key(self): """请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对解密密钥进行加密,并对加密结果进行base64编码。 :rtype: str """ return self._Key @Key.setter def Key(self, Key): self._Key = Key @property def KeyId(self): """密钥ID。 :rtype: str """ return self._KeyId @KeyId.setter def KeyId(self, KeyId): self._KeyId = KeyId @property def Iv(self): """请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对解密密钥进行加密,并对加密结果进行base64编码。 :rtype: str """ return self._Iv @Iv.setter def Iv(self, Iv): self._Iv = Iv def _deserialize(self, params): self._Track = params.get("Track") self._Key = params.get("Key") self._KeyId = params.get("KeyId") self._Iv = params.get("Iv") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class ModifyFairPlayPemRequest(AbstractModel): """ModifyFairPlayPem请求参数结构体 """ def __init__(self): r""" :param _Pem: 加密后的fairplay方案申请时使用的私钥。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对私钥文件中的字段进行加密,并对加密结果进行base64编码。 :type Pem: str :param _Ask: 加密后的fairplay方案申请返回的ask数据。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对Ask字符串进行加密,并对加密结果进行base64编码。 :type Ask: str :param _FairPlayPemId: 要修改的私钥id :type FairPlayPemId: int :param _PemDecryptKey: 私钥的解密密钥。 openssl在生成rsa时,可能会需要设置加密密钥,请记住设置的密钥。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对解密密钥进行加密,并对加密结果进行base64编码。 :type PemDecryptKey: str :param _BailorId: 委托者Id,适用于托管自身证书的客户。普通客户无需填该字段。 :type BailorId: int :param _Priority: 私钥的优先级,优先级数值越高,优先级越高。 该值可以不传,后台将自动分配一个优先级。 :type Priority: int """ self._Pem = None self._Ask = None self._FairPlayPemId = None self._PemDecryptKey = None self._BailorId = None self._Priority = None @property def Pem(self): """加密后的fairplay方案申请时使用的私钥。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对私钥文件中的字段进行加密,并对加密结果进行base64编码。 :rtype: str """ return self._Pem @Pem.setter def Pem(self, Pem): self._Pem = Pem @property def Ask(self): """加密后的fairplay方案申请返回的ask数据。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对Ask字符串进行加密,并对加密结果进行base64编码。 :rtype: str """ return self._Ask @Ask.setter def Ask(self, Ask): self._Ask = Ask @property def FairPlayPemId(self): """要修改的私钥id :rtype: int """ return self._FairPlayPemId @FairPlayPemId.setter def FairPlayPemId(self, FairPlayPemId): self._FairPlayPemId = FairPlayPemId @property def PemDecryptKey(self): """私钥的解密密钥。 openssl在生成rsa时,可能会需要设置加密密钥,请记住设置的密钥。 请使用腾讯云DRM 提供的公钥,使用rsa加密算法,PKCS1填充方式对解密密钥进行加密,并对加密结果进行base64编码。 :rtype: str """ return self._PemDecryptKey @PemDecryptKey.setter def PemDecryptKey(self, PemDecryptKey): self._PemDecryptKey = PemDecryptKey @property def BailorId(self): """委托者Id,适用于托管自身证书的客户。普通客户无需填该字段。 :rtype: int """ return self._BailorId @BailorId.setter def BailorId(self, BailorId): self._BailorId = BailorId @property def Priority(self): """私钥的优先级,优先级数值越高,优先级越高。 该值可以不传,后台将自动分配一个优先级。 :rtype: int """ return self._Priority @Priority.setter def Priority(self, Priority): self._Priority = Priority def _deserialize(self, params): self._Pem = params.get("Pem") self._Ask = params.get("Ask") self._FairPlayPemId = params.get("FairPlayPemId") self._PemDecryptKey = params.get("PemDecryptKey") self._BailorId = params.get("BailorId") self._Priority = params.get("Priority") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class ModifyFairPlayPemResponse(AbstractModel): """ModifyFairPlayPem返回参数结构体 """ def __init__(self): r""" :param _FairPlayPemId: 设置私钥后,后台返回的pem id,用来唯一标识一个私钥。 注意:此字段可能返回 null,表示取不到有效值。 :type FairPlayPemId: int :param _Priority: 私钥的优先级,优先级数值越高,优先级越高。 注意:此字段可能返回 null,表示取不到有效值。 :type Priority: int :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._FairPlayPemId = None self._Priority = None self._RequestId = None @property def FairPlayPemId(self): """设置私钥后,后台返回的pem id,用来唯一标识一个私钥。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: int """ return self._FairPlayPemId @FairPlayPemId.setter def FairPlayPemId(self, FairPlayPemId): self._FairPlayPemId = FairPlayPemId @property def Priority(self): """私钥的优先级,优先级数值越高,优先级越高。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: int """ return self._Priority @Priority.setter def Priority(self, Priority): self._Priority = Priority @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._FairPlayPemId = params.get("FairPlayPemId") self._Priority = params.get("Priority") self._RequestId = params.get("RequestId") class PlaybackPolicy(AbstractModel): """播放控制参数 """ def __init__(self): r""" :param _LicenseDurationSeconds: 播放许可证的有效期 :type LicenseDurationSeconds: int :param _PlaybackDurationSeconds: 开始播放后,允许最长播放时间 :type PlaybackDurationSeconds: int """ self._LicenseDurationSeconds = None self._PlaybackDurationSeconds = None @property def LicenseDurationSeconds(self): """播放许可证的有效期 :rtype: int """ return self._LicenseDurationSeconds @LicenseDurationSeconds.setter def LicenseDurationSeconds(self, LicenseDurationSeconds): self._LicenseDurationSeconds = LicenseDurationSeconds @property def PlaybackDurationSeconds(self): """开始播放后,允许最长播放时间 :rtype: int """ return self._PlaybackDurationSeconds @PlaybackDurationSeconds.setter def PlaybackDurationSeconds(self, PlaybackDurationSeconds): self._PlaybackDurationSeconds = PlaybackDurationSeconds def _deserialize(self, params): self._LicenseDurationSeconds = params.get("LicenseDurationSeconds") self._PlaybackDurationSeconds = params.get("PlaybackDurationSeconds") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class StartEncryptionRequest(AbstractModel): """StartEncryption请求参数结构体 """ def __init__(self): r""" :param _CosEndPoint: cos的end point。 :type CosEndPoint: str :param _CosSecretId: cos api密钥id。 :type CosSecretId: str :param _CosSecretKey: cos api密钥。 :type CosSecretKey: str :param _DrmType: 使用的DRM方案类型,接口取值WIDEVINE,FAIRPLAY :type DrmType: str :param _SourceObject: 存储在COS上的原始内容信息 :type SourceObject: :class:`tencentcloud.drm.v20181115.models.DrmSourceObject` :param _OutputObjects: 加密后的内容存储到COS的对象 :type OutputObjects: list of DrmOutputObject """ self._CosEndPoint = None self._CosSecretId = None self._CosSecretKey = None self._DrmType = None self._SourceObject = None self._OutputObjects = None @property def CosEndPoint(self): """cos的end point。 :rtype: str """ return self._CosEndPoint @CosEndPoint.setter def CosEndPoint(self, CosEndPoint): self._CosEndPoint = CosEndPoint @property def CosSecretId(self): """cos api密钥id。 :rtype: str """ return self._CosSecretId @CosSecretId.setter def CosSecretId(self, CosSecretId): self._CosSecretId = CosSecretId @property def CosSecretKey(self): """cos api密钥。 :rtype: str """ return self._CosSecretKey @CosSecretKey.setter def CosSecretKey(self, CosSecretKey): self._CosSecretKey = CosSecretKey @property def DrmType(self): """使用的DRM方案类型,接口取值WIDEVINE,FAIRPLAY :rtype: str """ return self._DrmType @DrmType.setter def DrmType(self, DrmType): self._DrmType = DrmType @property def SourceObject(self): """存储在COS上的原始内容信息 :rtype: :class:`tencentcloud.drm.v20181115.models.DrmSourceObject` """ return self._SourceObject @SourceObject.setter def SourceObject(self, SourceObject): self._SourceObject = SourceObject @property def OutputObjects(self): """加密后的内容存储到COS的对象 :rtype: list of DrmOutputObject """ return self._OutputObjects @OutputObjects.setter def OutputObjects(self, OutputObjects): self._OutputObjects = OutputObjects def _deserialize(self, params): self._CosEndPoint = params.get("CosEndPoint") self._CosSecretId = params.get("CosSecretId") self._CosSecretKey = params.get("CosSecretKey") self._DrmType = params.get("DrmType") if params.get("SourceObject") is not None: self._SourceObject = DrmSourceObject() self._SourceObject._deserialize(params.get("SourceObject")) if params.get("OutputObjects") is not None: self._OutputObjects = [] for item in params.get("OutputObjects"): obj = DrmOutputObject() obj._deserialize(item) self._OutputObjects.append(obj) memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class StartEncryptionResponse(AbstractModel): """StartEncryption返回参数结构体 """ def __init__(self): r""" :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._RequestId = None @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._RequestId = params.get("RequestId")
Memory