# -*- 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 BRIRequest(AbstractModel):
"""BRI请求
"""
def __init__(self):
r"""
:param _Service: 业务名, 必须是以下六个业务名之一(bri_num,bri_dev,bri_ip_bri_apk,bri_url,bri_social)
:type Service: str
:param _QQ: QQ号 (业务名为bri_social时必填, 除非已填Wechat)
:type QQ: str
:param _QQTag: QQ号的可疑标签
:type QQTag: str
:param _Url: 网址 (业务名为bri_url时必填)
:type Url: str
:param _CertMd5: Apk证书Md5 (业务名为bri_apk时必填,除非已填FileMd5)
:type CertMd5: str
:param _PackageName: Apk安装包名 (业务名为bri_apk时必填,除非已填FileMd5)
:type PackageName: str
:param _FileMd5: Apk文件Md5 (业务名为bri_apk时必填,除非已填PackageName,CertMd5,FileSize)
:type FileMd5: str
:param _Scene: 业务场景 (1-注册, 2-登录, 3-发消息)
:type Scene: str
:param _PhoneNumber: 电话号码 (业务名为bri_num时必填)
:type PhoneNumber: str
:param _FileSize: Apk文件大小 (业务名为bri_apk时必填,除非已填FileMd5)
:type FileSize: int
:param _Ip: 点分格式的IP (业务名为bri_ip时必填)
:type Ip: str
:param _Imei: 安卓设备的Imei (业务名为bri_dev时必填)
:type Imei: str
:param _Wechat: 微信号 (业务名为bri_social时必填, 除非已填QQ)
:type Wechat: str
:param _WechatTag: 微信号的可疑标签
:type WechatTag: str
:param _SubAppid: 子客户ID
:type SubAppid: str
"""
self._Service = None
self._QQ = None
self._QQTag = None
self._Url = None
self._CertMd5 = None
self._PackageName = None
self._FileMd5 = None
self._Scene = None
self._PhoneNumber = None
self._FileSize = None
self._Ip = None
self._Imei = None
self._Wechat = None
self._WechatTag = None
self._SubAppid = None
@property
def Service(self):
"""业务名, 必须是以下六个业务名之一(bri_num,bri_dev,bri_ip_bri_apk,bri_url,bri_social)
:rtype: str
"""
return self._Service
@Service.setter
def Service(self, Service):
self._Service = Service
@property
def QQ(self):
"""QQ号 (业务名为bri_social时必填, 除非已填Wechat)
:rtype: str
"""
return self._QQ
@QQ.setter
def QQ(self, QQ):
self._QQ = QQ
@property
def QQTag(self):
"""QQ号的可疑标签
:rtype: str
"""
return self._QQTag
@QQTag.setter
def QQTag(self, QQTag):
self._QQTag = QQTag
@property
def Url(self):
"""网址 (业务名为bri_url时必填)
:rtype: str
"""
return self._Url
@Url.setter
def Url(self, Url):
self._Url = Url
@property
def CertMd5(self):
"""Apk证书Md5 (业务名为bri_apk时必填,除非已填FileMd5)
:rtype: str
"""
return self._CertMd5
@CertMd5.setter
def CertMd5(self, CertMd5):
self._CertMd5 = CertMd5
@property
def PackageName(self):
"""Apk安装包名 (业务名为bri_apk时必填,除非已填FileMd5)
:rtype: str
"""
return self._PackageName
@PackageName.setter
def PackageName(self, PackageName):
self._PackageName = PackageName
@property
def FileMd5(self):
"""Apk文件Md5 (业务名为bri_apk时必填,除非已填PackageName,CertMd5,FileSize)
:rtype: str
"""
return self._FileMd5
@FileMd5.setter
def FileMd5(self, FileMd5):
self._FileMd5 = FileMd5
@property
def Scene(self):
"""业务场景 (1-注册, 2-登录, 3-发消息)
:rtype: str
"""
return self._Scene
@Scene.setter
def Scene(self, Scene):
self._Scene = Scene
@property
def PhoneNumber(self):
"""电话号码 (业务名为bri_num时必填)
:rtype: str
"""
return self._PhoneNumber
@PhoneNumber.setter
def PhoneNumber(self, PhoneNumber):
self._PhoneNumber = PhoneNumber
@property
def FileSize(self):
"""Apk文件大小 (业务名为bri_apk时必填,除非已填FileMd5)
:rtype: int
"""
return self._FileSize
@FileSize.setter
def FileSize(self, FileSize):
self._FileSize = FileSize
@property
def Ip(self):
"""点分格式的IP (业务名为bri_ip时必填)
:rtype: str
"""
return self._Ip
@Ip.setter
def Ip(self, Ip):
self._Ip = Ip
@property
def Imei(self):
"""安卓设备的Imei (业务名为bri_dev时必填)
:rtype: str
"""
return self._Imei
@Imei.setter
def Imei(self, Imei):
self._Imei = Imei
@property
def Wechat(self):
"""微信号 (业务名为bri_social时必填, 除非已填QQ)
:rtype: str
"""
return self._Wechat
@Wechat.setter
def Wechat(self, Wechat):
self._Wechat = Wechat
@property
def WechatTag(self):
"""微信号的可疑标签
:rtype: str
"""
return self._WechatTag
@WechatTag.setter
def WechatTag(self, WechatTag):
self._WechatTag = WechatTag
@property
def SubAppid(self):
"""子客户ID
:rtype: str
"""
return self._SubAppid
@SubAppid.setter
def SubAppid(self, SubAppid):
self._SubAppid = SubAppid
def _deserialize(self, params):
self._Service = params.get("Service")
self._QQ = params.get("QQ")
self._QQTag = params.get("QQTag")
self._Url = params.get("Url")
self._CertMd5 = params.get("CertMd5")
self._PackageName = params.get("PackageName")
self._FileMd5 = params.get("FileMd5")
self._Scene = params.get("Scene")
self._PhoneNumber = params.get("PhoneNumber")
self._FileSize = params.get("FileSize")
self._Ip = params.get("Ip")
self._Imei = params.get("Imei")
self._Wechat = params.get("Wechat")
self._WechatTag = params.get("WechatTag")
self._SubAppid = params.get("SubAppid")
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 BRIResponse(AbstractModel):
"""响应
"""
def __init__(self):
r"""
:param _Score: 风险分值,取值[0,100], 分值越高风险越高
:type Score: float
:param _Tags: 当Service为bri_num时,返回的风险标签有:
1) 疑似垃圾流量 说明: 结合号码的历史数据表现,判断该号码历史用互联网业务作恶行为,其产生的互联网行为对于其他业务来说属于作弊或垃圾流量。
2) 疑似新客户 说明: 通过号码互联网行为(社交,浏览等)是否异常判断为小号或接码平台帐号。
当Service为bri_dev时,返回的风险标签有:
1) 疑似真机假用户 说明: 根据设备的一些数据表现,我们判定为群控设备
2) 疑似假机 说明: 根据设备的一些数据表现,我们判定为模拟器或虚假设备ID
3) 疑似真用户假行为 说明: 根据设备的用户使用情况,我们判定该用户存在使用脚本、外挂、病毒等作弊行为
当Service为bri_ip时,返回的风险标签有:
1) 疑似垃圾流量 说明:结合IP的历史数据表现,判断该IP历史用互联网业务作恶行为,其产生的互联网行为对于其他业务来说属于作弊或垃圾流量。
当Service为bri_url时,返回的风险标签有:
1) 社工欺诈 说明: URL为社工欺诈
2) 信息诈骗 说明: URL为信息诈骗
3) 虚假销售 说明: URL为虚假销售
4) 恶意文件 说明: URL为恶意文件
5) 博彩网站 说明: URL为博彩网站
6) 色情网站 说明: URL为色情网站
当Service为bri_apk时,返回的风险标签有:
1) 安全 说明: APK为正规应用
2) 一般 说明: APK为未发现问题的正常应用
3) 风险 说明: APK为外挂或色情等风险应用
4) 病毒 说明: APK为包含恶意代码的恶意软件,可能破坏系统或者其他app正常使用
:type Tags: list of str
"""
self._Score = None
self._Tags = None
@property
def Score(self):
"""风险分值,取值[0,100], 分值越高风险越高
:rtype: float
"""
return self._Score
@Score.setter
def Score(self, Score):
self._Score = Score
@property
def Tags(self):
"""当Service为bri_num时,返回的风险标签有:
1) 疑似垃圾流量 说明: 结合号码的历史数据表现,判断该号码历史用互联网业务作恶行为,其产生的互联网行为对于其他业务来说属于作弊或垃圾流量。
2) 疑似新客户 说明: 通过号码互联网行为(社交,浏览等)是否异常判断为小号或接码平台帐号。
当Service为bri_dev时,返回的风险标签有:
1) 疑似真机假用户 说明: 根据设备的一些数据表现,我们判定为群控设备
2) 疑似假机 说明: 根据设备的一些数据表现,我们判定为模拟器或虚假设备ID
3) 疑似真用户假行为 说明: 根据设备的用户使用情况,我们判定该用户存在使用脚本、外挂、病毒等作弊行为
当Service为bri_ip时,返回的风险标签有:
1) 疑似垃圾流量 说明:结合IP的历史数据表现,判断该IP历史用互联网业务作恶行为,其产生的互联网行为对于其他业务来说属于作弊或垃圾流量。
当Service为bri_url时,返回的风险标签有:
1) 社工欺诈 说明: URL为社工欺诈
2) 信息诈骗 说明: URL为信息诈骗
3) 虚假销售 说明: URL为虚假销售
4) 恶意文件 说明: URL为恶意文件
5) 博彩网站 说明: URL为博彩网站
6) 色情网站 说明: URL为色情网站
当Service为bri_apk时,返回的风险标签有:
1) 安全 说明: APK为正规应用
2) 一般 说明: APK为未发现问题的正常应用
3) 风险 说明: APK为外挂或色情等风险应用
4) 病毒 说明: APK为包含恶意代码的恶意软件,可能破坏系统或者其他app正常使用
:rtype: list of str
"""
return self._Tags
@Tags.setter
def Tags(self, Tags):
self._Tags = Tags
def _deserialize(self, params):
self._Score = params.get("Score")
self._Tags = params.get("Tags")
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 DescribeBRIRequest(AbstractModel):
"""DescribeBRI请求参数结构体
"""
def __init__(self):
r"""
:param _RequestData: 业务风险情报请求体
:type RequestData: :class:`tencentcloud.bri.v20190328.models.BRIRequest`
:param _ResourceId: 客户用于计费的资源ID
:type ResourceId: str
"""
self._RequestData = None
self._ResourceId = None
@property
def RequestData(self):
"""业务风险情报请求体
:rtype: :class:`tencentcloud.bri.v20190328.models.BRIRequest`
"""
return self._RequestData
@RequestData.setter
def RequestData(self, RequestData):
self._RequestData = RequestData
@property
def ResourceId(self):
"""客户用于计费的资源ID
:rtype: str
"""
return self._ResourceId
@ResourceId.setter
def ResourceId(self, ResourceId):
self._ResourceId = ResourceId
def _deserialize(self, params):
if params.get("RequestData") is not None:
self._RequestData = BRIRequest()
self._RequestData._deserialize(params.get("RequestData"))
self._ResourceId = params.get("ResourceId")
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 DescribeBRIResponse(AbstractModel):
"""DescribeBRI返回参数结构体
"""
def __init__(self):
r"""
:param _ResponseData: 业务风险情报响应体
:type ResponseData: :class:`tencentcloud.bri.v20190328.models.BRIResponse`
:param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
:type RequestId: str
"""
self._ResponseData = None
self._RequestId = None
@property
def ResponseData(self):
"""业务风险情报响应体
:rtype: :class:`tencentcloud.bri.v20190328.models.BRIResponse`
"""
return self._ResponseData
@ResponseData.setter
def ResponseData(self, ResponseData):
self._ResponseData = ResponseData
@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("ResponseData") is not None:
self._ResponseData = BRIResponse()
self._ResponseData._deserialize(params.get("ResponseData"))
self._RequestId = params.get("RequestId")