lib/v20200713/models.rb



# frozen_string_literal: true

# Copyright (c) 2017-2018 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.

module TencentCloud
  module Tms
    module V20200713
      # AccountTipoffAccess请求参数结构体
      class AccountTipoffAccessRequest < TencentCloud::Common::AbstractModel
        # @param ReportedAccount: 被举报账号,长度低于 128 个字符
        # @type ReportedAccount: String
        # @param ReportedAccountType: 被举报账号类型(1-手机号 2-QQ号 3-微信号 4-QQ群号 5-微信openid 6-QQopenid 0-其它)
        # @type ReportedAccountType: Integer
        # @param EvilType: 被举报账号所属恶意类型(1-诈骗,2-骚扰,3-广告,4-违法违规,5-赌博传销,0-其他)
        # @type EvilType: Integer
        # @param SenderAccount: 举报者账号,长度低于 128 个字符
        # @type SenderAccount: String
        # @param SenderAccountType: 举报者账号类型(1-手机号 2-QQ号 3-微信号 4-QQ群号 5-微信openid 6-QQopenid 0-其它)
        # @type SenderAccountType: Integer
        # @param SenderIP: 举报者IP地址
        # @type SenderIP: String
        # @param EvilContent: 包含被举报账号的恶意内容(比如文本、图片链接,长度低于1024个字符)
        # @type EvilContent: String

        attr_accessor :ReportedAccount, :ReportedAccountType, :EvilType, :SenderAccount, :SenderAccountType, :SenderIP, :EvilContent
        
        def initialize(reportedaccount=nil, reportedaccounttype=nil, eviltype=nil, senderaccount=nil, senderaccounttype=nil, senderip=nil, evilcontent=nil)
          @ReportedAccount = reportedaccount
          @ReportedAccountType = reportedaccounttype
          @EvilType = eviltype
          @SenderAccount = senderaccount
          @SenderAccountType = senderaccounttype
          @SenderIP = senderip
          @EvilContent = evilcontent
        end

        def deserialize(params)
          @ReportedAccount = params['ReportedAccount']
          @ReportedAccountType = params['ReportedAccountType']
          @EvilType = params['EvilType']
          @SenderAccount = params['SenderAccount']
          @SenderAccountType = params['SenderAccountType']
          @SenderIP = params['SenderIP']
          @EvilContent = params['EvilContent']
        end
      end

      # AccountTipoffAccess返回参数结构体
      class AccountTipoffAccessResponse < TencentCloud::Common::AbstractModel
        # @param Data: 举报接口响应数据
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Data: :class:`Tencentcloud::Tms.v20200713.models.TipoffResponse`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Data, :RequestId
        
        def initialize(data=nil, requestid=nil)
          @Data = data
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Data'].nil?
            @Data = TipoffResponse.new
            @Data.deserialize(params['Data'])
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeTextLib请求参数结构体
      class DescribeTextLibRequest < TencentCloud::Common::AbstractModel
        # @param StrategyType: 内容类型 text: 1; image: 2; audio: 3; video: 4
        # @type StrategyType: Integer

        attr_accessor :StrategyType
        
        def initialize(strategytype=nil)
          @StrategyType = strategytype
        end

        def deserialize(params)
          @StrategyType = params['StrategyType']
        end
      end

      # DescribeTextLib返回参数结构体
      class DescribeTextLibResponse < TencentCloud::Common::AbstractModel
        # @param TextLib: 文本库id和name列表
        # @type TextLib: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TextLib, :RequestId
        
        def initialize(textlib=nil, requestid=nil)
          @TextLib = textlib
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['TextLib'].nil?
            @TextLib = []
            params['TextLib'].each do |i|
              textlib_tmp = TextLib.new
              textlib_tmp.deserialize(i)
              @TextLib << textlib_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeTextStat请求参数结构体
      class DescribeTextStatRequest < TencentCloud::Common::AbstractModel
        # @param AuditType: 审核类型 1: 机器审核; 2: 人工审核
        # @type AuditType: Integer
        # @param Filters: 查询条件
        # @type Filters: Array

        attr_accessor :AuditType, :Filters
        
        def initialize(audittype=nil, filters=nil)
          @AuditType = audittype
          @Filters = filters
        end

        def deserialize(params)
          @AuditType = params['AuditType']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filters_tmp = Filters.new
              filters_tmp.deserialize(i)
              @Filters << filters_tmp
            end
          end
        end
      end

      # DescribeTextStat返回参数结构体
      class DescribeTextStatResponse < TencentCloud::Common::AbstractModel
        # @param Overview: 识别结果统计
        # @type Overview: :class:`Tencentcloud::Tms.v20200713.models.Overview`
        # @param TrendCount: 识别量统计
        # @type TrendCount: Array
        # @param EvilCount: 违规数据分布
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EvilCount: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Overview, :TrendCount, :EvilCount, :RequestId
        
        def initialize(overview=nil, trendcount=nil, evilcount=nil, requestid=nil)
          @Overview = overview
          @TrendCount = trendcount
          @EvilCount = evilcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Overview'].nil?
            @Overview = Overview.new
            @Overview.deserialize(params['Overview'])
          end
          unless params['TrendCount'].nil?
            @TrendCount = []
            params['TrendCount'].each do |i|
              trendcount_tmp = TrendCount.new
              trendcount_tmp.deserialize(i)
              @TrendCount << trendcount_tmp
            end
          end
          unless params['EvilCount'].nil?
            @EvilCount = []
            params['EvilCount'].each do |i|
              evilcount_tmp = EvilCount.new
              evilcount_tmp.deserialize(i)
              @EvilCount << evilcount_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # 文本返回的详细结果
      class DetailResults < TencentCloud::Common::AbstractModel
        # @param Label: 恶意标签,Normal:正常,Porn:色情,Abuse:谩骂,Ad:广告,Custom:自定义词库。
        # 以及令人反感、不安全或不适宜的内容类型。
        # @type Label: String
        # @param Suggestion: 建议您拿到判断结果后的执行操作。
        # 建议值,Block:建议屏蔽,Review:建议复审,Pass:建议通过
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Suggestion: String
        # @param Keywords: 该标签下命中的关键词
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Keywords: Array
        # @param Score: 该标签模型命中的分值
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Score: Integer
        # @param LibType: 仅当Label为Custom自定义关键词时有效,表示自定义关键词库类型,1:黑白库,2:自定义库
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LibType: Integer
        # @param LibId: 仅当Label为Custom自定义关键词时有效,表示自定义库id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LibId: String
        # @param LibName: 仅当Labe为Custom自定义关键词时有效,表示自定义库名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LibName: String

        attr_accessor :Label, :Suggestion, :Keywords, :Score, :LibType, :LibId, :LibName
        
        def initialize(label=nil, suggestion=nil, keywords=nil, score=nil, libtype=nil, libid=nil, libname=nil)
          @Label = label
          @Suggestion = suggestion
          @Keywords = keywords
          @Score = score
          @LibType = libtype
          @LibId = libid
          @LibName = libname
        end

        def deserialize(params)
          @Label = params['Label']
          @Suggestion = params['Suggestion']
          @Keywords = params['Keywords']
          @Score = params['Score']
          @LibType = params['LibType']
          @LibId = params['LibId']
          @LibName = params['LibName']
        end
      end

      # 设备信息
      class Device < TencentCloud::Common::AbstractModel
        # @param IP: 用户IP
        # @type IP: String
        # @param Mac: Mac地址
        # @type Mac: String
        # @param TokenId: 设备指纹Token
        # @type TokenId: String
        # @param DeviceId: 设备指纹ID
        # @type DeviceId: String
        # @param IMEI: 设备序列号
        # @type IMEI: String
        # @param IDFA: IOS设备,Identifier For Advertising(广告标识符)
        # @type IDFA: String
        # @param IDFV: IOS设备,IDFV - Identifier For Vendor(应用开发商标识符)
        # @type IDFV: String

        attr_accessor :IP, :Mac, :TokenId, :DeviceId, :IMEI, :IDFA, :IDFV
        
        def initialize(ip=nil, mac=nil, tokenid=nil, deviceid=nil, imei=nil, idfa=nil, idfv=nil)
          @IP = ip
          @Mac = mac
          @TokenId = tokenid
          @DeviceId = deviceid
          @IMEI = imei
          @IDFA = idfa
          @IDFV = idfv
        end

        def deserialize(params)
          @IP = params['IP']
          @Mac = params['Mac']
          @TokenId = params['TokenId']
          @DeviceId = params['DeviceId']
          @IMEI = params['IMEI']
          @IDFA = params['IDFA']
          @IDFV = params['IDFV']
        end
      end

      # 违规数据分布
      class EvilCount < TencentCloud::Common::AbstractModel
        # @param EvilType: ----非必选,该参数功能暂未对外开放
        # @type EvilType: String
        # @param Count: 分布类型总量
        # @type Count: Integer

        attr_accessor :EvilType, :Count
        
        def initialize(eviltype=nil, count=nil)
          @EvilType = eviltype
          @Count = count
        end

        def deserialize(params)
          @EvilType = params['EvilType']
          @Count = params['Count']
        end
      end

      # 文本过滤条件
      class Filters < TencentCloud::Common::AbstractModel
        # @param Name: 查询字段:
        # 策略BizType
        # 子账号SubUin
        # 日期区间DateRange
        # @type Name: String
        # @param Values: 查询值
        # @type Values: Array

        attr_accessor :Name, :Values
        
        def initialize(name=nil, values=nil)
          @Name = name
          @Values = values
        end

        def deserialize(params)
          @Name = params['Name']
          @Values = params['Values']
        end
      end

      # 识别结果统计
      class Overview < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总调用量
        # @type TotalCount: Integer
        # @param TotalHour: 总调用时长
        # @type TotalHour: Integer
        # @param PassCount: 通过量
        # @type PassCount: Integer
        # @param PassHour: 通过时长
        # @type PassHour: Integer
        # @param EvilCount: 违规量
        # @type EvilCount: Integer
        # @param EvilHour: 违规时长
        # @type EvilHour: Integer
        # @param SuspectCount: 疑似违规量
        # @type SuspectCount: Integer
        # @param SuspectHour: 疑似违规时长
        # @type SuspectHour: Integer

        attr_accessor :TotalCount, :TotalHour, :PassCount, :PassHour, :EvilCount, :EvilHour, :SuspectCount, :SuspectHour
        
        def initialize(totalcount=nil, totalhour=nil, passcount=nil, passhour=nil, evilcount=nil, evilhour=nil, suspectcount=nil, suspecthour=nil)
          @TotalCount = totalcount
          @TotalHour = totalhour
          @PassCount = passcount
          @PassHour = passhour
          @EvilCount = evilcount
          @EvilHour = evilhour
          @SuspectCount = suspectcount
          @SuspectHour = suspecthour
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          @TotalHour = params['TotalHour']
          @PassCount = params['PassCount']
          @PassHour = params['PassHour']
          @EvilCount = params['EvilCount']
          @EvilHour = params['EvilHour']
          @SuspectCount = params['SuspectCount']
          @SuspectHour = params['SuspectHour']
        end
      end

      # 账号风险检测结果
      class RiskDetails < TencentCloud::Common::AbstractModel
        # @param Label: 风险类别,RiskAccount,RiskIP, RiskIMEI
        # @type Label: String
        # @param Level: 风险等级,1:疑似,2:恶意
        # @type Level: Integer

        attr_accessor :Label, :Level
        
        def initialize(label=nil, level=nil)
          @Label = label
          @Level = level
        end

        def deserialize(params)
          @Label = params['Label']
          @Level = params['Level']
        end
      end

      # 自定义库列表
      class TextLib < TencentCloud::Common::AbstractModel
        # @param LibId: 库id
        # @type LibId: Integer
        # @param LibName: 库名
        # @type LibName: String

        attr_accessor :LibId, :LibName
        
        def initialize(libid=nil, libname=nil)
          @LibId = libid
          @LibName = libname
        end

        def deserialize(params)
          @LibId = params['LibId']
          @LibName = params['LibName']
        end
      end

      # TextModeration请求参数结构体
      class TextModerationRequest < TencentCloud::Common::AbstractModel
        # @param Content: 文本内容Base64编码。限制原文长度不能超过10000个unicode字符
        # @type Content: String
        # @param BizType: 该字段用于标识业务场景。您可以在内容安全控制台创建对应的ID,配置不同的内容审核策略,通过接口调用,默认不填为0,后端使用默认策略
        # @type BizType: String
        # @param DataId: 数据ID,英文字母、下划线、-组成,不超过64个字符
        # @type DataId: String
        # @param User: 账号相关信息字段,填入后可识别违规风险账号
        # @type User: :class:`Tencentcloud::Tms.v20200713.models.User`
        # @param Device: 设备相关信息字段,填入后可识别违规风险设备
        # @type Device: :class:`Tencentcloud::Tms.v20200713.models.Device`

        attr_accessor :Content, :BizType, :DataId, :User, :Device
        
        def initialize(content=nil, biztype=nil, dataid=nil, user=nil, device=nil)
          @Content = content
          @BizType = biztype
          @DataId = dataid
          @User = user
          @Device = device
        end

        def deserialize(params)
          @Content = params['Content']
          @BizType = params['BizType']
          @DataId = params['DataId']
          unless params['User'].nil?
            @User = User.new
            @User.deserialize(params['User'])
          end
          unless params['Device'].nil?
            @Device = Device.new
            @Device.deserialize(params['Device'])
          end
        end
      end

      # TextModeration返回参数结构体
      class TextModerationResponse < TencentCloud::Common::AbstractModel
        # @param BizType: 您在入参时所填入的Biztype参数
        # @type BizType: String
        # @param EvilFlag: 数据是否属于恶意类型,0:正常 1:可疑
        # @type EvilFlag: Integer
        # @param Label: 恶意标签,Normal:正常,Porn:色情,Abuse:谩骂,Ad:广告,Custom:自定义词库,以及令人反感、不安全或不适宜的内容类型
        # @type Label: String
        # @param Suggestion: 建议您拿到判断结果后的执行操作
        # 建议值,Block:建议屏蔽,Review:建议复审,Pass:建议通过
        # @type Suggestion: String
        # @param Keywords: 文本命中的关键词信息,用于提示您文本违规的具体原因,可能会返回多个命中的关键词。(如:加我微信)
        # 如返回值为空,Score不为空,即识别结果(Label)是来自于语义模型判断的返回值
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Keywords: Array
        # @param Score: 机器判断当前分类的置信度,取值范围:0.00~100.00。分数越高,表示越有可能属于当前分类。
        # (如:色情 99.99,则该样本属于色情的置信度非常高。)
        # @type Score: Integer
        # @param DetailResults: 接口识别样本后返回的详细结果
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DetailResults: Array
        # @param RiskDetails: 接口识别样本中存在违规账号风险的检测结果
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskDetails: Array
        # @param Extra: 扩展字段,用于特定信息返回,不同客户/Biztype下返回信息不同
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Extra: String
        # @param DataId: 请求参数中的DataId
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DataId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BizType, :EvilFlag, :Label, :Suggestion, :Keywords, :Score, :DetailResults, :RiskDetails, :Extra, :DataId, :RequestId
        
        def initialize(biztype=nil, evilflag=nil, label=nil, suggestion=nil, keywords=nil, score=nil, detailresults=nil, riskdetails=nil, extra=nil, dataid=nil, requestid=nil)
          @BizType = biztype
          @EvilFlag = evilflag
          @Label = label
          @Suggestion = suggestion
          @Keywords = keywords
          @Score = score
          @DetailResults = detailresults
          @RiskDetails = riskdetails
          @Extra = extra
          @DataId = dataid
          @RequestId = requestid
        end

        def deserialize(params)
          @BizType = params['BizType']
          @EvilFlag = params['EvilFlag']
          @Label = params['Label']
          @Suggestion = params['Suggestion']
          @Keywords = params['Keywords']
          @Score = params['Score']
          unless params['DetailResults'].nil?
            @DetailResults = []
            params['DetailResults'].each do |i|
              detailresults_tmp = DetailResults.new
              detailresults_tmp.deserialize(i)
              @DetailResults << detailresults_tmp
            end
          end
          unless params['RiskDetails'].nil?
            @RiskDetails = []
            params['RiskDetails'].each do |i|
              riskdetails_tmp = RiskDetails.new
              riskdetails_tmp.deserialize(i)
              @RiskDetails << riskdetails_tmp
            end
          end
          @Extra = params['Extra']
          @DataId = params['DataId']
          @RequestId = params['RequestId']
        end
      end

      # 举报接口响应数据
      class TipoffResponse < TencentCloud::Common::AbstractModel
        # @param ResultCode: 举报结果, "0-举报数据提交成功  99-举报数据提交失败"
        # @type ResultCode: Integer
        # @param ResultMsg: 结果描述
        # @type ResultMsg: String

        attr_accessor :ResultCode, :ResultMsg
        
        def initialize(resultcode=nil, resultmsg=nil)
          @ResultCode = resultcode
          @ResultMsg = resultmsg
        end

        def deserialize(params)
          @ResultCode = params['ResultCode']
          @ResultMsg = params['ResultMsg']
        end
      end

      # 识别量统计
      class TrendCount < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总调用量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param TotalHour: 总调用时长
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalHour: Integer
        # @param PassCount: 通过量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PassCount: Integer
        # @param PassHour: 通过时长
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PassHour: Integer
        # @param EvilCount: 违规量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EvilCount: Integer
        # @param EvilHour: 违规时长
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EvilHour: Integer
        # @param SuspectCount: 疑似违规量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SuspectCount: Integer
        # @param SuspectHour: 疑似违规时长
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SuspectHour: Integer
        # @param Date: 日期
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Date: String

        attr_accessor :TotalCount, :TotalHour, :PassCount, :PassHour, :EvilCount, :EvilHour, :SuspectCount, :SuspectHour, :Date
        
        def initialize(totalcount=nil, totalhour=nil, passcount=nil, passhour=nil, evilcount=nil, evilhour=nil, suspectcount=nil, suspecthour=nil, date=nil)
          @TotalCount = totalcount
          @TotalHour = totalhour
          @PassCount = passcount
          @PassHour = passhour
          @EvilCount = evilcount
          @EvilHour = evilhour
          @SuspectCount = suspectcount
          @SuspectHour = suspecthour
          @Date = date
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          @TotalHour = params['TotalHour']
          @PassCount = params['PassCount']
          @PassHour = params['PassHour']
          @EvilCount = params['EvilCount']
          @EvilHour = params['EvilHour']
          @SuspectCount = params['SuspectCount']
          @SuspectHour = params['SuspectHour']
          @Date = params['Date']
        end
      end

      # 用户相关信息
      class User < TencentCloud::Common::AbstractModel
        # @param UserId: 用户账号ID,如填写,会根据账号历史恶意情况,判定消息有害结果,特别是有利于可疑恶意情况下的辅助判断。账号可以填写微信uin、QQ号、微信openid、QQopenid、字符串等。该字段和账号类别确定唯一账号。
        # @type UserId: String
        # @param Nickname: 用户昵称
        # @type Nickname: String
        # @param AccountType: 账号类别,"1-微信uin 2-QQ号 3-微信群uin 4-qq群号 5-微信openid 6-QQopenid 7-其它string"
        # @type AccountType: Integer
        # @param Gender: 性别 默认0 未知 1 男性 2 女性
        # @type Gender: Integer
        # @param Age: 年龄 默认0 未知
        # @type Age: Integer
        # @param Level: 用户等级,默认0 未知 1 低 2 中 3 高
        # @type Level: Integer
        # @param Phone: 手机号
        # @type Phone: String

        attr_accessor :UserId, :Nickname, :AccountType, :Gender, :Age, :Level, :Phone
        
        def initialize(userid=nil, nickname=nil, accounttype=nil, gender=nil, age=nil, level=nil, phone=nil)
          @UserId = userid
          @Nickname = nickname
          @AccountType = accounttype
          @Gender = gender
          @Age = age
          @Level = level
          @Phone = phone
        end

        def deserialize(params)
          @UserId = params['UserId']
          @Nickname = params['Nickname']
          @AccountType = params['AccountType']
          @Gender = params['Gender']
          @Age = params['Age']
          @Level = params['Level']
          @Phone = params['Phone']
        end
      end

    end
  end
end