# 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 Afc
    module V20200226
      # AntiFraudVipCryptoFilter– 业务入参
      class AntiFraudVipCryptoFilter < TencentCloud::Common::AbstractModel
        # @param CryptoType: 约定用入参,默认不涉及默认BusinessSecurityData 与BusinessCrptoData 不传
        # @type CryptoType: String
        # @param CryptoContent: 约定用入参,默认不涉及
        # @type CryptoContent: String

        attr_accessor :CryptoType, :CryptoContent
        
        def initialize(cryptotype=nil, cryptocontent=nil)
          @CryptoType = cryptotype
          @CryptoContent = cryptocontent
        end

        def deserialize(params)
          @CryptoType = params['CryptoType']
          @CryptoContent = params['CryptoContent']
        end
      end

      # AntiFraudVipFilter– 业务入参
      class AntiFraudVipFilter < TencentCloud::Common::AbstractModel
        # @param CustomerUin: 业务方账号 ID
        # @type CustomerUin: String
        # @param CustomerAppid: 业务方APPID
        # @type CustomerAppid: String
        # @param IdNumber: 身份证号
        # 注 1:下方 idCryptoType 为指定
        # 加密方式
        # 注 2:若 idNumber 加密则必传加
        # 密方式
        # @type IdNumber: String
        # @param PhoneNumber: 手机号码(注:不需要带国家代码
        # 例如:13430421011)
        # 注 1:下方 phoneCryptoType 为
        # 指定加密方式:
        # 注 2:若 phoneNumber 加密则必
        # 传加密方式
        # @type PhoneNumber: String
        # @param Scene: 业务场景 ID
        # @type Scene: String
        # @param CustomerSubUin: 默认不使用,业务方子
        # 账号,若接口使用密钥对应是子账
        # 号则必填
        # @type CustomerSubUin: String
        # @param Authorization: 已获取约定标识则传 1;
        # 用于基于特定需求而传的标识字段
        # 注:有约定则是必传,若未传则查
        # 询接口失败
        # @type Authorization: String
        # @param Name: 姓名
        # 注 :不支持加密
        # @type Name: String
        # @param BankCardNumber: 银行卡号
        # @type BankCardNumber: String
        # @param UserIp: 用户请求来源 IP
        # @type UserIp: String
        # @param Imei: 国际移动设备识别码
        # @type Imei: String
        # @param Idfa: ios 系统广告标示符
        # @type Idfa: String
        # @param EmailAddress: 用户邮箱地址
        # @type EmailAddress: String
        # @param Address: 用户住址
        # @type Address: String
        # @param Mac: MAC 地址
        # @type Mac: String
        # @param Imsi: 国际移动用户识别码
        # @type Imsi: String
        # @param AccountType: 关联的腾讯帐号 QQ:1;
        # 开放帐号微信: 2;
        # @type AccountType: String
        # @param Uid: 可选的 QQ 或微信 openid
        # @type Uid: String
        # @param AppIdU: qq 或微信分配给网站或应用的
        # appid,用来唯一标识网站或应用
        # @type AppIdU: String
        # @param WifiMac: WIFIMAC
        # @type WifiMac: String
        # @param WifiSSID: WIFI 服务集标识
        # @type WifiSSID: String
        # @param WifiBSSID: WIFI-BSSID
        # @type WifiBSSID: String
        # @param ExtensionId: 拓展字段类型 ID
        # 注:默认不填写,需要时天御侧将
        # 提供
        # @type ExtensionId: String
        # @param ExtensionIn: 拓展字段内容
        # 注:默认不填,需要时天御侧将提
        # 供
        # @type ExtensionIn: String
        # @param BusinessId: 业务 ID,默认不传
        # @type BusinessId: String
        # @param IdCryptoType: 身份证加密类型
        # 0:不加密(默认值)
        # 1:md5
        # 2:sha256
        # 3:SM3
        # 注:若 idNumber 加密则必传加密
        # 方式
        # @type IdCryptoType: String
        # @param PhoneCryptoType: 手机号加密类型
        # 0:不加密(默认值)
        # 1:md5,
        # 2:sha256
        # 3:SM3
        # 注:若 phoneNumber 加密则必传
        # 加密方式
        # @type PhoneCryptoType: String
        # @param NameCryptoType: 姓名加密类型:——注:已经不支持加
        # 密,该字段存在是为了兼容可能历史客户
        # 版本;
        # 0:不加密(默认值)
        # 1:md5
        # @type NameCryptoType: String

        attr_accessor :CustomerUin, :CustomerAppid, :IdNumber, :PhoneNumber, :Scene, :CustomerSubUin, :Authorization, :Name, :BankCardNumber, :UserIp, :Imei, :Idfa, :EmailAddress, :Address, :Mac, :Imsi, :AccountType, :Uid, :AppIdU, :WifiMac, :WifiSSID, :WifiBSSID, :ExtensionId, :ExtensionIn, :BusinessId, :IdCryptoType, :PhoneCryptoType, :NameCryptoType
        
        def initialize(customeruin=nil, customerappid=nil, idnumber=nil, phonenumber=nil, scene=nil, customersubuin=nil, authorization=nil, name=nil, bankcardnumber=nil, userip=nil, imei=nil, idfa=nil, emailaddress=nil, address=nil, mac=nil, imsi=nil, accounttype=nil, uid=nil, appidu=nil, wifimac=nil, wifissid=nil, wifibssid=nil, extensionid=nil, extensionin=nil, businessid=nil, idcryptotype=nil, phonecryptotype=nil, namecryptotype=nil)
          @CustomerUin = customeruin
          @CustomerAppid = customerappid
          @IdNumber = idnumber
          @PhoneNumber = phonenumber
          @Scene = scene
          @CustomerSubUin = customersubuin
          @Authorization = authorization
          @Name = name
          @BankCardNumber = bankcardnumber
          @UserIp = userip
          @Imei = imei
          @Idfa = idfa
          @EmailAddress = emailaddress
          @Address = address
          @Mac = mac
          @Imsi = imsi
          @AccountType = accounttype
          @Uid = uid
          @AppIdU = appidu
          @WifiMac = wifimac
          @WifiSSID = wifissid
          @WifiBSSID = wifibssid
          @ExtensionId = extensionid
          @ExtensionIn = extensionin
          @BusinessId = businessid
          @IdCryptoType = idcryptotype
          @PhoneCryptoType = phonecryptotype
          @NameCryptoType = namecryptotype
        end

        def deserialize(params)
          @CustomerUin = params['CustomerUin']
          @CustomerAppid = params['CustomerAppid']
          @IdNumber = params['IdNumber']
          @PhoneNumber = params['PhoneNumber']
          @Scene = params['Scene']
          @CustomerSubUin = params['CustomerSubUin']
          @Authorization = params['Authorization']
          @Name = params['Name']
          @BankCardNumber = params['BankCardNumber']
          @UserIp = params['UserIp']
          @Imei = params['Imei']
          @Idfa = params['Idfa']
          @EmailAddress = params['EmailAddress']
          @Address = params['Address']
          @Mac = params['Mac']
          @Imsi = params['Imsi']
          @AccountType = params['AccountType']
          @Uid = params['Uid']
          @AppIdU = params['AppIdU']
          @WifiMac = params['WifiMac']
          @WifiSSID = params['WifiSSID']
          @WifiBSSID = params['WifiBSSID']
          @ExtensionId = params['ExtensionId']
          @ExtensionIn = params['ExtensionIn']
          @BusinessId = params['BusinessId']
          @IdCryptoType = params['IdCryptoType']
          @PhoneCryptoType = params['PhoneCryptoType']
          @NameCryptoType = params['NameCryptoType']
        end
      end

      # 反欺诈VIP查询结果
      class AntiFraudVipRecord < TencentCloud::Common::AbstractModel
        # @param Code: 公共错误码
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Code: String
        # @param CodeDesc: 业务侧错误码。
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CodeDesc: String
        # @param Message: 业务侧错误信息。
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Message: String
        # @param Found: 表示该条记录能否查到:1 为能查到;-1 为查不到,此时 RiskScore 返回-1;
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Found: String
        # @param IdFound: 表示该条记录中的身份 ID 能否查到
        # 1 为能查到
        # -1 为查不到
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IdFound: String
        # @param RiskScore: 当可查到时,返回 0~100 区间,值越高 欺诈可
        # 能性越大。
        # 当查不到时(即 found=-1),返回-1
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskScore: String
        # @param RiskInfo: 扩展字段,对风险类型的说明。扩展字段并非必
        # 然出现。
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskInfo: Array
        # @param OtherModelScores: 默认出现,提供模型版本号说明及多模型返回需
        # 要时用到;
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type OtherModelScores: Array
        # @param PostTime: 表示请求时间,标准 sunix 时间戳,非必然出现
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PostTime: String
        # @param ExtensionOut: 拓展字段,非必然出现,和 ExtensionIn 对应;
        # 注:非必然出现,需要返回时天御侧将说明;
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ExtensionOut: String

        attr_accessor :Code, :CodeDesc, :Message, :Found, :IdFound, :RiskScore, :RiskInfo, :OtherModelScores, :PostTime, :ExtensionOut
        
        def initialize(code=nil, codedesc=nil, message=nil, found=nil, idfound=nil, riskscore=nil, riskinfo=nil, othermodelscores=nil, posttime=nil, extensionout=nil)
          @Code = code
          @CodeDesc = codedesc
          @Message = message
          @Found = found
          @IdFound = idfound
          @RiskScore = riskscore
          @RiskInfo = riskinfo
          @OtherModelScores = othermodelscores
          @PostTime = posttime
          @ExtensionOut = extensionout
        end

        def deserialize(params)
          @Code = params['Code']
          @CodeDesc = params['CodeDesc']
          @Message = params['Message']
          @Found = params['Found']
          @IdFound = params['IdFound']
          @RiskScore = params['RiskScore']
          unless params['RiskInfo'].nil?
            @RiskInfo = []
            params['RiskInfo'].each do |i|
              simplekindriskdetail_tmp = SimpleKindRiskDetail.new
              simplekindriskdetail_tmp.deserialize(i)
              @RiskInfo << simplekindriskdetail_tmp
            end
          end
          unless params['OtherModelScores'].nil?
            @OtherModelScores = []
            params['OtherModelScores'].each do |i|
              othermodelscores_tmp = OtherModelScores.new
              othermodelscores_tmp.deserialize(i)
              @OtherModelScores << othermodelscores_tmp
            end
          end
          @PostTime = params['PostTime']
          @ExtensionOut = params['ExtensionOut']
        end
      end

      # GetAntiFraudVip请求参数结构体
      class GetAntiFraudVipRequest < TencentCloud::Common::AbstractModel
        # @param BusinessSecurityData: 默认不传,约定用原始业务
        # 入参(二选一BusinessSecurityData 或
        # BusinessCryptoData)。
        # @type BusinessSecurityData: :class:`Tencentcloud::Afc.v20200226.models.AntiFraudVipFilter`
        # @param BusinessCryptoData: 默认不传,约定用密文业务
        # 入参(二选一
        # BusinessSecurityData 或
        # BusinessCryptoData)。
        # @type BusinessCryptoData: :class:`Tencentcloud::Afc.v20200226.models.AntiFraudVipCryptoFilter`

        attr_accessor :BusinessSecurityData, :BusinessCryptoData
        
        def initialize(businesssecuritydata=nil, businesscryptodata=nil)
          @BusinessSecurityData = businesssecuritydata
          @BusinessCryptoData = businesscryptodata
        end

        def deserialize(params)
          unless params['BusinessSecurityData'].nil?
            @BusinessSecurityData = AntiFraudVipFilter.new
            @BusinessSecurityData.deserialize(params['BusinessSecurityData'])
          end
          unless params['BusinessCryptoData'].nil?
            @BusinessCryptoData = AntiFraudVipCryptoFilter.new
            @BusinessCryptoData.deserialize(params['BusinessCryptoData'])
          end
        end
      end

      # GetAntiFraudVip返回参数结构体
      class GetAntiFraudVipResponse < TencentCloud::Common::AbstractModel
        # @param Data: 反欺诈评分接口结果
        # @type Data: :class:`Tencentcloud::Afc.v20200226.models.AntiFraudVipRecord`
        # @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 = AntiFraudVipRecord.new
            @Data.deserialize(params['Data'])
          end
          @RequestId = params['RequestId']
        end
      end

      # 扩展字段,包含多个模型的结果
      class OtherModelScores < TencentCloud::Common::AbstractModel
        # @param ModelId: 模型类型
        # @type ModelId: String
        # @param ModelScore: 该模型评分
        # @type ModelScore: String

        attr_accessor :ModelId, :ModelScore
        
        def initialize(modelid=nil, modelscore=nil)
          @ModelId = modelid
          @ModelScore = modelscore
        end

        def deserialize(params)
          @ModelId = params['ModelId']
          @ModelScore = params['ModelScore']
        end
      end

      # QueryAntiFraudVip请求参数结构体
      class QueryAntiFraudVipRequest < TencentCloud::Common::AbstractModel
        # @param PhoneNumber: 电话号码(五选二)
        # @type PhoneNumber: String
        # @param IdNumber: Id号(五选二)
        # @type IdNumber: String
        # @param BankCardNumber: 银行卡号(五选二)
        # @type BankCardNumber: String
        # @param UserIp: 用户请求来源 IP(五选二)
        # @type UserIp: String
        # @param Imei: 国际移动设备识别码(五选二)
        # @type Imei: String
        # @param Idfa: ios 系统广告标示符(五选二)
        # @type Idfa: String
        # @param Scene: 业务场景 ID,需要找技术对接
        # @type Scene: String
        # @param Name: 姓名
        # @type Name: String
        # @param EmailAddress: 用户邮箱地址
        # @type EmailAddress: String
        # @param Address: 用户住址
        # @type Address: String
        # @param AccountType: 关联的腾讯帐号 QQ:1;
        # 开放帐号微信: 2;
        # @type AccountType: String
        # @param Uid: 可选的 QQ 或微信 openid
        # @type Uid: String
        # @param AppIdU: qq 或微信分配给网站或应用的 appid,用来
        # 唯一标识网站或应用
        # @type AppIdU: String
        # @param WifiMac: WIFI MAC
        # @type WifiMac: String
        # @param WifiSSID: WIFI 服务集标识
        # @type WifiSSID: String
        # @param WifiBSSID: WIFI-BSSID
        # @type WifiBSSID: String
        # @param BusinessId: 业务 ID,在多个业务中使用此服务,通过此
        # ID 区分统计数据
        # @type BusinessId: String
        # @param IdCryptoType: Id加密类型
        # 0:不加密(默认值)
        # 1:md5
        # 2:sha256
        # 3:SM3
        # @type IdCryptoType: String
        # @param PhoneCryptoType: 手机号加密类型
        # 0:不加密(默认值)
        # 1:md5, 2:sha256
        # 3:SM3
        # @type PhoneCryptoType: String
        # @param Mac: MAC 地址
        # @type Mac: String
        # @param Imsi: 国际移动用户识别码
        # @type Imsi: String
        # @param NameCryptoType: 姓名加密类型
        # 0:不加密(默认值)
        # 1:md5
        # 2:sha256
        # 3:SM3
        # @type NameCryptoType: String

        attr_accessor :PhoneNumber, :IdNumber, :BankCardNumber, :UserIp, :Imei, :Idfa, :Scene, :Name, :EmailAddress, :Address, :AccountType, :Uid, :AppIdU, :WifiMac, :WifiSSID, :WifiBSSID, :BusinessId, :IdCryptoType, :PhoneCryptoType, :Mac, :Imsi, :NameCryptoType
        
        def initialize(phonenumber=nil, idnumber=nil, bankcardnumber=nil, userip=nil, imei=nil, idfa=nil, scene=nil, name=nil, emailaddress=nil, address=nil, accounttype=nil, uid=nil, appidu=nil, wifimac=nil, wifissid=nil, wifibssid=nil, businessid=nil, idcryptotype=nil, phonecryptotype=nil, mac=nil, imsi=nil, namecryptotype=nil)
          @PhoneNumber = phonenumber
          @IdNumber = idnumber
          @BankCardNumber = bankcardnumber
          @UserIp = userip
          @Imei = imei
          @Idfa = idfa
          @Scene = scene
          @Name = name
          @EmailAddress = emailaddress
          @Address = address
          @AccountType = accounttype
          @Uid = uid
          @AppIdU = appidu
          @WifiMac = wifimac
          @WifiSSID = wifissid
          @WifiBSSID = wifibssid
          @BusinessId = businessid
          @IdCryptoType = idcryptotype
          @PhoneCryptoType = phonecryptotype
          @Mac = mac
          @Imsi = imsi
          @NameCryptoType = namecryptotype
        end

        def deserialize(params)
          @PhoneNumber = params['PhoneNumber']
          @IdNumber = params['IdNumber']
          @BankCardNumber = params['BankCardNumber']
          @UserIp = params['UserIp']
          @Imei = params['Imei']
          @Idfa = params['Idfa']
          @Scene = params['Scene']
          @Name = params['Name']
          @EmailAddress = params['EmailAddress']
          @Address = params['Address']
          @AccountType = params['AccountType']
          @Uid = params['Uid']
          @AppIdU = params['AppIdU']
          @WifiMac = params['WifiMac']
          @WifiSSID = params['WifiSSID']
          @WifiBSSID = params['WifiBSSID']
          @BusinessId = params['BusinessId']
          @IdCryptoType = params['IdCryptoType']
          @PhoneCryptoType = params['PhoneCryptoType']
          @Mac = params['Mac']
          @Imsi = params['Imsi']
          @NameCryptoType = params['NameCryptoType']
        end
      end

      # QueryAntiFraudVip返回参数结构体
      class QueryAntiFraudVipResponse < TencentCloud::Common::AbstractModel
        # @param Found: 表示该条记录能否查到:1为能查到,-1为查不到
        # @type Found: Integer
        # @param IdFound: 表示该条Id能否查到:1为能查到,-1为查不到
        # @type IdFound: Integer
        # @param RiskScore: 0~100;值越高 欺诈可能性越大
        # @type RiskScore: Integer
        # @param RiskInfo: 扩展字段,对风险类型的说明
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskInfo: Array
        # @param CodeDesc: 业务侧错误码。成功时返回Success,错误时返回具体业务错误原因。
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CodeDesc: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Found, :IdFound, :RiskScore, :RiskInfo, :CodeDesc, :RequestId
        
        def initialize(found=nil, idfound=nil, riskscore=nil, riskinfo=nil, codedesc=nil, requestid=nil)
          @Found = found
          @IdFound = idfound
          @RiskScore = riskscore
          @RiskInfo = riskinfo
          @CodeDesc = codedesc
          @RequestId = requestid
        end

        def deserialize(params)
          @Found = params['Found']
          @IdFound = params['IdFound']
          @RiskScore = params['RiskScore']
          unless params['RiskInfo'].nil?
            @RiskInfo = []
            params['RiskInfo'].each do |i|
              riskdetail_tmp = RiskDetail.new
              riskdetail_tmp.deserialize(i)
              @RiskInfo << riskdetail_tmp
            end
          end
          @CodeDesc = params['CodeDesc']
          @RequestId = params['RequestId']
        end
      end

      # 扩展字段,对风险类型的说明
      class RiskDetail < TencentCloud::Common::AbstractModel
        # @param RiskCode: 风险码
        # @type RiskCode: Integer

        attr_accessor :RiskCode
        
        def initialize(riskcode=nil)
          @RiskCode = riskcode
        end

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

      # 扩展字段,对风险类型的说明
      class SimpleKindRiskDetail < TencentCloud::Common::AbstractModel
        # @param RiskCode: 风险码
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskCode: String
        # @param RiskCodeValue: 风险码详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskCodeValue: String

        attr_accessor :RiskCode, :RiskCodeValue
        
        def initialize(riskcode=nil, riskcodevalue=nil)
          @RiskCode = riskcode
          @RiskCodeValue = riskcodevalue
        end

        def deserialize(params)
          @RiskCode = params['RiskCode']
          @RiskCodeValue = params['RiskCodeValue']
        end
      end

      # 天御信鸽取数平台接口入参
      class TransportGeneralInterfaceInput < TencentCloud::Common::AbstractModel
        # @param InterfaceName: 公证处请求接口名
        # @type InterfaceName: String
        # @param NotarizationInput: 公证处业务详情二层入参
        # @type NotarizationInput: String
        # @param NotarizationSign: 业务二层详情入参的哈希签名
        # @type NotarizationSign: String

        attr_accessor :InterfaceName, :NotarizationInput, :NotarizationSign
        
        def initialize(interfacename=nil, notarizationinput=nil, notarizationsign=nil)
          @InterfaceName = interfacename
          @NotarizationInput = notarizationinput
          @NotarizationSign = notarizationsign
        end

        def deserialize(params)
          @InterfaceName = params['InterfaceName']
          @NotarizationInput = params['NotarizationInput']
          @NotarizationSign = params['NotarizationSign']
        end
      end

      # 天御信鸽取数平台接口出参
      class TransportGeneralInterfaceOutput < TencentCloud::Common::AbstractModel
        # @param Code: 错误码
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Code: String
        # @param Message: 回包信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Message: String
        # @param NotarizationData: 公证处业务回包
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NotarizationData: String

        attr_accessor :Code, :Message, :NotarizationData
        
        def initialize(code=nil, message=nil, notarizationdata=nil)
          @Code = code
          @Message = message
          @NotarizationData = notarizationdata
        end

        def deserialize(params)
          @Code = params['Code']
          @Message = params['Message']
          @NotarizationData = params['NotarizationData']
        end
      end

      # TransportGeneralInterface请求参数结构体
      class TransportGeneralInterfaceRequest < TencentCloud::Common::AbstractModel
        # @param BusinessSecurityData: 业务入参
        # @type BusinessSecurityData: :class:`Tencentcloud::Afc.v20200226.models.TransportGeneralInterfaceInput`

        attr_accessor :BusinessSecurityData
        
        def initialize(businesssecuritydata=nil)
          @BusinessSecurityData = businesssecuritydata
        end

        def deserialize(params)
          unless params['BusinessSecurityData'].nil?
            @BusinessSecurityData = TransportGeneralInterfaceInput.new
            @BusinessSecurityData.deserialize(params['BusinessSecurityData'])
          end
        end
      end

      # TransportGeneralInterface返回参数结构体
      class TransportGeneralInterfaceResponse < TencentCloud::Common::AbstractModel
        # @param Data: 业务出参
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Data: :class:`Tencentcloud::Afc.v20200226.models.TransportGeneralInterfaceOutput`
        # @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 = TransportGeneralInterfaceOutput.new
            @Data.deserialize(params['Data'])
          end
          @RequestId = params['RequestId']
        end
      end

    end
  end
end