# 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 Cwp
    module V20180228
      # 灰度项目配置
      class ABTestConfig < TencentCloud::Common::AbstractModel
        # @param ProjectName: 灰度项目名称
        # @type ProjectName: String
        # @param Status: true:正在灰度,false:不在灰度
        # @type Status: Boolean

        attr_accessor :ProjectName, :Status

        def initialize(projectname=nil, status=nil)
          @ProjectName = projectname
          @Status = status
        end

        def deserialize(params)
          @ProjectName = params['ProjectName']
          @Status = params['Status']
        end
      end

      # 帐号统计数据。
      class AccountStatistics < TencentCloud::Common::AbstractModel
        # @param Username: 用户名。
        # @type Username: String
        # @param MachineNum: 主机数量。
        # @type MachineNum: Integer

        attr_accessor :Username, :MachineNum

        def initialize(username=nil, machinenum=nil)
          @Username = username
          @MachineNum = machinenum
        end

        def deserialize(params)
          @Username = params['Username']
          @MachineNum = params['MachineNum']
        end
      end

      # AddLoginWhiteLists请求参数结构体
      class AddLoginWhiteListsRequest < TencentCloud::Common::AbstractModel
        # @param HostLoginWhiteObj: 异地登录白名单实体
        # @type HostLoginWhiteObj: :class:`Tencentcloud::Cwp.v20180228.models.HostLoginWhiteObj`
        # @param ProcessType: 事件同步处理方式:
        #   "" -- 不操作
        #   "All" -- 将符合此配置的所有事件记录加白
        #   "Id" -- 将EventId对应的事件记录加白
        # @type ProcessType: String
        # @param EventId: 异地登录事件ID,当ProcessType为Id时此项必填
        # @type EventId: Integer

        attr_accessor :HostLoginWhiteObj, :ProcessType, :EventId

        def initialize(hostloginwhiteobj=nil, processtype=nil, eventid=nil)
          @HostLoginWhiteObj = hostloginwhiteobj
          @ProcessType = processtype
          @EventId = eventid
        end

        def deserialize(params)
          unless params['HostLoginWhiteObj'].nil?
            @HostLoginWhiteObj = HostLoginWhiteObj.new
            @HostLoginWhiteObj.deserialize(params['HostLoginWhiteObj'])
          end
          @ProcessType = params['ProcessType']
          @EventId = params['EventId']
        end
      end

      # AddLoginWhiteLists返回参数结构体
      class AddLoginWhiteListsResponse < TencentCloud::Common::AbstractModel
        # @param DuplicateHosts: 重复添加的提示列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DuplicateHosts: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DuplicateHosts, :RequestId

        def initialize(duplicatehosts=nil, requestid=nil)
          @DuplicateHosts = duplicatehosts
          @RequestId = requestid
        end

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

      # 节点关联的告警信息
      class AlarmInfo < TencentCloud::Common::AbstractModel
        # @param AlarmId: 该节点关联的告警,告警的table_name+id(t1:id1,t2:id2,...)
        # @type AlarmId: String
        # @param Status: 告警事件表状态,当该节点为告警点时生效
        # @type Status: Integer

        attr_accessor :AlarmId, :Status

        def initialize(alarmid=nil, status=nil)
          @AlarmId = alarmid
          @Status = status
        end

        def deserialize(params)
          @AlarmId = params['AlarmId']
          @Status = params['Status']
        end
      end

      # 资源管理进程基本信息
      class AssetAppBaseInfo < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param Tag: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param Name: 应用名称
        # @type Name: String
        # @param Type: 应用类型
        # 1: 运维
        # 2 : 数据库
        # 3 : 安全
        # 4 : 可疑应用
        # 5 : 系统架构
        # 6 : 系统应用
        # 7 : WEB服务
        # 99: 其他
        # @type Type: Integer
        # @param BinPath: 二进制路径
        # @type BinPath: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param ProcessCount: 关联进程数
        # @type ProcessCount: Integer
        # @param Desc: 应用描述
        # @type Desc: String
        # @param Version: 版本号
        # @type Version: String
        # @param ConfigPath: 配置文件路径
        # @type ConfigPath: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsNew: Integer
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineIp, :MachineName, :MachineWanIp, :Uuid, :Quuid, :ProjectId, :Tag, :Name, :Type, :BinPath, :OsInfo, :ProcessCount, :Desc, :Version, :ConfigPath, :FirstTime, :UpdateTime, :IsNew, :MachineExtraInfo

        def initialize(machineip=nil, machinename=nil, machinewanip=nil, uuid=nil, quuid=nil, projectid=nil, tag=nil, name=nil, type=nil, binpath=nil, osinfo=nil, processcount=nil, desc=nil, version=nil, configpath=nil, firsttime=nil, updatetime=nil, isnew=nil, machineextrainfo=nil)
          @MachineIp = machineip
          @MachineName = machinename
          @MachineWanIp = machinewanip
          @Uuid = uuid
          @Quuid = quuid
          @ProjectId = projectid
          @Tag = tag
          @Name = name
          @Type = type
          @BinPath = binpath
          @OsInfo = osinfo
          @ProcessCount = processcount
          @Desc = desc
          @Version = version
          @ConfigPath = configpath
          @FirstTime = firsttime
          @UpdateTime = updatetime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @MachineWanIp = params['MachineWanIp']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @ProjectId = params['ProjectId']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Name = params['Name']
          @Type = params['Type']
          @BinPath = params['BinPath']
          @OsInfo = params['OsInfo']
          @ProcessCount = params['ProcessCount']
          @Desc = params['Desc']
          @Version = params['Version']
          @ConfigPath = params['ConfigPath']
          @FirstTime = params['FirstTime']
          @UpdateTime = params['UpdateTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 软件应用关联进程信息
      class AssetAppProcessInfo < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Status: 进程状态
        # @type Status: String
        # @param Version: 进程版本
        # @type Version: String
        # @param Path: 路径
        # @type Path: String
        # @param User: 用户
        # @type User: String
        # @param StartTime: 启动时间
        # @type StartTime: String

        attr_accessor :Name, :Status, :Version, :Path, :User, :StartTime

        def initialize(name=nil, status=nil, version=nil, path=nil, user=nil, starttime=nil)
          @Name = name
          @Status = status
          @Version = version
          @Path = path
          @User = user
          @StartTime = starttime
        end

        def deserialize(params)
          @Name = params['Name']
          @Status = params['Status']
          @Version = params['Version']
          @Path = params['Path']
          @User = params['User']
          @StartTime = params['StartTime']
        end
      end

      # 资产管理内核模块列表
      class AssetCoreModuleBaseInfo < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Desc: 描述
        # @type Desc: String
        # @param Path: 路径
        # @type Path: String
        # @param Version: 版本
        # @type Version: String
        # @param MachineIp: 服务器IP
        # @type MachineIp: String
        # @param MachineName: 服务器名称
        # @type MachineName: String
        # @param OsInfo: 操作系统
        # @type OsInfo: String
        # @param Size: 模块大小
        # @type Size: Integer
        # @param ProcessCount: 依赖进程数
        # @type ProcessCount: Integer
        # @param ModuleCount: 依赖模块数
        # @type ModuleCount: Integer
        # @param Id: 模块ID
        # @type Id: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineWanIp: 服务器外网IP
        # @type MachineWanIp: String
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Name, :Desc, :Path, :Version, :MachineIp, :MachineName, :OsInfo, :Size, :ProcessCount, :ModuleCount, :Id, :Quuid, :Uuid, :UpdateTime, :FirstTime, :IsNew, :MachineWanIp, :MachineExtraInfo

        def initialize(name=nil, desc=nil, path=nil, version=nil, machineip=nil, machinename=nil, osinfo=nil, size=nil, processcount=nil, modulecount=nil, id=nil, quuid=nil, uuid=nil, updatetime=nil, firsttime=nil, isnew=nil, machinewanip=nil, machineextrainfo=nil)
          @Name = name
          @Desc = desc
          @Path = path
          @Version = version
          @MachineIp = machineip
          @MachineName = machinename
          @OsInfo = osinfo
          @Size = size
          @ProcessCount = processcount
          @ModuleCount = modulecount
          @Id = id
          @Quuid = quuid
          @Uuid = uuid
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineWanIp = machinewanip
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Name = params['Name']
          @Desc = params['Desc']
          @Path = params['Path']
          @Version = params['Version']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Size = params['Size']
          @ProcessCount = params['ProcessCount']
          @ModuleCount = params['ModuleCount']
          @Id = params['Id']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          @MachineWanIp = params['MachineWanIp']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资产管理内核模块详情
      class AssetCoreModuleDetail < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Desc: 描述
        # @type Desc: String
        # @param Path: 路径
        # @type Path: String
        # @param Version: 版本
        # @type Version: String
        # @param Size: 大小
        # @type Size: Integer
        # @param Processes: 依赖进程
        # @type Processes: String
        # @param Modules: 被依赖模块
        # @type Modules: String
        # @param Params: 参数信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Params: Array
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String

        attr_accessor :Name, :Desc, :Path, :Version, :Size, :Processes, :Modules, :Params, :UpdateTime

        def initialize(name=nil, desc=nil, path=nil, version=nil, size=nil, processes=nil, modules=nil, params=nil, updatetime=nil)
          @Name = name
          @Desc = desc
          @Path = path
          @Version = version
          @Size = size
          @Processes = processes
          @Modules = modules
          @Params = params
          @UpdateTime = updatetime
        end

        def deserialize(params)
          @Name = params['Name']
          @Desc = params['Desc']
          @Path = params['Path']
          @Version = params['Version']
          @Size = params['Size']
          @Processes = params['Processes']
          @Modules = params['Modules']
          unless params['Params'].nil?
            @Params = []
            params['Params'].each do |i|
              assetcoremoduleparam_tmp = AssetCoreModuleParam.new
              assetcoremoduleparam_tmp.deserialize(i)
              @Params << assetcoremoduleparam_tmp
            end
          end
          @UpdateTime = params['UpdateTime']
        end
      end

      # 资产管理内核模块参数
      class AssetCoreModuleParam < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Data: 数据
        # @type Data: String

        attr_accessor :Name, :Data

        def initialize(name=nil, data=nil)
          @Name = name
          @Data = data
        end

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

      # 资源管理数据库列表信息
      class AssetDatabaseBaseInfo < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param Tag: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param Name: 数据库名
        # @type Name: String
        # @param Version: 版本
        # @type Version: String
        # @param Port: 监听端口
        # @type Port: String
        # @param Proto: 协议
        # @type Proto: String
        # @param User: 运行用户
        # @type User: String
        # @param Ip: 绑定IP
        # @type Ip: String
        # @param ConfigPath: 配置文件路径
        # @type ConfigPath: String
        # @param LogPath: 日志文件路径
        # @type LogPath: String
        # @param DataPath: 数据路径
        # @type DataPath: String
        # @param Permission: 运行权限
        # @type Permission: String
        # @param ErrorLogPath: 错误日志路径
        # @type ErrorLogPath: String
        # @param PlugInPath: 插件路径
        # @type PlugInPath: String
        # @param BinPath: 二进制路径
        # @type BinPath: String
        # @param Param: 启动参数
        # @type Param: String
        # @param Id: 数据库ID
        # @type Id: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineIp, :MachineWanIp, :Quuid, :Uuid, :OsInfo, :ProjectId, :Tag, :Name, :Version, :Port, :Proto, :User, :Ip, :ConfigPath, :LogPath, :DataPath, :Permission, :ErrorLogPath, :PlugInPath, :BinPath, :Param, :Id, :UpdateTime, :FirstTime, :IsNew, :MachineName, :MachineExtraInfo

        def initialize(machineip=nil, machinewanip=nil, quuid=nil, uuid=nil, osinfo=nil, projectid=nil, tag=nil, name=nil, version=nil, port=nil, proto=nil, user=nil, ip=nil, configpath=nil, logpath=nil, datapath=nil, permission=nil, errorlogpath=nil, pluginpath=nil, binpath=nil, param=nil, id=nil, updatetime=nil, firsttime=nil, isnew=nil, machinename=nil, machineextrainfo=nil)
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @Quuid = quuid
          @Uuid = uuid
          @OsInfo = osinfo
          @ProjectId = projectid
          @Tag = tag
          @Name = name
          @Version = version
          @Port = port
          @Proto = proto
          @User = user
          @Ip = ip
          @ConfigPath = configpath
          @LogPath = logpath
          @DataPath = datapath
          @Permission = permission
          @ErrorLogPath = errorlogpath
          @PlugInPath = pluginpath
          @BinPath = binpath
          @Param = param
          @Id = id
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineName = machinename
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @OsInfo = params['OsInfo']
          @ProjectId = params['ProjectId']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Name = params['Name']
          @Version = params['Version']
          @Port = params['Port']
          @Proto = params['Proto']
          @User = params['User']
          @Ip = params['Ip']
          @ConfigPath = params['ConfigPath']
          @LogPath = params['LogPath']
          @DataPath = params['DataPath']
          @Permission = params['Permission']
          @ErrorLogPath = params['ErrorLogPath']
          @PlugInPath = params['PlugInPath']
          @BinPath = params['BinPath']
          @Param = params['Param']
          @Id = params['Id']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          @MachineName = params['MachineName']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资源管理数据库列表信息
      class AssetDatabaseDetail < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param Name: 数据库名
        # @type Name: String
        # @param Version: 版本
        # @type Version: String
        # @param Port: 监听端口
        # @type Port: String
        # @param Proto: 协议
        # @type Proto: String
        # @param User: 运行用户
        # @type User: String
        # @param Ip: 绑定IP
        # @type Ip: String
        # @param ConfigPath: 配置文件路径
        # @type ConfigPath: String
        # @param LogPath: 日志文件路径
        # @type LogPath: String
        # @param DataPath: 数据路径
        # @type DataPath: String
        # @param Permission: 运行权限
        # @type Permission: String
        # @param ErrorLogPath: 错误日志路径
        # @type ErrorLogPath: String
        # @param PlugInPath: 插件路径
        # @type PlugInPath: String
        # @param BinPath: 二进制路径
        # @type BinPath: String
        # @param Param: 启动参数
        # @type Param: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String

        attr_accessor :MachineIp, :MachineWanIp, :Quuid, :Uuid, :OsInfo, :Name, :Version, :Port, :Proto, :User, :Ip, :ConfigPath, :LogPath, :DataPath, :Permission, :ErrorLogPath, :PlugInPath, :BinPath, :Param, :UpdateTime

        def initialize(machineip=nil, machinewanip=nil, quuid=nil, uuid=nil, osinfo=nil, name=nil, version=nil, port=nil, proto=nil, user=nil, ip=nil, configpath=nil, logpath=nil, datapath=nil, permission=nil, errorlogpath=nil, pluginpath=nil, binpath=nil, param=nil, updatetime=nil)
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @Quuid = quuid
          @Uuid = uuid
          @OsInfo = osinfo
          @Name = name
          @Version = version
          @Port = port
          @Proto = proto
          @User = user
          @Ip = ip
          @ConfigPath = configpath
          @LogPath = logpath
          @DataPath = datapath
          @Permission = permission
          @ErrorLogPath = errorlogpath
          @PlugInPath = pluginpath
          @BinPath = binpath
          @Param = param
          @UpdateTime = updatetime
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @OsInfo = params['OsInfo']
          @Name = params['Name']
          @Version = params['Version']
          @Port = params['Port']
          @Proto = params['Proto']
          @User = params['User']
          @Ip = params['Ip']
          @ConfigPath = params['ConfigPath']
          @LogPath = params['LogPath']
          @DataPath = params['DataPath']
          @Permission = params['Permission']
          @ErrorLogPath = params['ErrorLogPath']
          @PlugInPath = params['PlugInPath']
          @BinPath = params['BinPath']
          @Param = params['Param']
          @UpdateTime = params['UpdateTime']
        end
      end

      # 资产管理磁盘分区信息
      class AssetDiskPartitionInfo < TencentCloud::Common::AbstractModel
        # @param Name: 分区名
        # @type Name: String
        # @param Size: 分区大小:单位G
        # @type Size: Integer
        # @param Percent: 分区使用率
        # @type Percent: Float
        # @param Type: 文件系统类型
        # @type Type: String
        # @param Path: 挂载目录
        # @type Path: String
        # @param Used: 已使用空间:单位G
        # @type Used: Integer

        attr_accessor :Name, :Size, :Percent, :Type, :Path, :Used

        def initialize(name=nil, size=nil, percent=nil, type=nil, path=nil, used=nil)
          @Name = name
          @Size = size
          @Percent = percent
          @Type = type
          @Path = path
          @Used = used
        end

        def deserialize(params)
          @Name = params['Name']
          @Size = params['Size']
          @Percent = params['Percent']
          @Type = params['Type']
          @Path = params['Path']
          @Used = params['Used']
        end
      end

      # 资产管理环境变量列表
      class AssetEnvBaseInfo < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Type: 类型:
        # 0:用户变量
        # 1:系统变量
        # @type Type: Integer
        # @param User: 启动用户
        # @type User: String
        # @param Value: 环境变量值
        # @type Value: String
        # @param MachineIp: 服务器IP
        # @type MachineIp: String
        # @param MachineName: 服务器名称
        # @type MachineName: String
        # @param OsInfo: 操作系统
        # @type OsInfo: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineWanIp: 服务器外网IP
        # @type MachineWanIp: String
        # @param MachineExtraInfo:  附加信息

        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Name, :Type, :User, :Value, :MachineIp, :MachineName, :OsInfo, :Quuid, :Uuid, :UpdateTime, :FirstTime, :IsNew, :MachineWanIp, :MachineExtraInfo

        def initialize(name=nil, type=nil, user=nil, value=nil, machineip=nil, machinename=nil, osinfo=nil, quuid=nil, uuid=nil, updatetime=nil, firsttime=nil, isnew=nil, machinewanip=nil, machineextrainfo=nil)
          @Name = name
          @Type = type
          @User = user
          @Value = value
          @MachineIp = machineip
          @MachineName = machinename
          @OsInfo = osinfo
          @Quuid = quuid
          @Uuid = uuid
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineWanIp = machinewanip
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Name = params['Name']
          @Type = params['Type']
          @User = params['User']
          @Value = params['Value']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          @MachineWanIp = params['MachineWanIp']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 容器安全
      # 描述键值对过滤器,用于条件过滤查询。例如过滤ID、名称、状态等
      # 若存在多个Filter时,Filter间的关系为逻辑与(AND)关系。
      # 若同一个Filter存在多个Values,同一Filter下Values间的关系为逻辑或(OR)关系。
      class AssetFilters < TencentCloud::Common::AbstractModel
        # @param Name: 过滤键的名称。
        # @type Name: String
        # @param Values: 一个或者多个过滤值。
        # @type Values: Array
        # @param ExactMatch: 是否模糊查询
        # @type ExactMatch: Boolean

        attr_accessor :Name, :Values, :ExactMatch

        def initialize(name=nil, values=nil, exactmatch=nil)
          @Name = name
          @Values = values
          @ExactMatch = exactmatch
        end

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

      # 资产管理启动服务列表
      class AssetInitServiceBaseInfo < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Type: 类型:
        # 1:编码器
        # 2:IE插件
        # 3:网络提供者
        # 4:镜像劫持
        # 5:LSA提供者
        # 6:KnownDLLs
        # 7:启动执行
        # 8:WMI
        # 9:计划任务
        # 10:Winsock提供者
        # 11:打印监控器
        # 12:资源管理器
        # 13:驱动服务
        # 14:登录
        # @type Type: Integer
        # @param Status: 默认启用状态:0未启用,1启用
        # @type Status: Integer
        # @param User: 启动用户
        # @type User: String
        # @param Path: 路径
        # @type Path: String
        # @param MachineIp: 服务器IP
        # @type MachineIp: String
        # @param MachineName: 服务器名称
        # @type MachineName: String
        # @param OsInfo: 操作系统
        # @type OsInfo: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param UpdateTime: 数据更新时间
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineWanIp: 服务器外网IP
        # @type MachineWanIp: String
        # @param MachineExtraInfo:  附加信息

        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param IsAutoRun: 开机自启动[0:否|1:是]
        # @type IsAutoRun: Integer

        attr_accessor :Name, :Type, :Status, :User, :Path, :MachineIp, :MachineName, :OsInfo, :Quuid, :Uuid, :UpdateTime, :FirstTime, :IsNew, :MachineWanIp, :MachineExtraInfo, :IsAutoRun

        def initialize(name=nil, type=nil, status=nil, user=nil, path=nil, machineip=nil, machinename=nil, osinfo=nil, quuid=nil, uuid=nil, updatetime=nil, firsttime=nil, isnew=nil, machinewanip=nil, machineextrainfo=nil, isautorun=nil)
          @Name = name
          @Type = type
          @Status = status
          @User = user
          @Path = path
          @MachineIp = machineip
          @MachineName = machinename
          @OsInfo = osinfo
          @Quuid = quuid
          @Uuid = uuid
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineWanIp = machinewanip
          @MachineExtraInfo = machineextrainfo
          @IsAutoRun = isautorun
        end

        def deserialize(params)
          @Name = params['Name']
          @Type = params['Type']
          @Status = params['Status']
          @User = params['User']
          @Path = params['Path']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          @MachineWanIp = params['MachineWanIp']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @IsAutoRun = params['IsAutoRun']
        end
      end

      # 资产管理jar包列表
      class AssetJarBaseInfo < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Type: 类型:1应用程序,2系统类库,3Web服务自带库,8:其他,
        # @type Type: Integer
        # @param Status: 是否可执行:0未知,1是,2否
        # @type Status: Integer
        # @param Version: 版本
        # @type Version: String
        # @param Path: 路径
        # @type Path: String
        # @param MachineIp: 服务器IP
        # @type MachineIp: String
        # @param MachineName: 服务器名称
        # @type MachineName: String
        # @param OsInfo: 操作系统
        # @type OsInfo: String
        # @param Id: Jar包ID
        # @type Id: String
        # @param Md5: Jar包Md5
        # @type Md5: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineWanIp: 服务器外网IP
        # @type MachineWanIp: String
        # @param MachineExtraInfo:  附加信息

        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Name, :Type, :Status, :Version, :Path, :MachineIp, :MachineName, :OsInfo, :Id, :Md5, :Quuid, :Uuid, :UpdateTime, :FirstTime, :IsNew, :MachineWanIp, :MachineExtraInfo

        def initialize(name=nil, type=nil, status=nil, version=nil, path=nil, machineip=nil, machinename=nil, osinfo=nil, id=nil, md5=nil, quuid=nil, uuid=nil, updatetime=nil, firsttime=nil, isnew=nil, machinewanip=nil, machineextrainfo=nil)
          @Name = name
          @Type = type
          @Status = status
          @Version = version
          @Path = path
          @MachineIp = machineip
          @MachineName = machinename
          @OsInfo = osinfo
          @Id = id
          @Md5 = md5
          @Quuid = quuid
          @Uuid = uuid
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineWanIp = machinewanip
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Name = params['Name']
          @Type = params['Type']
          @Status = params['Status']
          @Version = params['Version']
          @Path = params['Path']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Id = params['Id']
          @Md5 = params['Md5']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          @MachineWanIp = params['MachineWanIp']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资产管理jar包详情
      class AssetJarDetail < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Type: 类型:1应用程序,2系统类库,3Web服务自带库,8:其他,
        # @type Type: Integer
        # @param Status: 是否可执行:0未知,1是,2否
        # @type Status: Integer
        # @param Version: 版本
        # @type Version: String
        # @param Path: 路径
        # @type Path: String
        # @param MachineIp: 服务器IP
        # @type MachineIp: String
        # @param MachineName: 服务器名称
        # @type MachineName: String
        # @param OsInfo: 操作系统
        # @type OsInfo: String
        # @param Process: 引用进程列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Process: Array
        # @param Md5: Jar包Md5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Md5: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String

        attr_accessor :Name, :Type, :Status, :Version, :Path, :MachineIp, :MachineName, :OsInfo, :Process, :Md5, :UpdateTime

        def initialize(name=nil, type=nil, status=nil, version=nil, path=nil, machineip=nil, machinename=nil, osinfo=nil, process=nil, md5=nil, updatetime=nil)
          @Name = name
          @Type = type
          @Status = status
          @Version = version
          @Path = path
          @MachineIp = machineip
          @MachineName = machinename
          @OsInfo = osinfo
          @Process = process
          @Md5 = md5
          @UpdateTime = updatetime
        end

        def deserialize(params)
          @Name = params['Name']
          @Type = params['Type']
          @Status = params['Status']
          @Version = params['Version']
          @Path = params['Path']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          unless params['Process'].nil?
            @Process = []
            params['Process'].each do |i|
              assetappprocessinfo_tmp = AssetAppProcessInfo.new
              assetappprocessinfo_tmp.deserialize(i)
              @Process << assetappprocessinfo_tmp
            end
          end
          @Md5 = params['Md5']
          @UpdateTime = params['UpdateTime']
        end
      end

      # key-val类型的通用数据结构
      class AssetKeyVal < TencentCloud::Common::AbstractModel
        # @param Key: 标签
        # @type Key: String
        # @param Value: 数量
        # @type Value: Integer
        # @param Desc: 描述信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Desc: String
        # @param NewCount: 今日新增数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NewCount: Integer

        attr_accessor :Key, :Value, :Desc, :NewCount

        def initialize(key=nil, value=nil, desc=nil, newcount=nil)
          @Key = key
          @Value = value
          @Desc = desc
          @NewCount = newcount
        end

        def deserialize(params)
          @Key = params['Key']
          @Value = params['Value']
          @Desc = params['Desc']
          @NewCount = params['NewCount']
        end
      end

      # 资产管理负载信息
      class AssetLoadDetail < TencentCloud::Common::AbstractModel
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param Desc: 描述
        # @type Desc: String
        # @param Value: 负载
        # @type Value: Float
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String

        attr_accessor :MachineName, :Desc, :Value, :Quuid, :Uuid

        def initialize(machinename=nil, desc=nil, value=nil, quuid=nil, uuid=nil)
          @MachineName = machinename
          @Desc = desc
          @Value = value
          @Quuid = quuid
          @Uuid = uuid
        end

        def deserialize(params)
          @MachineName = params['MachineName']
          @Desc = params['Desc']
          @Value = params['Value']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
        end
      end

      # 资源负载概况
      class AssetLoadSummary < TencentCloud::Common::AbstractModel
        # @param Counts: 负载量数组,依次为:
        # [
        # 0%或未知数量,
        # 0%~20%,
        # 20%~50%,
        # 50%~80%,
        # 80%~100%
        # ]
        # @type Counts: Array
        # @param Top5: 负载Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Top5: Array

        attr_accessor :Counts, :Top5

        def initialize(counts=nil, top5=nil)
          @Counts = counts
          @Top5 = top5
        end

        def deserialize(params)
          @Counts = params['Counts']
          unless params['Top5'].nil?
            @Top5 = []
            params['Top5'].each do |i|
              assetloaddetail_tmp = AssetLoadDetail.new
              assetloaddetail_tmp.deserialize(i)
              @Top5 << assetloaddetail_tmp
            end
          end
        end
      end

      # 资产指纹中服务器列表的基本信息
      class AssetMachineBaseInfo < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器uuid
        # @type Uuid: String
        # @param MachineIp: 服务器内网IP
        # @type MachineIp: String
        # @param MachineName: 服务器名称
        # @type MachineName: String
        # @param OsInfo: 操作系统名称
        # @type OsInfo: String
        # @param Cpu: CPU信息
        # @type Cpu: String
        # @param MemSize: 内存容量:单位G
        # @type MemSize: Integer
        # @param MemLoad: 内存使用率百分比
        # @type MemLoad: String
        # @param DiskSize: 硬盘容量:单位G
        # @type DiskSize: Integer
        # @param DiskLoad: 硬盘使用率百分比
        # @type DiskLoad: String
        # @param PartitionCount: 分区数
        # @type PartitionCount: Integer
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param ProjectId: 业务组ID
        # @type ProjectId: Integer
        # @param CpuSize: Cpu数量
        # @type CpuSize: Integer
        # @param CpuLoad: Cpu使用率百分比
        # @type CpuLoad: String
        # @param Tag: 标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Quuid, :Uuid, :MachineIp, :MachineName, :OsInfo, :Cpu, :MemSize, :MemLoad, :DiskSize, :DiskLoad, :PartitionCount, :MachineWanIp, :ProjectId, :CpuSize, :CpuLoad, :Tag, :UpdateTime, :IsNew, :FirstTime, :MachineExtraInfo

        def initialize(quuid=nil, uuid=nil, machineip=nil, machinename=nil, osinfo=nil, cpu=nil, memsize=nil, memload=nil, disksize=nil, diskload=nil, partitioncount=nil, machinewanip=nil, projectid=nil, cpusize=nil, cpuload=nil, tag=nil, updatetime=nil, isnew=nil, firsttime=nil, machineextrainfo=nil)
          @Quuid = quuid
          @Uuid = uuid
          @MachineIp = machineip
          @MachineName = machinename
          @OsInfo = osinfo
          @Cpu = cpu
          @MemSize = memsize
          @MemLoad = memload
          @DiskSize = disksize
          @DiskLoad = diskload
          @PartitionCount = partitioncount
          @MachineWanIp = machinewanip
          @ProjectId = projectid
          @CpuSize = cpusize
          @CpuLoad = cpuload
          @Tag = tag
          @UpdateTime = updatetime
          @IsNew = isnew
          @FirstTime = firsttime
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Cpu = params['Cpu']
          @MemSize = params['MemSize']
          @MemLoad = params['MemLoad']
          @DiskSize = params['DiskSize']
          @DiskLoad = params['DiskLoad']
          @PartitionCount = params['PartitionCount']
          @MachineWanIp = params['MachineWanIp']
          @ProjectId = params['ProjectId']
          @CpuSize = params['CpuSize']
          @CpuLoad = params['CpuLoad']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @UpdateTime = params['UpdateTime']
          @IsNew = params['IsNew']
          @FirstTime = params['FirstTime']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资产指纹中服务器列表的基本信息
      class AssetMachineDetail < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器uuid
        # @type Uuid: String
        # @param MachineIp: 服务器内网IP
        # @type MachineIp: String
        # @param MachineName: 服务器名称
        # @type MachineName: String
        # @param OsInfo: 操作系统名称
        # @type OsInfo: String
        # @param Cpu: CPU信息
        # @type Cpu: String
        # @param MemSize: 内存容量:单位G
        # @type MemSize: Integer
        # @param MemLoad: 内存使用率百分比
        # @type MemLoad: String
        # @param DiskSize: 硬盘容量:单位G
        # @type DiskSize: Integer
        # @param DiskLoad: 硬盘使用率百分比
        # @type DiskLoad: String
        # @param PartitionCount: 分区数
        # @type PartitionCount: Integer
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param CpuSize: Cpu数量
        # @type CpuSize: Integer
        # @param CpuLoad: Cpu负载
        # @type CpuLoad: String
        # @param ProtectLevel: 防护级别:0基础版,1专业版,2旗舰版,3普惠版
        # @type ProtectLevel: Integer
        # @param RiskStatus: 风险状态:UNKNOW-未知,RISK-风险,SAFT-安全
        # @type RiskStatus: String
        # @param ProtectDays: 已防护天数
        # @type ProtectDays: Integer
        # @param BuyTime: 专业版开通时间
        # @type BuyTime: String
        # @param EndTime: 专业版到期时间
        # @type EndTime: String
        # @param CoreVersion: 内核版本
        # @type CoreVersion: String
        # @param OsType: linux/windows
        # @type OsType: String
        # @param AgentVersion: agent版本
        # @type AgentVersion: String
        # @param InstallTime: 安装时间
        # @type InstallTime: String
        # @param BootTime: 系统启动时间
        # @type BootTime: String
        # @param LastLiveTime: 最后上线时间
        # @type LastLiveTime: String
        # @param Producer: 生产商
        # @type Producer: String
        # @param SerialNumber: 序列号
        # @type SerialNumber: String
        # @param NetCards: 网卡
        # @type NetCards: Array
        # @param Disks: 分区
        # @type Disks: Array
        # @param Status: 0在线,1已离线
        # @type Status: Integer
        # @param ProjectId: 业务组ID
        # @type ProjectId: Integer
        # @param DeviceVersion: 设备型号
        # @type DeviceVersion: String
        # @param OfflineTime: 离线时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type OfflineTime: String
        # @param InstanceId: 主机ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceId: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param MachineExtraInfo: 主机二外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param CpuLoadVul: CpuLoadVul
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CpuLoadVul: String
        # @param FirstTime: 时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FirstTime: String

        attr_accessor :Quuid, :Uuid, :MachineIp, :MachineName, :OsInfo, :Cpu, :MemSize, :MemLoad, :DiskSize, :DiskLoad, :PartitionCount, :MachineWanIp, :CpuSize, :CpuLoad, :ProtectLevel, :RiskStatus, :ProtectDays, :BuyTime, :EndTime, :CoreVersion, :OsType, :AgentVersion, :InstallTime, :BootTime, :LastLiveTime, :Producer, :SerialNumber, :NetCards, :Disks, :Status, :ProjectId, :DeviceVersion, :OfflineTime, :InstanceId, :UpdateTime, :MachineExtraInfo, :CpuLoadVul, :FirstTime

        def initialize(quuid=nil, uuid=nil, machineip=nil, machinename=nil, osinfo=nil, cpu=nil, memsize=nil, memload=nil, disksize=nil, diskload=nil, partitioncount=nil, machinewanip=nil, cpusize=nil, cpuload=nil, protectlevel=nil, riskstatus=nil, protectdays=nil, buytime=nil, endtime=nil, coreversion=nil, ostype=nil, agentversion=nil, installtime=nil, boottime=nil, lastlivetime=nil, producer=nil, serialnumber=nil, netcards=nil, disks=nil, status=nil, projectid=nil, deviceversion=nil, offlinetime=nil, instanceid=nil, updatetime=nil, machineextrainfo=nil, cpuloadvul=nil, firsttime=nil)
          @Quuid = quuid
          @Uuid = uuid
          @MachineIp = machineip
          @MachineName = machinename
          @OsInfo = osinfo
          @Cpu = cpu
          @MemSize = memsize
          @MemLoad = memload
          @DiskSize = disksize
          @DiskLoad = diskload
          @PartitionCount = partitioncount
          @MachineWanIp = machinewanip
          @CpuSize = cpusize
          @CpuLoad = cpuload
          @ProtectLevel = protectlevel
          @RiskStatus = riskstatus
          @ProtectDays = protectdays
          @BuyTime = buytime
          @EndTime = endtime
          @CoreVersion = coreversion
          @OsType = ostype
          @AgentVersion = agentversion
          @InstallTime = installtime
          @BootTime = boottime
          @LastLiveTime = lastlivetime
          @Producer = producer
          @SerialNumber = serialnumber
          @NetCards = netcards
          @Disks = disks
          @Status = status
          @ProjectId = projectid
          @DeviceVersion = deviceversion
          @OfflineTime = offlinetime
          @InstanceId = instanceid
          @UpdateTime = updatetime
          @MachineExtraInfo = machineextrainfo
          @CpuLoadVul = cpuloadvul
          @FirstTime = firsttime
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Cpu = params['Cpu']
          @MemSize = params['MemSize']
          @MemLoad = params['MemLoad']
          @DiskSize = params['DiskSize']
          @DiskLoad = params['DiskLoad']
          @PartitionCount = params['PartitionCount']
          @MachineWanIp = params['MachineWanIp']
          @CpuSize = params['CpuSize']
          @CpuLoad = params['CpuLoad']
          @ProtectLevel = params['ProtectLevel']
          @RiskStatus = params['RiskStatus']
          @ProtectDays = params['ProtectDays']
          @BuyTime = params['BuyTime']
          @EndTime = params['EndTime']
          @CoreVersion = params['CoreVersion']
          @OsType = params['OsType']
          @AgentVersion = params['AgentVersion']
          @InstallTime = params['InstallTime']
          @BootTime = params['BootTime']
          @LastLiveTime = params['LastLiveTime']
          @Producer = params['Producer']
          @SerialNumber = params['SerialNumber']
          unless params['NetCards'].nil?
            @NetCards = []
            params['NetCards'].each do |i|
              assetnetworkcardinfo_tmp = AssetNetworkCardInfo.new
              assetnetworkcardinfo_tmp.deserialize(i)
              @NetCards << assetnetworkcardinfo_tmp
            end
          end
          unless params['Disks'].nil?
            @Disks = []
            params['Disks'].each do |i|
              assetdiskpartitioninfo_tmp = AssetDiskPartitionInfo.new
              assetdiskpartitioninfo_tmp.deserialize(i)
              @Disks << assetdiskpartitioninfo_tmp
            end
          end
          @Status = params['Status']
          @ProjectId = params['ProjectId']
          @DeviceVersion = params['DeviceVersion']
          @OfflineTime = params['OfflineTime']
          @InstanceId = params['InstanceId']
          @UpdateTime = params['UpdateTime']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @CpuLoadVul = params['CpuLoadVul']
          @FirstTime = params['FirstTime']
        end
      end

      # 资产管理网卡信息
      class AssetNetworkCardInfo < TencentCloud::Common::AbstractModel
        # @param Name: 网卡名称
        # @type Name: String
        # @param Ip: Ipv4对应IP
        # @type Ip: String
        # @param GateWay: 网关
        # @type GateWay: String
        # @param Mac: MAC地址
        # @type Mac: String
        # @param Ipv6: Ipv6对应IP
        # @type Ipv6: String
        # @param DnsServer: DNS服务器
        # @type DnsServer: String

        attr_accessor :Name, :Ip, :GateWay, :Mac, :Ipv6, :DnsServer

        def initialize(name=nil, ip=nil, gateway=nil, mac=nil, ipv6=nil, dnsserver=nil)
          @Name = name
          @Ip = ip
          @GateWay = gateway
          @Mac = mac
          @Ipv6 = ipv6
          @DnsServer = dnsserver
        end

        def deserialize(params)
          @Name = params['Name']
          @Ip = params['Ip']
          @GateWay = params['GateWay']
          @Mac = params['Mac']
          @Ipv6 = params['Ipv6']
          @DnsServer = params['DnsServer']
        end
      end

      # 资产管理计划任务列表
      class AssetPlanTask < TencentCloud::Common::AbstractModel
        # @param Status: 默认启用状态:1启用,2未启用
        # @type Status: Integer
        # @param Cycle: 执行周期
        # @type Cycle: String
        # @param Command: 执行命令或脚本
        # @type Command: String
        # @param User: 启动用户
        # @type User: String
        # @param ConfigPath: 配置文件路径
        # @type ConfigPath: String
        # @param MachineIp: 服务器IP
        # @type MachineIp: String
        # @param MachineName: 服务器名称
        # @type MachineName: String
        # @param OsInfo: 操作系统
        # @type OsInfo: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineWanIp: 服务器外网IP
        # @type MachineWanIp: String
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Status, :Cycle, :Command, :User, :ConfigPath, :MachineIp, :MachineName, :OsInfo, :Quuid, :Uuid, :UpdateTime, :FirstTime, :IsNew, :MachineWanIp, :MachineExtraInfo

        def initialize(status=nil, cycle=nil, command=nil, user=nil, configpath=nil, machineip=nil, machinename=nil, osinfo=nil, quuid=nil, uuid=nil, updatetime=nil, firsttime=nil, isnew=nil, machinewanip=nil, machineextrainfo=nil)
          @Status = status
          @Cycle = cycle
          @Command = command
          @User = user
          @ConfigPath = configpath
          @MachineIp = machineip
          @MachineName = machinename
          @OsInfo = osinfo
          @Quuid = quuid
          @Uuid = uuid
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineWanIp = machinewanip
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Status = params['Status']
          @Cycle = params['Cycle']
          @Command = params['Command']
          @User = params['User']
          @ConfigPath = params['ConfigPath']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          @MachineWanIp = params['MachineWanIp']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资源管理账号基本信息
      class AssetPortBaseInfo < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param Tag: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param ProcessName: 进程名称
        # @type ProcessName: String
        # @param ProcessVersion: 进程版本
        # @type ProcessVersion: String
        # @param ProcessPath: 进程路径
        # @type ProcessPath: String
        # @param Pid: 进程ID
        # @type Pid: String
        # @param User: 运行用户
        # @type User: String
        # @param StartTime: 启动时间
        # @type StartTime: String
        # @param Param: 启动参数
        # @type Param: String
        # @param Teletype: 进程TTY
        # @type Teletype: String
        # @param Port: 端口
        # @type Port: String
        # @param GroupName: 所属用户组
        # @type GroupName: String
        # @param Md5: 进程MD5
        # @type Md5: String
        # @param Ppid: 父进程ID
        # @type Ppid: String
        # @param ParentProcessName: 父进程名称
        # @type ParentProcessName: String
        # @param Proto: 端口协议
        # @type Proto: String
        # @param BindIp: 绑定IP
        # @type BindIp: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineIp, :MachineWanIp, :Quuid, :Uuid, :OsInfo, :ProjectId, :Tag, :ProcessName, :ProcessVersion, :ProcessPath, :Pid, :User, :StartTime, :Param, :Teletype, :Port, :GroupName, :Md5, :Ppid, :ParentProcessName, :Proto, :BindIp, :MachineName, :UpdateTime, :FirstTime, :IsNew, :MachineExtraInfo

        def initialize(machineip=nil, machinewanip=nil, quuid=nil, uuid=nil, osinfo=nil, projectid=nil, tag=nil, processname=nil, processversion=nil, processpath=nil, pid=nil, user=nil, starttime=nil, param=nil, teletype=nil, port=nil, groupname=nil, md5=nil, ppid=nil, parentprocessname=nil, proto=nil, bindip=nil, machinename=nil, updatetime=nil, firsttime=nil, isnew=nil, machineextrainfo=nil)
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @Quuid = quuid
          @Uuid = uuid
          @OsInfo = osinfo
          @ProjectId = projectid
          @Tag = tag
          @ProcessName = processname
          @ProcessVersion = processversion
          @ProcessPath = processpath
          @Pid = pid
          @User = user
          @StartTime = starttime
          @Param = param
          @Teletype = teletype
          @Port = port
          @GroupName = groupname
          @Md5 = md5
          @Ppid = ppid
          @ParentProcessName = parentprocessname
          @Proto = proto
          @BindIp = bindip
          @MachineName = machinename
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @OsInfo = params['OsInfo']
          @ProjectId = params['ProjectId']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @ProcessName = params['ProcessName']
          @ProcessVersion = params['ProcessVersion']
          @ProcessPath = params['ProcessPath']
          @Pid = params['Pid']
          @User = params['User']
          @StartTime = params['StartTime']
          @Param = params['Param']
          @Teletype = params['Teletype']
          @Port = params['Port']
          @GroupName = params['GroupName']
          @Md5 = params['Md5']
          @Ppid = params['Ppid']
          @ParentProcessName = params['ParentProcessName']
          @Proto = params['Proto']
          @BindIp = params['BindIp']
          @MachineName = params['MachineName']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资源管理进程基本信息
      class AssetProcessBaseInfo < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param Tag: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param Name: 进程名称
        # @type Name: String
        # @param Desc: 进程说明
        # @type Desc: String
        # @param Path: 进程路径
        # @type Path: String
        # @param Pid: 进程ID
        # @type Pid: String
        # @param User: 运行用户
        # @type User: String
        # @param StartTime: 启动时间
        # @type StartTime: String
        # @param Param: 启动参数
        # @type Param: String
        # @param Tty: 进程TTY
        # @type Tty: String
        # @param Version: 进程版本
        # @type Version: String
        # @param GroupName: 进程用户组
        # @type GroupName: String
        # @param Md5: 进程MD5
        # @type Md5: String
        # @param Ppid: 父进程ID
        # @type Ppid: String
        # @param ParentProcessName: 父进程名称
        # @type ParentProcessName: String
        # @param Status: 进程状态
        # @type Status: String
        # @param HasSign: 数字签名:0无,1有, 999 空,仅windows
        # @type HasSign: Integer
        # @param InstallByPackage: 是否通过安装包安装::0否,1是, 999 空,仅linux
        # @type InstallByPackage: Integer
        # @param PackageName: 软件包名
        # @type PackageName: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineExtraInfo:  附加信息

        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineIp, :MachineWanIp, :Quuid, :Uuid, :OsInfo, :ProjectId, :Tag, :Name, :Desc, :Path, :Pid, :User, :StartTime, :Param, :Tty, :Version, :GroupName, :Md5, :Ppid, :ParentProcessName, :Status, :HasSign, :InstallByPackage, :PackageName, :MachineName, :UpdateTime, :FirstTime, :IsNew, :MachineExtraInfo

        def initialize(machineip=nil, machinewanip=nil, quuid=nil, uuid=nil, osinfo=nil, projectid=nil, tag=nil, name=nil, desc=nil, path=nil, pid=nil, user=nil, starttime=nil, param=nil, tty=nil, version=nil, groupname=nil, md5=nil, ppid=nil, parentprocessname=nil, status=nil, hassign=nil, installbypackage=nil, packagename=nil, machinename=nil, updatetime=nil, firsttime=nil, isnew=nil, machineextrainfo=nil)
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @Quuid = quuid
          @Uuid = uuid
          @OsInfo = osinfo
          @ProjectId = projectid
          @Tag = tag
          @Name = name
          @Desc = desc
          @Path = path
          @Pid = pid
          @User = user
          @StartTime = starttime
          @Param = param
          @Tty = tty
          @Version = version
          @GroupName = groupname
          @Md5 = md5
          @Ppid = ppid
          @ParentProcessName = parentprocessname
          @Status = status
          @HasSign = hassign
          @InstallByPackage = installbypackage
          @PackageName = packagename
          @MachineName = machinename
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @OsInfo = params['OsInfo']
          @ProjectId = params['ProjectId']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Name = params['Name']
          @Desc = params['Desc']
          @Path = params['Path']
          @Pid = params['Pid']
          @User = params['User']
          @StartTime = params['StartTime']
          @Param = params['Param']
          @Tty = params['Tty']
          @Version = params['Version']
          @GroupName = params['GroupName']
          @Md5 = params['Md5']
          @Ppid = params['Ppid']
          @ParentProcessName = params['ParentProcessName']
          @Status = params['Status']
          @HasSign = params['HasSign']
          @InstallByPackage = params['InstallByPackage']
          @PackageName = params['PackageName']
          @MachineName = params['MachineName']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资源管理系统安装包列表信息
      class AssetSystemPackageInfo < TencentCloud::Common::AbstractModel
        # @param Name: 数据库名
        # @type Name: String
        # @param Desc: 描述
        # @type Desc: String
        # @param Version: 版本
        # @type Version: String
        # @param InstallTime: 安装时间
        # @type InstallTime: String
        # @param Type: 类型
        # @type Type: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param MachineIp: 主机IP
        # @type MachineIp: String
        # @param OsInfo: 操作系统
        # @type OsInfo: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineExtraInfo: 附加信息
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Quuid: 主机Id
        # @type Quuid: String
        # @param Uuid: Agent Id
        # @type Uuid: String

        attr_accessor :Name, :Desc, :Version, :InstallTime, :Type, :MachineName, :MachineIp, :OsInfo, :UpdateTime, :FirstTime, :IsNew, :MachineExtraInfo, :Quuid, :Uuid

        def initialize(name=nil, desc=nil, version=nil, installtime=nil, type=nil, machinename=nil, machineip=nil, osinfo=nil, updatetime=nil, firsttime=nil, isnew=nil, machineextrainfo=nil, quuid=nil, uuid=nil)
          @Name = name
          @Desc = desc
          @Version = version
          @InstallTime = installtime
          @Type = type
          @MachineName = machinename
          @MachineIp = machineip
          @OsInfo = osinfo
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
          @Quuid = quuid
          @Uuid = uuid
        end

        def deserialize(params)
          @Name = params['Name']
          @Desc = params['Desc']
          @Version = params['Version']
          @InstallTime = params['InstallTime']
          @Type = params['Type']
          @MachineName = params['MachineName']
          @MachineIp = params['MachineIp']
          @OsInfo = params['OsInfo']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
        end
      end

      # 资产指纹类型描述
      class AssetType < TencentCloud::Common::AbstractModel
        # @param Id: 类型ID
        # @type Id: Integer
        # @param Name: 类型名称
        # @type Name: String

        attr_accessor :Id, :Name

        def initialize(id=nil, name=nil)
          @Id = id
          @Name = name
        end

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

      # 资源管理账号基本信息
      class AssetUserBaseInfo < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uid: 账号UID
        # @type Uid: String
        # @param Gid: 账号GID
        # @type Gid: String
        # @param Status: 账号状态:0-禁用;1-启用
        # @type Status: Integer
        # @param IsRoot: 是否有root权限:0-否;1是,999为空: 仅linux
        # @type IsRoot: Integer
        # @param LoginType: 登录方式:0-不可登录;1-只允许key登录;2只允许密码登录;3-允许key和密码,999为空,仅linux
        # @type LoginType: Integer
        # @param LastLoginTime: 上次登录时间
        # @type LastLoginTime: String
        # @param Name: 账号名称
        # @type Name: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param UserType: 账号类型:0访客用户,1标准用户,2管理员用户 ,999为空,仅windows
        # @type UserType: Integer
        # @param IsDomain: 是否域账号:0否, 1是,2否, 999为空  仅windows
        # @type IsDomain: Integer
        # @param IsSudo: 是否有sudo权限,1是,0否, 999为空, 仅linux
        # @type IsSudo: Integer
        # @param IsSshLogin: 是否允许ssh登录,1是,0否, 999为空, 仅linux
        # @type IsSshLogin: Integer
        # @param HomePath: Home目录
        # @type HomePath: String
        # @param Shell: Shell路径  仅linux
        # @type Shell: String
        # @param ShellLoginStatus: 是否shell登录性,0不是;1是 仅linux
        # @type ShellLoginStatus: Integer
        # @param PasswordChangeTime: 密码修改时间
        # @type PasswordChangeTime: String
        # @param PasswordDueTime: 密码过期时间  仅linux
        # @type PasswordDueTime: String
        # @param PasswordLockDays: 密码锁定时间:单位天, -1为永不锁定 999为空,仅linux
        # @type PasswordLockDays: Integer
        # @param PasswordStatus: 密码状态:1正常 2即将过期 3已过期 4已锁定 999为空 仅linux
        # @type PasswordStatus: Integer
        # @param UpdateTime: 更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineIp, :MachineWanIp, :MachineName, :OsInfo, :Uuid, :Quuid, :Uid, :Gid, :Status, :IsRoot, :LoginType, :LastLoginTime, :Name, :ProjectId, :UserType, :IsDomain, :IsSudo, :IsSshLogin, :HomePath, :Shell, :ShellLoginStatus, :PasswordChangeTime, :PasswordDueTime, :PasswordLockDays, :PasswordStatus, :UpdateTime, :FirstTime, :IsNew, :MachineExtraInfo

        def initialize(machineip=nil, machinewanip=nil, machinename=nil, osinfo=nil, uuid=nil, quuid=nil, uid=nil, gid=nil, status=nil, isroot=nil, logintype=nil, lastlogintime=nil, name=nil, projectid=nil, usertype=nil, isdomain=nil, issudo=nil, issshlogin=nil, homepath=nil, shell=nil, shellloginstatus=nil, passwordchangetime=nil, passwordduetime=nil, passwordlockdays=nil, passwordstatus=nil, updatetime=nil, firsttime=nil, isnew=nil, machineextrainfo=nil)
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @MachineName = machinename
          @OsInfo = osinfo
          @Uuid = uuid
          @Quuid = quuid
          @Uid = uid
          @Gid = gid
          @Status = status
          @IsRoot = isroot
          @LoginType = logintype
          @LastLoginTime = lastlogintime
          @Name = name
          @ProjectId = projectid
          @UserType = usertype
          @IsDomain = isdomain
          @IsSudo = issudo
          @IsSshLogin = issshlogin
          @HomePath = homepath
          @Shell = shell
          @ShellLoginStatus = shellloginstatus
          @PasswordChangeTime = passwordchangetime
          @PasswordDueTime = passwordduetime
          @PasswordLockDays = passwordlockdays
          @PasswordStatus = passwordstatus
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Uid = params['Uid']
          @Gid = params['Gid']
          @Status = params['Status']
          @IsRoot = params['IsRoot']
          @LoginType = params['LoginType']
          @LastLoginTime = params['LastLoginTime']
          @Name = params['Name']
          @ProjectId = params['ProjectId']
          @UserType = params['UserType']
          @IsDomain = params['IsDomain']
          @IsSudo = params['IsSudo']
          @IsSshLogin = params['IsSshLogin']
          @HomePath = params['HomePath']
          @Shell = params['Shell']
          @ShellLoginStatus = params['ShellLoginStatus']
          @PasswordChangeTime = params['PasswordChangeTime']
          @PasswordDueTime = params['PasswordDueTime']
          @PasswordLockDays = params['PasswordLockDays']
          @PasswordStatus = params['PasswordStatus']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资源管理账号基本信息
      class AssetUserDetail < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uid: 账号UID
        # @type Uid: String
        # @param Gid: 账号GID
        # @type Gid: String
        # @param Status: 账号状态:0-禁用;1-启用
        # @type Status: Integer
        # @param IsRoot: 是否有root权限:0-否;1是,999为空: 仅linux
        # @type IsRoot: Integer
        # @param LastLoginTime: 上次登录时间
        # @type LastLoginTime: String
        # @param Name: 账号名称
        # @type Name: String
        # @param UserType: 账号类型:0访客用户,1标准用户,2管理员用户 ,999为空,仅windows
        # @type UserType: Integer
        # @param IsDomain: 是否域账号:0否, 1是, 999为空  仅windows
        # @type IsDomain: Integer
        # @param IsSshLogin: 是否允许ssh登录,1是,0否, 999为空, 仅linux
        # @type IsSshLogin: Integer
        # @param HomePath: Home目录
        # @type HomePath: String
        # @param Shell: Shell路径  仅linux
        # @type Shell: String
        # @param ShellLoginStatus: 是否shell登录性,0不是;1是 仅linux
        # @type ShellLoginStatus: Integer
        # @param PasswordChangeTime: 密码修改时间
        # @type PasswordChangeTime: String
        # @param PasswordDueTime: 密码过期时间  仅linux
        # @type PasswordDueTime: String
        # @param PasswordLockDays: 密码锁定时间:单位天, -1为永不锁定 999为空,仅linux
        # @type PasswordLockDays: Integer
        # @param Remark: 备注
        # @type Remark: String
        # @param GroupName: 用户组名
        # @type GroupName: String
        # @param DisableTime: 账号到期时间
        # @type DisableTime: String
        # @param LastLoginTerminal: 最近登录终端
        # @type LastLoginTerminal: String
        # @param LastLoginLoc: 最近登录位置
        # @type LastLoginLoc: String
        # @param LastLoginIp: 最近登录IP
        # @type LastLoginIp: String
        # @param PasswordWarnDays: 密码过期提醒:单位天
        # @type PasswordWarnDays: Integer
        # @param PasswordChangeType: 密码修改设置:0-不可修改,1-可修改
        # @type PasswordChangeType: Integer
        # @param Keys: 用户公钥列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Keys: Array
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String

        attr_accessor :MachineIp, :MachineName, :Uuid, :Quuid, :Uid, :Gid, :Status, :IsRoot, :LastLoginTime, :Name, :UserType, :IsDomain, :IsSshLogin, :HomePath, :Shell, :ShellLoginStatus, :PasswordChangeTime, :PasswordDueTime, :PasswordLockDays, :Remark, :GroupName, :DisableTime, :LastLoginTerminal, :LastLoginLoc, :LastLoginIp, :PasswordWarnDays, :PasswordChangeType, :Keys, :UpdateTime

        def initialize(machineip=nil, machinename=nil, uuid=nil, quuid=nil, uid=nil, gid=nil, status=nil, isroot=nil, lastlogintime=nil, name=nil, usertype=nil, isdomain=nil, issshlogin=nil, homepath=nil, shell=nil, shellloginstatus=nil, passwordchangetime=nil, passwordduetime=nil, passwordlockdays=nil, remark=nil, groupname=nil, disabletime=nil, lastloginterminal=nil, lastloginloc=nil, lastloginip=nil, passwordwarndays=nil, passwordchangetype=nil, keys=nil, updatetime=nil)
          @MachineIp = machineip
          @MachineName = machinename
          @Uuid = uuid
          @Quuid = quuid
          @Uid = uid
          @Gid = gid
          @Status = status
          @IsRoot = isroot
          @LastLoginTime = lastlogintime
          @Name = name
          @UserType = usertype
          @IsDomain = isdomain
          @IsSshLogin = issshlogin
          @HomePath = homepath
          @Shell = shell
          @ShellLoginStatus = shellloginstatus
          @PasswordChangeTime = passwordchangetime
          @PasswordDueTime = passwordduetime
          @PasswordLockDays = passwordlockdays
          @Remark = remark
          @GroupName = groupname
          @DisableTime = disabletime
          @LastLoginTerminal = lastloginterminal
          @LastLoginLoc = lastloginloc
          @LastLoginIp = lastloginip
          @PasswordWarnDays = passwordwarndays
          @PasswordChangeType = passwordchangetype
          @Keys = keys
          @UpdateTime = updatetime
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Uid = params['Uid']
          @Gid = params['Gid']
          @Status = params['Status']
          @IsRoot = params['IsRoot']
          @LastLoginTime = params['LastLoginTime']
          @Name = params['Name']
          @UserType = params['UserType']
          @IsDomain = params['IsDomain']
          @IsSshLogin = params['IsSshLogin']
          @HomePath = params['HomePath']
          @Shell = params['Shell']
          @ShellLoginStatus = params['ShellLoginStatus']
          @PasswordChangeTime = params['PasswordChangeTime']
          @PasswordDueTime = params['PasswordDueTime']
          @PasswordLockDays = params['PasswordLockDays']
          @Remark = params['Remark']
          @GroupName = params['GroupName']
          @DisableTime = params['DisableTime']
          @LastLoginTerminal = params['LastLoginTerminal']
          @LastLoginLoc = params['LastLoginLoc']
          @LastLoginIp = params['LastLoginIp']
          @PasswordWarnDays = params['PasswordWarnDays']
          @PasswordChangeType = params['PasswordChangeType']
          unless params['Keys'].nil?
            @Keys = []
            params['Keys'].each do |i|
              assetuserkeyinfo_tmp = AssetUserKeyInfo.new
              assetuserkeyinfo_tmp.deserialize(i)
              @Keys << assetuserkeyinfo_tmp
            end
          end
          @UpdateTime = params['UpdateTime']
        end
      end

      # 资产管理账号key详情
      class AssetUserKeyInfo < TencentCloud::Common::AbstractModel
        # @param Value: 公钥值
        # @type Value: String
        # @param Comment: 公钥备注
        # @type Comment: String
        # @param EncryptType: 加密方式
        # @type EncryptType: String

        attr_accessor :Value, :Comment, :EncryptType

        def initialize(value=nil, comment=nil, encrypttype=nil)
          @Value = value
          @Comment = comment
          @EncryptType = encrypttype
        end

        def deserialize(params)
          @Value = params['Value']
          @Comment = params['Comment']
          @EncryptType = params['EncryptType']
        end
      end

      # 资源管理Web应用列表信息
      class AssetWebAppBaseInfo < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param Tag: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param Name: 应用名
        # @type Name: String
        # @param Version: 版本
        # @type Version: String
        # @param RootPath: 根路径
        # @type RootPath: String
        # @param ServiceType: 服务类型
        # @type ServiceType: String
        # @param Domain: 站点域名
        # @type Domain: String
        # @param VirtualPath: 虚拟路径
        # @type VirtualPath: String
        # @param PluginCount: 插件数
        # @type PluginCount: Integer
        # @param Id: 应用ID
        # @type Id: String
        # @param Desc: 应用描述
        # @type Desc: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineIp, :MachineWanIp, :Quuid, :Uuid, :OsInfo, :ProjectId, :Tag, :Name, :Version, :RootPath, :ServiceType, :Domain, :VirtualPath, :PluginCount, :Id, :Desc, :MachineName, :UpdateTime, :FirstTime, :IsNew, :MachineExtraInfo

        def initialize(machineip=nil, machinewanip=nil, quuid=nil, uuid=nil, osinfo=nil, projectid=nil, tag=nil, name=nil, version=nil, rootpath=nil, servicetype=nil, domain=nil, virtualpath=nil, plugincount=nil, id=nil, desc=nil, machinename=nil, updatetime=nil, firsttime=nil, isnew=nil, machineextrainfo=nil)
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @Quuid = quuid
          @Uuid = uuid
          @OsInfo = osinfo
          @ProjectId = projectid
          @Tag = tag
          @Name = name
          @Version = version
          @RootPath = rootpath
          @ServiceType = servicetype
          @Domain = domain
          @VirtualPath = virtualpath
          @PluginCount = plugincount
          @Id = id
          @Desc = desc
          @MachineName = machinename
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @OsInfo = params['OsInfo']
          @ProjectId = params['ProjectId']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Name = params['Name']
          @Version = params['Version']
          @RootPath = params['RootPath']
          @ServiceType = params['ServiceType']
          @Domain = params['Domain']
          @VirtualPath = params['VirtualPath']
          @PluginCount = params['PluginCount']
          @Id = params['Id']
          @Desc = params['Desc']
          @MachineName = params['MachineName']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资产管理Web应用插件详情
      class AssetWebAppPluginInfo < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Desc: 描述
        # @type Desc: String
        # @param Version: 版本
        # @type Version: String
        # @param Link: 链接
        # @type Link: String

        attr_accessor :Name, :Desc, :Version, :Link

        def initialize(name=nil, desc=nil, version=nil, link=nil)
          @Name = name
          @Desc = desc
          @Version = version
          @Link = link
        end

        def deserialize(params)
          @Name = params['Name']
          @Desc = params['Desc']
          @Version = params['Version']
          @Link = params['Link']
        end
      end

      # 资源管理Web应用列表信息
      class AssetWebFrameBaseInfo < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param Tag: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param Name: 数据库名
        # @type Name: String
        # @param Version: 版本
        # @type Version: String
        # @param Lang: 语言
        # @type Lang: String
        # @param ServiceType: 服务类型
        # @type ServiceType: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param UpdateTime: 数据更新时间
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Path: 应用路径
        # @type Path: String

        attr_accessor :MachineIp, :MachineWanIp, :Quuid, :Uuid, :OsInfo, :ProjectId, :Tag, :Name, :Version, :Lang, :ServiceType, :MachineName, :UpdateTime, :FirstTime, :IsNew, :MachineExtraInfo, :Path

        def initialize(machineip=nil, machinewanip=nil, quuid=nil, uuid=nil, osinfo=nil, projectid=nil, tag=nil, name=nil, version=nil, lang=nil, servicetype=nil, machinename=nil, updatetime=nil, firsttime=nil, isnew=nil, machineextrainfo=nil, path=nil)
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @Quuid = quuid
          @Uuid = uuid
          @OsInfo = osinfo
          @ProjectId = projectid
          @Tag = tag
          @Name = name
          @Version = version
          @Lang = lang
          @ServiceType = servicetype
          @MachineName = machinename
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
          @Path = path
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @OsInfo = params['OsInfo']
          @ProjectId = params['ProjectId']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Name = params['Name']
          @Version = params['Version']
          @Lang = params['Lang']
          @ServiceType = params['ServiceType']
          @MachineName = params['MachineName']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Path = params['Path']
        end
      end

      # 资产管理Web站点列表信息
      class AssetWebLocationBaseInfo < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param MachineIp: 内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 外网IP
        # @type MachineWanIp: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param OsInfo: 操作系统
        # @type OsInfo: String
        # @param Name: 域名
        # @type Name: String
        # @param Port: 站点端口
        # @type Port: String
        # @param Proto: 站点协议
        # @type Proto: String
        # @param ServiceType: 服务类型
        # @type ServiceType: String
        # @param PathCount: 站点路经数
        # @type PathCount: Integer
        # @param User: 运行用户
        # @type User: String
        # @param MainPath: 主目录
        # @type MainPath: String
        # @param MainPathOwner: 主目录所有者
        # @type MainPathOwner: String
        # @param Permission: 拥有者权限
        # @type Permission: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param Tag: 主机标签
        # @type Tag: Array
        # @param Id: Web站点Id
        # @type Id: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsNew: Integer
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Uuid, :Quuid, :MachineIp, :MachineWanIp, :MachineName, :OsInfo, :Name, :Port, :Proto, :ServiceType, :PathCount, :User, :MainPath, :MainPathOwner, :Permission, :ProjectId, :Tag, :Id, :UpdateTime, :FirstTime, :IsNew, :MachineExtraInfo

        def initialize(uuid=nil, quuid=nil, machineip=nil, machinewanip=nil, machinename=nil, osinfo=nil, name=nil, port=nil, proto=nil, servicetype=nil, pathcount=nil, user=nil, mainpath=nil, mainpathowner=nil, permission=nil, projectid=nil, tag=nil, id=nil, updatetime=nil, firsttime=nil, isnew=nil, machineextrainfo=nil)
          @Uuid = uuid
          @Quuid = quuid
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @MachineName = machinename
          @OsInfo = osinfo
          @Name = name
          @Port = port
          @Proto = proto
          @ServiceType = servicetype
          @PathCount = pathcount
          @User = user
          @MainPath = mainpath
          @MainPathOwner = mainpathowner
          @Permission = permission
          @ProjectId = projectid
          @Tag = tag
          @Id = id
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @MachineName = params['MachineName']
          @OsInfo = params['OsInfo']
          @Name = params['Name']
          @Port = params['Port']
          @Proto = params['Proto']
          @ServiceType = params['ServiceType']
          @PathCount = params['PathCount']
          @User = params['User']
          @MainPath = params['MainPath']
          @MainPathOwner = params['MainPathOwner']
          @Permission = params['Permission']
          @ProjectId = params['ProjectId']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Id = params['Id']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 资产管理Web站点列表信息
      class AssetWebLocationInfo < TencentCloud::Common::AbstractModel
        # @param Name: 域名
        # @type Name: String
        # @param Port: 站点端口
        # @type Port: String
        # @param Proto: 站点协议
        # @type Proto: String
        # @param ServiceType: 服务类型
        # @type ServiceType: String
        # @param SafeStatus: 安全模块状态:0未启用,1启用,999空,仅nginx
        # @type SafeStatus: Integer
        # @param User: 运行用户
        # @type User: String
        # @param MainPath: 主目录
        # @type MainPath: String
        # @param Command: 启动命令
        # @type Command: String
        # @param Ip: 绑定IP
        # @type Ip: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String

        attr_accessor :Name, :Port, :Proto, :ServiceType, :SafeStatus, :User, :MainPath, :Command, :Ip, :UpdateTime

        def initialize(name=nil, port=nil, proto=nil, servicetype=nil, safestatus=nil, user=nil, mainpath=nil, command=nil, ip=nil, updatetime=nil)
          @Name = name
          @Port = port
          @Proto = proto
          @ServiceType = servicetype
          @SafeStatus = safestatus
          @User = user
          @MainPath = mainpath
          @Command = command
          @Ip = ip
          @UpdateTime = updatetime
        end

        def deserialize(params)
          @Name = params['Name']
          @Port = params['Port']
          @Proto = params['Proto']
          @ServiceType = params['ServiceType']
          @SafeStatus = params['SafeStatus']
          @User = params['User']
          @MainPath = params['MainPath']
          @Command = params['Command']
          @Ip = params['Ip']
          @UpdateTime = params['UpdateTime']
        end
      end

      # 资产管理Web站点虚拟目录
      class AssetWebLocationPath < TencentCloud::Common::AbstractModel
        # @param VirtualPath: 虚拟路径
        # @type VirtualPath: String
        # @param RealPath: 物理路径
        # @type RealPath: String
        # @param User: 文件所有者
        # @type User: String
        # @param Group: 文件所属组
        # @type Group: String
        # @param Permission: 文件权限
        # @type Permission: String

        attr_accessor :VirtualPath, :RealPath, :User, :Group, :Permission

        def initialize(virtualpath=nil, realpath=nil, user=nil, group=nil, permission=nil)
          @VirtualPath = virtualpath
          @RealPath = realpath
          @User = user
          @Group = group
          @Permission = permission
        end

        def deserialize(params)
          @VirtualPath = params['VirtualPath']
          @RealPath = params['RealPath']
          @User = params['User']
          @Group = params['Group']
          @Permission = params['Permission']
        end
      end

      # 资源管理Web服务列表信息
      class AssetWebServiceBaseInfo < TencentCloud::Common::AbstractModel
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param OsInfo: 操作系统信息
        # @type OsInfo: String
        # @param ProjectId: 主机业务组ID
        # @type ProjectId: Integer
        # @param Tag: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param Name: 数据库名
        # @type Name: String
        # @param Version: 版本
        # @type Version: String
        # @param BinPath: 二进制路径
        # @type BinPath: String
        # @param User: 启动用户
        # @type User: String
        # @param InstallPath: 安装路径
        # @type InstallPath: String
        # @param ConfigPath: 配置路径
        # @type ConfigPath: String
        # @param ProcessCount: 关联进程数
        # @type ProcessCount: Integer
        # @param Id: Web服务ID
        # @type Id: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param Desc: 描述
        # @type Desc: String
        # @param UpdateTime: 数据更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UpdateTime: String
        # @param FirstTime: 首次采集时间
        # @type FirstTime: String
        # @param IsNew: 是否新增[0:否|1:是]
        # @type IsNew: Integer
        # @param MachineExtraInfo:  附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineIp, :MachineWanIp, :Quuid, :Uuid, :OsInfo, :ProjectId, :Tag, :Name, :Version, :BinPath, :User, :InstallPath, :ConfigPath, :ProcessCount, :Id, :MachineName, :Desc, :UpdateTime, :FirstTime, :IsNew, :MachineExtraInfo

        def initialize(machineip=nil, machinewanip=nil, quuid=nil, uuid=nil, osinfo=nil, projectid=nil, tag=nil, name=nil, version=nil, binpath=nil, user=nil, installpath=nil, configpath=nil, processcount=nil, id=nil, machinename=nil, desc=nil, updatetime=nil, firsttime=nil, isnew=nil, machineextrainfo=nil)
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @Quuid = quuid
          @Uuid = uuid
          @OsInfo = osinfo
          @ProjectId = projectid
          @Tag = tag
          @Name = name
          @Version = version
          @BinPath = binpath
          @User = user
          @InstallPath = installpath
          @ConfigPath = configpath
          @ProcessCount = processcount
          @Id = id
          @MachineName = machinename
          @Desc = desc
          @UpdateTime = updatetime
          @FirstTime = firsttime
          @IsNew = isnew
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @OsInfo = params['OsInfo']
          @ProjectId = params['ProjectId']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Name = params['Name']
          @Version = params['Version']
          @BinPath = params['BinPath']
          @User = params['User']
          @InstallPath = params['InstallPath']
          @ConfigPath = params['ConfigPath']
          @ProcessCount = params['ProcessCount']
          @Id = params['Id']
          @MachineName = params['MachineName']
          @Desc = params['Desc']
          @UpdateTime = params['UpdateTime']
          @FirstTime = params['FirstTime']
          @IsNew = params['IsNew']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 攻击溯源
      class AttackSource < TencentCloud::Common::AbstractModel
        # @param Nodes: 攻击溯源节点描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Nodes: Array
        # @param Edges: 攻击溯源节点路径
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Edges: Array
        # @param EventInfoParam: 请求节点相关事件详情的参数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventInfoParam: String

        attr_accessor :Nodes, :Edges, :EventInfoParam

        def initialize(nodes=nil, edges=nil, eventinfoparam=nil)
          @Nodes = nodes
          @Edges = edges
          @EventInfoParam = eventinfoparam
        end

        def deserialize(params)
          unless params['Nodes'].nil?
            @Nodes = []
            params['Nodes'].each do |i|
              attacksourcenode_tmp = AttackSourceNode.new
              attacksourcenode_tmp.deserialize(i)
              @Nodes << attacksourcenode_tmp
            end
          end
          unless params['Edges'].nil?
            @Edges = []
            params['Edges'].each do |i|
              attacksourceedge_tmp = AttackSourceEdge.new
              attacksourceedge_tmp.deserialize(i)
              @Edges << attacksourceedge_tmp
            end
          end
          @EventInfoParam = params['EventInfoParam']
        end
      end

      # 攻击溯源路线描述
      class AttackSourceEdge < TencentCloud::Common::AbstractModel
        # @param From: 出发节点
        # @type From: String
        # @param To: 目标节点
        # @type To: String

        attr_accessor :From, :To

        def initialize(from=nil, to=nil)
          @From = from
          @To = to
        end

        def deserialize(params)
          @From = params['From']
          @To = params['To']
        end
      end

      # 攻击溯源事件
      class AttackSourceEvent < TencentCloud::Common::AbstractModel
        # @param EventType: 事件类型:0:文件查杀,1:异常登录, 2:密码破解,3:恶意请求,4:高危命令
        # @type EventType: Integer
        # @param Content: 【文件查杀】病毒名 VirusName、文件名 FileName、文件路径 FilePath、文件大小 FileSize、文件MD5 MD5、首次发现时间 CreateTime、最近检测时间LatestScanTime、危害描述 HarmDescribe、修复建议SuggestScheme
        # 【异常登录】来源IP SrcIp、来源地 Location、登录用户名 UserName、登录时间 LoginTime
        # 【密码破解】来源IP SrcIp、来源地 City,Country 、协议 Protocol、登录用户名UserName 、端口 Port、尝试次数 Count、首次攻击时间 CreateTime、最近攻击时间 ModifyTime
        # 【恶意请求】恶意请求域名 Url、进程ProcessName 、MD5 ProcessMd5、PID Pid、请求次数 AccessCount、最近请求时间 MergeTime、危害描述 HarmDescribe、修复建议SuggestScheme
        # 【高危命令】命中规则名 RuleName、规则类别 RuleCategory、命令内容 BashCmd、数据来源 DetectBy、登录用户 User、PID Pid、发生时间 CreateTime 、危害描述 HarmDescribe、修复建议SuggestScheme
        # @type Content: String
        # @param CreatedTime: 入侵时间
        # @type CreatedTime: String
        # @param Level: 等级 事件统一等级 0:提示,1:低危,  2:中危,  3:高危,  4:严重
        # @type Level: Integer
        # @param LevelZh: 等级中文展示字符串
        # @type LevelZh: String
        # @param Id: 事件id
        # @type Id: Integer
        # @param Uuid: 主机uuid
        # @type Uuid: String

        attr_accessor :EventType, :Content, :CreatedTime, :Level, :LevelZh, :Id, :Uuid

        def initialize(eventtype=nil, content=nil, createdtime=nil, level=nil, levelzh=nil, id=nil, uuid=nil)
          @EventType = eventtype
          @Content = content
          @CreatedTime = createdtime
          @Level = level
          @LevelZh = levelzh
          @Id = id
          @Uuid = uuid
        end

        def deserialize(params)
          @EventType = params['EventType']
          @Content = params['Content']
          @CreatedTime = params['CreatedTime']
          @Level = params['Level']
          @LevelZh = params['LevelZh']
          @Id = params['Id']
          @Uuid = params['Uuid']
        end
      end

      # 攻击溯源节点
      class AttackSourceNode < TencentCloud::Common::AbstractModel
        # @param EventId: 事件ID,为空的时候表示没有对应事件
        # @type EventId: Integer
        # @param EventType: BRUTEFORCE:密码破解、MALWARE:木马、BASH:高危命令、RISK_DNS:恶意请求、LOGIN:异地登录、HOST:主机节点, TIME_ORDER:通用节点
        # @type EventType: String
        # @param Ip: 节点ip 当节点为HOST时
        # @type Ip: String
        # @param Level: 等级  0:提示,1:低危,  2:中危,  3:高危,  4:严重
        # @type Level: Integer
        # @param NodeId: 节点ID
        # @type NodeId: String
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String
        # @param NodeDesc: 通用节点的描述
        # @type NodeDesc: String
        # @param TimeLineNum: 时间线编号,同一个编号的节点属于同一个时间线
        # @type TimeLineNum: Integer
        # @param NodeDetail: 节点详情
        # @type NodeDetail: String

        attr_accessor :EventId, :EventType, :Ip, :Level, :NodeId, :StartTime, :EndTime, :NodeDesc, :TimeLineNum, :NodeDetail

        def initialize(eventid=nil, eventtype=nil, ip=nil, level=nil, nodeid=nil, starttime=nil, endtime=nil, nodedesc=nil, timelinenum=nil, nodedetail=nil)
          @EventId = eventid
          @EventType = eventtype
          @Ip = ip
          @Level = level
          @NodeId = nodeid
          @StartTime = starttime
          @EndTime = endtime
          @NodeDesc = nodedesc
          @TimeLineNum = timelinenum
          @NodeDetail = nodedetail
        end

        def deserialize(params)
          @EventId = params['EventId']
          @EventType = params['EventType']
          @Ip = params['Ip']
          @Level = params['Level']
          @NodeId = params['NodeId']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @NodeDesc = params['NodeDesc']
          @TimeLineNum = params['TimeLineNum']
          @NodeDetail = params['NodeDetail']
        end
      end

      # 阻断白名单规则
      class BanWhiteList < TencentCloud::Common::AbstractModel
        # @param Id: 白名单ID。
        # @type Id: String
        # @param Remark: 白名单别名。
        # @type Remark: String
        # @param SrcIp: 阻断来源IP。
        # @type SrcIp: String
        # @param ModifyTime: 修改白名单时间。
        # @type ModifyTime: String
        # @param CreateTime: 创建白名单时间。
        # @type CreateTime: String
        # @param Uuid: 白名单所属机器。
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param IsGlobal: 白名单是否全局
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsGlobal: Boolean
        # @param Quuids: 白名单所属机器列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuids: Array

        attr_accessor :Id, :Remark, :SrcIp, :ModifyTime, :CreateTime, :Uuid, :IsGlobal, :Quuids

        def initialize(id=nil, remark=nil, srcip=nil, modifytime=nil, createtime=nil, uuid=nil, isglobal=nil, quuids=nil)
          @Id = id
          @Remark = remark
          @SrcIp = srcip
          @ModifyTime = modifytime
          @CreateTime = createtime
          @Uuid = uuid
          @IsGlobal = isglobal
          @Quuids = quuids
        end

        def deserialize(params)
          @Id = params['Id']
          @Remark = params['Remark']
          @SrcIp = params['SrcIp']
          @ModifyTime = params['ModifyTime']
          @CreateTime = params['CreateTime']
          @Uuid = params['Uuid']
          @IsGlobal = params['IsGlobal']
          @Quuids = params['Quuids']
        end
      end

      # 阻断白名单展示列表,包含了机器的信息
      class BanWhiteListDetail < TencentCloud::Common::AbstractModel
        # @param Id: 白名单ID
        # @type Id: String
        # @param Remark: 白名单别名
        # @type Remark: String
        # @param SrcIp: 阻断来源IP
        # @type SrcIp: String
        # @param ModifyTime: 修改白名单时间
        # @type ModifyTime: String
        # @param CreateTime: 创建白名单时间
        # @type CreateTime: String
        # @param IsGlobal: 白名单是否全局
        # @type IsGlobal: Boolean
        # @param Quuid: 机器的UUID
        # @type Quuid: String
        # @param Uuid: 主机安全程序的UUID
        # @type Uuid: String
        # @param MachineIp: 机器IP
        # @type MachineIp: String
        # @param MachineName: 机器名称
        # @type MachineName: String

        attr_accessor :Id, :Remark, :SrcIp, :ModifyTime, :CreateTime, :IsGlobal, :Quuid, :Uuid, :MachineIp, :MachineName

        def initialize(id=nil, remark=nil, srcip=nil, modifytime=nil, createtime=nil, isglobal=nil, quuid=nil, uuid=nil, machineip=nil, machinename=nil)
          @Id = id
          @Remark = remark
          @SrcIp = srcip
          @ModifyTime = modifytime
          @CreateTime = createtime
          @IsGlobal = isglobal
          @Quuid = quuid
          @Uuid = uuid
          @MachineIp = machineip
          @MachineName = machinename
        end

        def deserialize(params)
          @Id = params['Id']
          @Remark = params['Remark']
          @SrcIp = params['SrcIp']
          @ModifyTime = params['ModifyTime']
          @CreateTime = params['CreateTime']
          @IsGlobal = params['IsGlobal']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
        end
      end

      # 基线基础信息
      class BaselineBasicInfo < TencentCloud::Common::AbstractModel
        # @param Name: 基线名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String
        # @param BaselineId: 基线id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BaselineId: Integer
        # @param ParentId: 父级id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ParentId: Integer

        attr_accessor :Name, :BaselineId, :ParentId

        def initialize(name=nil, baselineid=nil, parentid=nil)
          @Name = name
          @BaselineId = baselineid
          @ParentId = parentid
        end

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

      # 基线规则或项的分类
      class BaselineCategory < TencentCloud::Common::AbstractModel
        # @param CategoryId: 分类Id
        # @type CategoryId: Integer
        # @param CategoryName: 分类名称
        # @type CategoryName: String
        # @param ParentCategoryId: 父分类ID,如果为0则没有父分类
        # @type ParentCategoryId: Integer

        attr_accessor :CategoryId, :CategoryName, :ParentCategoryId

        def initialize(categoryid=nil, categoryname=nil, parentcategoryid=nil)
          @CategoryId = categoryid
          @CategoryName = categoryname
          @ParentCategoryId = parentcategoryid
        end

        def deserialize(params)
          @CategoryId = params['CategoryId']
          @CategoryName = params['CategoryName']
          @ParentCategoryId = params['ParentCategoryId']
        end
      end

      # 基线自定规则ID和名字
      class BaselineCustomRuleIdName < TencentCloud::Common::AbstractModel
        # @param RuleId: 自定义规则ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleId: Integer
        # @param RuleName: 自定义规则名字
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleName: String

        attr_accessor :RuleId, :RuleName

        def initialize(ruleid=nil, rulename=nil)
          @RuleId = ruleid
          @RuleName = rulename
        end

        def deserialize(params)
          @RuleId = params['RuleId']
          @RuleName = params['RuleName']
        end
      end

      # 基线详情
      class BaselineDetail < TencentCloud::Common::AbstractModel
        # @param Description: 基线描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Description: String
        # @param Level: 危害等级
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param PackageName: package名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PackageName: String
        # @param ParentId: 父级id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ParentId: Integer
        # @param Name: 基线名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String

        attr_accessor :Description, :Level, :PackageName, :ParentId, :Name

        def initialize(description=nil, level=nil, packagename=nil, parentid=nil, name=nil)
          @Description = description
          @Level = level
          @PackageName = packagename
          @ParentId = parentid
          @Name = name
        end

        def deserialize(params)
          @Description = params['Description']
          @Level = params['Level']
          @PackageName = params['PackageName']
          @ParentId = params['ParentId']
          @Name = params['Name']
        end
      end

      # 基线扫描参数
      class BaselineDetectParam < TencentCloud::Common::AbstractModel
        # @param PolicyIds: 检测的策略集合
        # @type PolicyIds: Array
        # @param RuleIds: 检测的规则集合
        # @type RuleIds: Array
        # @param ItemIds: 检测项集合
        # @type ItemIds: Array
        # @param HostIds: 检测的主机ID集合
        # @type HostIds: Array

        attr_accessor :PolicyIds, :RuleIds, :ItemIds, :HostIds

        def initialize(policyids=nil, ruleids=nil, itemids=nil, hostids=nil)
          @PolicyIds = policyids
          @RuleIds = ruleids
          @ItemIds = itemids
          @HostIds = hostids
        end

        def deserialize(params)
          @PolicyIds = params['PolicyIds']
          @RuleIds = params['RuleIds']
          @ItemIds = params['ItemIds']
          @HostIds = params['HostIds']
        end
      end

      # 基线导出结果下载
      class BaselineDownload < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务Id
        # @type TaskId: Integer
        # @param TaskName: 任务名称
        # @type TaskName: String
        # @param Status: 状态0:未完成 1:完成
        # @type Status: Integer
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EndTime: 完成时间
        # @type EndTime: String
        # @param DownloadUrl: 下载地址
        # @type DownloadUrl: String

        attr_accessor :TaskId, :TaskName, :Status, :StartTime, :EndTime, :DownloadUrl

        def initialize(taskid=nil, taskname=nil, status=nil, starttime=nil, endtime=nil, downloadurl=nil)
          @TaskId = taskid
          @TaskName = taskname
          @Status = status
          @StartTime = starttime
          @EndTime = endtime
          @DownloadUrl = downloadurl
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @TaskName = params['TaskName']
          @Status = params['Status']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @DownloadUrl = params['DownloadUrl']
        end
      end

      # 基线影响主机信息
      class BaselineEffectHost < TencentCloud::Common::AbstractModel
        # @param PassCount: 通过项
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PassCount: Integer
        # @param FailCount: 风险项
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FailCount: Integer
        # @param FirstScanTime: 首次检测事件
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FirstScanTime: String
        # @param LastScanTime: 最后检测时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastScanTime: String
        # @param Status: 风险项处理状态状态:0-未通过,1-通过
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Status: Integer
        # @param Quuid: 主机Quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param HostIp: 主机IP
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIp: String
        # @param AliasName: 主机别名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AliasName: String
        # @param Uuid: 主机Uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param MaxStatus: 检测中状态
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MaxStatus: Integer

        attr_accessor :PassCount, :FailCount, :FirstScanTime, :LastScanTime, :Status, :Quuid, :HostIp, :AliasName, :Uuid, :MaxStatus

        def initialize(passcount=nil, failcount=nil, firstscantime=nil, lastscantime=nil, status=nil, quuid=nil, hostip=nil, aliasname=nil, uuid=nil, maxstatus=nil)
          @PassCount = passcount
          @FailCount = failcount
          @FirstScanTime = firstscantime
          @LastScanTime = lastscantime
          @Status = status
          @Quuid = quuid
          @HostIp = hostip
          @AliasName = aliasname
          @Uuid = uuid
          @MaxStatus = maxstatus
        end

        def deserialize(params)
          @PassCount = params['PassCount']
          @FailCount = params['FailCount']
          @FirstScanTime = params['FirstScanTime']
          @LastScanTime = params['LastScanTime']
          @Status = params['Status']
          @Quuid = params['Quuid']
          @HostIp = params['HostIp']
          @AliasName = params['AliasName']
          @Uuid = params['Uuid']
          @MaxStatus = params['MaxStatus']
        end
      end

      # 服务器风险Top的主机信息
      class BaselineEventLevelInfo < TencentCloud::Common::AbstractModel
        # @param EventLevel: 危害等级:1-低危;2-中危;3-高危;4-严重
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventLevel: Integer
        # @param EventCount: 漏洞数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventCount: Integer

        attr_accessor :EventLevel, :EventCount

        def initialize(eventlevel=nil, eventcount=nil)
          @EventLevel = eventlevel
          @EventCount = eventcount
        end

        def deserialize(params)
          @EventLevel = params['EventLevel']
          @EventCount = params['EventCount']
        end
      end

      # 基线密码修复
      class BaselineFix < TencentCloud::Common::AbstractModel
        # @param ItemName: 修复项名称
        # @type ItemName: String
        # @param HostIp: 主机Ip
        # @type HostIp: String
        # @param CreateTime: 首次检测时间
        # @type CreateTime: String
        # @param ModifyTime: 最后检测时间
        # @type ModifyTime: String
        # @param FixTime: 修复时间
        # @type FixTime: String
        # @param Id: 基线检测项结果ID
        # @type Id: Integer
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :ItemName, :HostIp, :CreateTime, :ModifyTime, :FixTime, :Id, :MachineExtraInfo

        def initialize(itemname=nil, hostip=nil, createtime=nil, modifytime=nil, fixtime=nil, id=nil, machineextrainfo=nil)
          @ItemName = itemname
          @HostIp = hostip
          @CreateTime = createtime
          @ModifyTime = modifytime
          @FixTime = fixtime
          @Id = id
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @ItemName = params['ItemName']
          @HostIp = params['HostIp']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @FixTime = params['FixTime']
          @Id = params['Id']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 基线主机信息
      class BaselineHost < TencentCloud::Common::AbstractModel
        # @param HostId: 主机Id
        # @type HostId: String
        # @param HostName: 主机名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String
        # @param HostTag: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostTag: String
        # @param HostIp: 内网Ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIp: String
        # @param WanIp: 外网Ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WanIp: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :HostId, :HostName, :HostTag, :HostIp, :WanIp, :MachineExtraInfo

        def initialize(hostid=nil, hostname=nil, hosttag=nil, hostip=nil, wanip=nil, machineextrainfo=nil)
          @HostId = hostid
          @HostName = hostname
          @HostTag = hosttag
          @HostIp = hostip
          @WanIp = wanip
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @HostId = params['HostId']
          @HostName = params['HostName']
          @HostTag = params['HostTag']
          @HostIp = params['HostIp']
          @WanIp = params['WanIp']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 基线主机检测
      class BaselineHostDetect < TencentCloud::Common::AbstractModel
        # @param HostId: 主机Id
        # @type HostId: String
        # @param HostIp: 内网Ip
        # @type HostIp: String
        # @param HostName: 主机名称
        # @type HostName: String
        # @param WanIp: 外网Ip
        # @type WanIp: String
        # @param DetectStatus: 0:未通过 1:忽略 3:通过 5:检测中
        # @type DetectStatus: Integer
        # @param PassedItemCount: 检测通过数
        # @type PassedItemCount: Integer
        # @param ItemCount: 关联检测项数
        # @type ItemCount: Integer
        # @param NotPassedItemCount: 检测未通过数
        # @type NotPassedItemCount: Integer
        # @param FirstTime: 首次检测时间
        # @type FirstTime: String
        # @param LastTime: 最后检测时间
        # @type LastTime: String
        # @param Uuid: 主机安全UUID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :HostId, :HostIp, :HostName, :WanIp, :DetectStatus, :PassedItemCount, :ItemCount, :NotPassedItemCount, :FirstTime, :LastTime, :Uuid, :MachineExtraInfo

        def initialize(hostid=nil, hostip=nil, hostname=nil, wanip=nil, detectstatus=nil, passeditemcount=nil, itemcount=nil, notpasseditemcount=nil, firsttime=nil, lasttime=nil, uuid=nil, machineextrainfo=nil)
          @HostId = hostid
          @HostIp = hostip
          @HostName = hostname
          @WanIp = wanip
          @DetectStatus = detectstatus
          @PassedItemCount = passeditemcount
          @ItemCount = itemcount
          @NotPassedItemCount = notpasseditemcount
          @FirstTime = firsttime
          @LastTime = lasttime
          @Uuid = uuid
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @HostId = params['HostId']
          @HostIp = params['HostIp']
          @HostName = params['HostName']
          @WanIp = params['WanIp']
          @DetectStatus = params['DetectStatus']
          @PassedItemCount = params['PassedItemCount']
          @ItemCount = params['ItemCount']
          @NotPassedItemCount = params['NotPassedItemCount']
          @FirstTime = params['FirstTime']
          @LastTime = params['LastTime']
          @Uuid = params['Uuid']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 基线影响服务器列表数据
      class BaselineHostTopList < TencentCloud::Common::AbstractModel
        # @param EventLevelList: 事件等级与次数列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventLevelList: Array
        # @param HostName: 主机名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String
        # @param Quuid: 主机Quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param Score: 计算权重的分数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Score: Integer

        attr_accessor :EventLevelList, :HostName, :Quuid, :Score

        def initialize(eventlevellist=nil, hostname=nil, quuid=nil, score=nil)
          @EventLevelList = eventlevellist
          @HostName = hostname
          @Quuid = quuid
          @Score = score
        end

        def deserialize(params)
          unless params['EventLevelList'].nil?
            @EventLevelList = []
            params['EventLevelList'].each do |i|
              baselineeventlevelinfo_tmp = BaselineEventLevelInfo.new
              baselineeventlevelinfo_tmp.deserialize(i)
              @EventLevelList << baselineeventlevelinfo_tmp
            end
          end
          @HostName = params['HostName']
          @Quuid = params['Quuid']
          @Score = params['Score']
        end
      end

      # 基线信息
      class BaselineInfo < TencentCloud::Common::AbstractModel
        # @param Name: 基线名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String
        # @param Level: 危害等级:1-低危;2-中危;3-高危;4-严重
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param RuleCount: 检测项数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleCount: Integer
        # @param HostCount: 影响服务器数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostCount: Integer
        # @param Status: 通过状态:0:未通过,1:已通过
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Status: Integer
        # @param CategoryId: 基线id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CategoryId: Integer
        # @param LastScanTime: 最后检测时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastScanTime: String
        # @param MaxStatus: 检测中状态: 5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MaxStatus: Integer
        # @param BaselineFailCount: 基线风险项
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BaselineFailCount: Integer

        attr_accessor :Name, :Level, :RuleCount, :HostCount, :Status, :CategoryId, :LastScanTime, :MaxStatus, :BaselineFailCount

        def initialize(name=nil, level=nil, rulecount=nil, hostcount=nil, status=nil, categoryid=nil, lastscantime=nil, maxstatus=nil, baselinefailcount=nil)
          @Name = name
          @Level = level
          @RuleCount = rulecount
          @HostCount = hostcount
          @Status = status
          @CategoryId = categoryid
          @LastScanTime = lastscantime
          @MaxStatus = maxstatus
          @BaselineFailCount = baselinefailcount
        end

        def deserialize(params)
          @Name = params['Name']
          @Level = params['Level']
          @RuleCount = params['RuleCount']
          @HostCount = params['HostCount']
          @Status = params['Status']
          @CategoryId = params['CategoryId']
          @LastScanTime = params['LastScanTime']
          @MaxStatus = params['MaxStatus']
          @BaselineFailCount = params['BaselineFailCount']
        end
      end

      # 基线项
      class BaselineItem < TencentCloud::Common::AbstractModel
        # @param ItemId: 项Id
        # @type ItemId: Integer
        # @param ItemName: 项名称
        # @type ItemName: String
        # @param CategoryId: 检测项分类
        # @type CategoryId: Integer
        # @param ItemDesc: 项描述
        # @type ItemDesc: String
        # @param FixMethod: 修复方法
        # @type FixMethod: String
        # @param RuleName: 所属规则
        # @type RuleName: String
        # @param DetectResultDesc: 检测结果描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DetectResultDesc: String
        # @param Level: 危险等级
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param DetectStatus: 检测状态:0 未通过,1:忽略,3:通过,5:检测中
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DetectStatus: Integer
        # @param HostId: 主机ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostId: String
        # @param HostName: 主机名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String
        # @param HostIp: 主机IP
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIp: String
        # @param WanIp: 外网IP
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WanIp: String
        # @param FirstTime: 第一次出现时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FirstTime: String
        # @param LastTime: 最近出现时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastTime: String
        # @param CanBeFixed: 是否可以修复
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CanBeFixed: Integer
        # @param Uuid: 主机安全uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :ItemId, :ItemName, :CategoryId, :ItemDesc, :FixMethod, :RuleName, :DetectResultDesc, :Level, :DetectStatus, :HostId, :HostName, :HostIp, :WanIp, :FirstTime, :LastTime, :CanBeFixed, :Uuid, :MachineExtraInfo

        def initialize(itemid=nil, itemname=nil, categoryid=nil, itemdesc=nil, fixmethod=nil, rulename=nil, detectresultdesc=nil, level=nil, detectstatus=nil, hostid=nil, hostname=nil, hostip=nil, wanip=nil, firsttime=nil, lasttime=nil, canbefixed=nil, uuid=nil, machineextrainfo=nil)
          @ItemId = itemid
          @ItemName = itemname
          @CategoryId = categoryid
          @ItemDesc = itemdesc
          @FixMethod = fixmethod
          @RuleName = rulename
          @DetectResultDesc = detectresultdesc
          @Level = level
          @DetectStatus = detectstatus
          @HostId = hostid
          @HostName = hostname
          @HostIp = hostip
          @WanIp = wanip
          @FirstTime = firsttime
          @LastTime = lasttime
          @CanBeFixed = canbefixed
          @Uuid = uuid
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @ItemId = params['ItemId']
          @ItemName = params['ItemName']
          @CategoryId = params['CategoryId']
          @ItemDesc = params['ItemDesc']
          @FixMethod = params['FixMethod']
          @RuleName = params['RuleName']
          @DetectResultDesc = params['DetectResultDesc']
          @Level = params['Level']
          @DetectStatus = params['DetectStatus']
          @HostId = params['HostId']
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @WanIp = params['WanIp']
          @FirstTime = params['FirstTime']
          @LastTime = params['LastTime']
          @CanBeFixed = params['CanBeFixed']
          @Uuid = params['Uuid']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 基线检测项
      class BaselineItemDetect < TencentCloud::Common::AbstractModel
        # @param ItemId: 项Id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ItemId: Integer
        # @param ItemName: 项名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ItemName: String
        # @param ItemDesc: 项描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ItemDesc: String
        # @param FixMethod: 修复方法
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixMethod: String
        # @param RuleName: 所属规则
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleName: String
        # @param DetectStatus: 0:未通过 1:忽略 3:通过 5:检测中
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DetectStatus: Integer
        # @param Level: 风险等级
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param HostCount: 影响服务器数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostCount: Integer
        # @param FirstTime: 首次检测时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FirstTime: String
        # @param LastTime: 最后检测时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastTime: String
        # @param DetectResult: 检测结果,Json字符串
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DetectResult: String
        # @param RuleId: 所属规则ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleId: Integer
        # @param PassedHostCount: 通过的服务器数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PassedHostCount: Integer
        # @param NotPassedHostCount: 未通过的服务器数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NotPassedHostCount: Integer

        attr_accessor :ItemId, :ItemName, :ItemDesc, :FixMethod, :RuleName, :DetectStatus, :Level, :HostCount, :FirstTime, :LastTime, :DetectResult, :RuleId, :PassedHostCount, :NotPassedHostCount

        def initialize(itemid=nil, itemname=nil, itemdesc=nil, fixmethod=nil, rulename=nil, detectstatus=nil, level=nil, hostcount=nil, firsttime=nil, lasttime=nil, detectresult=nil, ruleid=nil, passedhostcount=nil, notpassedhostcount=nil)
          @ItemId = itemid
          @ItemName = itemname
          @ItemDesc = itemdesc
          @FixMethod = fixmethod
          @RuleName = rulename
          @DetectStatus = detectstatus
          @Level = level
          @HostCount = hostcount
          @FirstTime = firsttime
          @LastTime = lasttime
          @DetectResult = detectresult
          @RuleId = ruleid
          @PassedHostCount = passedhostcount
          @NotPassedHostCount = notpassedhostcount
        end

        def deserialize(params)
          @ItemId = params['ItemId']
          @ItemName = params['ItemName']
          @ItemDesc = params['ItemDesc']
          @FixMethod = params['FixMethod']
          @RuleName = params['RuleName']
          @DetectStatus = params['DetectStatus']
          @Level = params['Level']
          @HostCount = params['HostCount']
          @FirstTime = params['FirstTime']
          @LastTime = params['LastTime']
          @DetectResult = params['DetectResult']
          @RuleId = params['RuleId']
          @PassedHostCount = params['PassedHostCount']
          @NotPassedHostCount = params['NotPassedHostCount']
        end
      end

      # 基线信息
      class BaselineItemInfo < TencentCloud::Common::AbstractModel
        # @param ItemId: 基线检测项ID
        # @type ItemId: Integer
        # @param ItemName: 检测项名字
        # @type ItemName: String
        # @param RuleId: 检测项所属规则的ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleId: Integer
        # @param ItemDesc: 检测项描述
        # @type ItemDesc: String
        # @param FixMethod: 检测项的修复方法
        # @type FixMethod: String
        # @param RuleName: 检测项所属规则名字
        # @type RuleName: String
        # @param Level: 危险等级
        # @type Level: Integer
        # @param SysRuleId: 系统规则ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SysRuleId: Integer
        # @param RelatedCustomRuleInfo: 被引自定义规则信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RelatedCustomRuleInfo: Array

        attr_accessor :ItemId, :ItemName, :RuleId, :ItemDesc, :FixMethod, :RuleName, :Level, :SysRuleId, :RelatedCustomRuleInfo

        def initialize(itemid=nil, itemname=nil, ruleid=nil, itemdesc=nil, fixmethod=nil, rulename=nil, level=nil, sysruleid=nil, relatedcustomruleinfo=nil)
          @ItemId = itemid
          @ItemName = itemname
          @RuleId = ruleid
          @ItemDesc = itemdesc
          @FixMethod = fixmethod
          @RuleName = rulename
          @Level = level
          @SysRuleId = sysruleid
          @RelatedCustomRuleInfo = relatedcustomruleinfo
        end

        def deserialize(params)
          @ItemId = params['ItemId']
          @ItemName = params['ItemName']
          @RuleId = params['RuleId']
          @ItemDesc = params['ItemDesc']
          @FixMethod = params['FixMethod']
          @RuleName = params['RuleName']
          @Level = params['Level']
          @SysRuleId = params['SysRuleId']
          unless params['RelatedCustomRuleInfo'].nil?
            @RelatedCustomRuleInfo = []
            params['RelatedCustomRuleInfo'].each do |i|
              baselinecustomruleidname_tmp = BaselineCustomRuleIdName.new
              baselinecustomruleidname_tmp.deserialize(i)
              @RelatedCustomRuleInfo << baselinecustomruleidname_tmp
            end
          end
        end
      end

      # 基线策略信息
      class BaselinePolicy < TencentCloud::Common::AbstractModel
        # @param PolicyName: 策略名称,长度不超过128英文字符
        # @type PolicyName: String
        # @param DetectInterval: 检测间隔[1:1天|3:3天|5:5天|7:7天]
        # @type DetectInterval: Integer
        # @param DetectTime: 检测时间
        # @type DetectTime: String
        # @param IsEnabled: 是否开启[0:未开启|1:开启]
        # @type IsEnabled: Integer
        # @param AssetType: 资产类型[0:所有专业版旗舰版|1:id|2:ip]
        # @type AssetType: Integer
        # @param PolicyId: 策略Id
        # @type PolicyId: Integer
        # @param RuleCount: 关联基线项数目
        # @type RuleCount: Integer
        # @param ItemCount: 关联基线项数目
        # @type ItemCount: Integer
        # @param HostCount: 关联基线主机数目
        # @type HostCount: Integer
        # @param RuleIds: 规则Id
        # @type RuleIds: Array
        # @param HostIds: 主机Id
        # @type HostIds: Array
        # @param HostIps: 主机Ip
        # @type HostIps: Array
        # @param IsDefault: 是否是系统默认
        # @type IsDefault: Integer

        attr_accessor :PolicyName, :DetectInterval, :DetectTime, :IsEnabled, :AssetType, :PolicyId, :RuleCount, :ItemCount, :HostCount, :RuleIds, :HostIds, :HostIps, :IsDefault

        def initialize(policyname=nil, detectinterval=nil, detecttime=nil, isenabled=nil, assettype=nil, policyid=nil, rulecount=nil, itemcount=nil, hostcount=nil, ruleids=nil, hostids=nil, hostips=nil, isdefault=nil)
          @PolicyName = policyname
          @DetectInterval = detectinterval
          @DetectTime = detecttime
          @IsEnabled = isenabled
          @AssetType = assettype
          @PolicyId = policyid
          @RuleCount = rulecount
          @ItemCount = itemcount
          @HostCount = hostcount
          @RuleIds = ruleids
          @HostIds = hostids
          @HostIps = hostips
          @IsDefault = isdefault
        end

        def deserialize(params)
          @PolicyName = params['PolicyName']
          @DetectInterval = params['DetectInterval']
          @DetectTime = params['DetectTime']
          @IsEnabled = params['IsEnabled']
          @AssetType = params['AssetType']
          @PolicyId = params['PolicyId']
          @RuleCount = params['RuleCount']
          @ItemCount = params['ItemCount']
          @HostCount = params['HostCount']
          @RuleIds = params['RuleIds']
          @HostIds = params['HostIds']
          @HostIps = params['HostIps']
          @IsDefault = params['IsDefault']
        end
      end

      # 基线检测策略
      class BaselinePolicyDetect < TencentCloud::Common::AbstractModel
        # @param PolicyId: 策略Id
        # @type PolicyId: Integer
        # @param TaskId: 检测任务Id
        # @type TaskId: Integer
        # @param HostCount: 关联主机数
        # @type HostCount: Integer
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param FinishTime: 结束时间
        # @type FinishTime: String
        # @param PolicyName: 策略名称
        # @type PolicyName: String
        # @param SuccessCount: 成功主机数
        # @type SuccessCount: Integer
        # @param FailedCount: 失败主技数
        # @type FailedCount: Integer
        # @param TimeoutCount: 失败主机数
        # @type TimeoutCount: Integer
        # @param PolicyDetectStatus: 1:检测中 2:检测完成
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PolicyDetectStatus: Integer

        attr_accessor :PolicyId, :TaskId, :HostCount, :StartTime, :FinishTime, :PolicyName, :SuccessCount, :FailedCount, :TimeoutCount, :PolicyDetectStatus

        def initialize(policyid=nil, taskid=nil, hostcount=nil, starttime=nil, finishtime=nil, policyname=nil, successcount=nil, failedcount=nil, timeoutcount=nil, policydetectstatus=nil)
          @PolicyId = policyid
          @TaskId = taskid
          @HostCount = hostcount
          @StartTime = starttime
          @FinishTime = finishtime
          @PolicyName = policyname
          @SuccessCount = successcount
          @FailedCount = failedcount
          @TimeoutCount = timeoutcount
          @PolicyDetectStatus = policydetectstatus
        end

        def deserialize(params)
          @PolicyId = params['PolicyId']
          @TaskId = params['TaskId']
          @HostCount = params['HostCount']
          @StartTime = params['StartTime']
          @FinishTime = params['FinishTime']
          @PolicyName = params['PolicyName']
          @SuccessCount = params['SuccessCount']
          @FailedCount = params['FailedCount']
          @TimeoutCount = params['TimeoutCount']
          @PolicyDetectStatus = params['PolicyDetectStatus']
        end
      end

      # 基线检测项top5
      class BaselineRiskItem < TencentCloud::Common::AbstractModel
        # @param ItemId: 检测项Id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ItemId: Integer
        # @param ItemName: 检测项名字
        # @type ItemName: String
        # @param Level: 风险等级
        # @type Level: Integer
        # @param HostCount: 影响服务器数
        # @type HostCount: Integer

        attr_accessor :ItemId, :ItemName, :Level, :HostCount

        def initialize(itemid=nil, itemname=nil, level=nil, hostcount=nil)
          @ItemId = itemid
          @ItemName = itemname
          @Level = level
          @HostCount = hostcount
        end

        def deserialize(params)
          @ItemId = params['ItemId']
          @ItemName = params['ItemName']
          @Level = params['Level']
          @HostCount = params['HostCount']
        end
      end

      # 基线规则
      class BaselineRule < TencentCloud::Common::AbstractModel
        # @param RuleName: 规则名称,长度不超过128英文字符
        # @type RuleName: String
        # @param RuleId: 规则Id
        # @type RuleId: Integer
        # @param RuleType: 规则类型 [0:系统|1:自定义]
        # @type RuleType: Integer
        # @param CategoryId: 规则分类
        # @type CategoryId: Integer
        # @param RuleDesc: 规则描述
        # @type RuleDesc: String
        # @param HostCount: 主机数
        # @type HostCount: Integer
        # @param Items: 适配项ID列表
        # @type Items: Array
        # @param AssetType: [0:所有专业版旗舰版|1:hostID|2:ip]
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AssetType: Integer
        # @param HostIds: 主机Id集合
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIds: Array
        # @param HostIps: 主机IP
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIps: Array

        attr_accessor :RuleName, :RuleId, :RuleType, :CategoryId, :RuleDesc, :HostCount, :Items, :AssetType, :HostIds, :HostIps

        def initialize(rulename=nil, ruleid=nil, ruletype=nil, categoryid=nil, ruledesc=nil, hostcount=nil, items=nil, assettype=nil, hostids=nil, hostips=nil)
          @RuleName = rulename
          @RuleId = ruleid
          @RuleType = ruletype
          @CategoryId = categoryid
          @RuleDesc = ruledesc
          @HostCount = hostcount
          @Items = items
          @AssetType = assettype
          @HostIds = hostids
          @HostIps = hostips
        end

        def deserialize(params)
          @RuleName = params['RuleName']
          @RuleId = params['RuleId']
          @RuleType = params['RuleType']
          @CategoryId = params['CategoryId']
          @RuleDesc = params['RuleDesc']
          @HostCount = params['HostCount']
          unless params['Items'].nil?
            @Items = []
            params['Items'].each do |i|
              item_tmp = Item.new
              item_tmp.deserialize(i)
              @Items << item_tmp
            end
          end
          @AssetType = params['AssetType']
          @HostIds = params['HostIds']
          @HostIps = params['HostIps']
        end
      end

      # 基线规则检测
      class BaselineRuleDetect < TencentCloud::Common::AbstractModel
        # @param RuleId: 规则Id
        # @type RuleId: Integer
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param RuleDesc: 规则描述
        # @type RuleDesc: String
        # @param ItemCount: 关联项数
        # @type ItemCount: Integer
        # @param HostCount: 关联主机数
        # @type HostCount: Integer
        # @param FirstTime: 首次检测时间
        # @type FirstTime: String
        # @param LastTime: string
        # @type LastTime: String
        # @param DetectStatus: 0:未通过 1:忽略 3:通过 5:检测中
        # @type DetectStatus: Integer
        # @param ItemIds: ItemID集合
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ItemIds: Array

        attr_accessor :RuleId, :RuleName, :RuleDesc, :ItemCount, :HostCount, :FirstTime, :LastTime, :DetectStatus, :ItemIds

        def initialize(ruleid=nil, rulename=nil, ruledesc=nil, itemcount=nil, hostcount=nil, firsttime=nil, lasttime=nil, detectstatus=nil, itemids=nil)
          @RuleId = ruleid
          @RuleName = rulename
          @RuleDesc = ruledesc
          @ItemCount = itemcount
          @HostCount = hostcount
          @FirstTime = firsttime
          @LastTime = lasttime
          @DetectStatus = detectstatus
          @ItemIds = itemids
        end

        def deserialize(params)
          @RuleId = params['RuleId']
          @RuleName = params['RuleName']
          @RuleDesc = params['RuleDesc']
          @ItemCount = params['ItemCount']
          @HostCount = params['HostCount']
          @FirstTime = params['FirstTime']
          @LastTime = params['LastTime']
          @DetectStatus = params['DetectStatus']
          @ItemIds = params['ItemIds']
        end
      end

      # 基线检测信息
      class BaselineRuleInfo < TencentCloud::Common::AbstractModel
        # @param RuleName: 检测项名称
        # @type RuleName: String
        # @param Description: 检测项描述
        # @type Description: String
        # @param FixMessage: 修复建议
        # @type FixMessage: String
        # @param Level: 危害等级
        # @type Level: Integer
        # @param Status: 状态
        # @type Status: Integer
        # @param RuleId: 检测项id
        # @type RuleId: Integer
        # @param LastScanAt: 最后检测时间
        # @type LastScanAt: String
        # @param RuleRemark: 具体原因说明
        # @type RuleRemark: String
        # @param Uuid: 唯一Uuid
        # @type Uuid: String
        # @param EventId: 唯一事件ID
        # @type EventId: Integer

        attr_accessor :RuleName, :Description, :FixMessage, :Level, :Status, :RuleId, :LastScanAt, :RuleRemark, :Uuid, :EventId

        def initialize(rulename=nil, description=nil, fixmessage=nil, level=nil, status=nil, ruleid=nil, lastscanat=nil, ruleremark=nil, uuid=nil, eventid=nil)
          @RuleName = rulename
          @Description = description
          @FixMessage = fixmessage
          @Level = level
          @Status = status
          @RuleId = ruleid
          @LastScanAt = lastscanat
          @RuleRemark = ruleremark
          @Uuid = uuid
          @EventId = eventid
        end

        def deserialize(params)
          @RuleName = params['RuleName']
          @Description = params['Description']
          @FixMessage = params['FixMessage']
          @Level = params['Level']
          @Status = params['Status']
          @RuleId = params['RuleId']
          @LastScanAt = params['LastScanAt']
          @RuleRemark = params['RuleRemark']
          @Uuid = params['Uuid']
          @EventId = params['EventId']
        end
      end

      # 基线检测项TOP信息
      class BaselineRuleTopInfo < TencentCloud::Common::AbstractModel
        # @param RuleName: 基线检测项名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleName: String
        # @param Level: 检测项危害等级
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param EventCount: 事件总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventCount: Integer
        # @param RuleId: 检测项id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleId: Integer

        attr_accessor :RuleName, :Level, :EventCount, :RuleId

        def initialize(rulename=nil, level=nil, eventcount=nil, ruleid=nil)
          @RuleName = rulename
          @Level = level
          @EventCount = eventcount
          @RuleId = ruleid
        end

        def deserialize(params)
          @RuleName = params['RuleName']
          @Level = params['Level']
          @EventCount = params['EventCount']
          @RuleId = params['RuleId']
        end
      end

      # 基线弱口令
      class BaselineWeakPassword < TencentCloud::Common::AbstractModel
        # @param PasswordId: 密码Id
        # @type PasswordId: Integer
        # @param WeakPassword: 密码
        # @type WeakPassword: String
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 修改时间
        # @type ModifyTime: String

        attr_accessor :PasswordId, :WeakPassword, :CreateTime, :ModifyTime

        def initialize(passwordid=nil, weakpassword=nil, createtime=nil, modifytime=nil)
          @PasswordId = passwordid
          @WeakPassword = weakpassword
          @CreateTime = createtime
          @ModifyTime = modifytime
        end

        def deserialize(params)
          @PasswordId = params['PasswordId']
          @WeakPassword = params['WeakPassword']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
        end
      end

      # 高危命令数据
      class BashEvent < TencentCloud::Common::AbstractModel
        # @param Id: 数据ID
        # @type Id: Integer
        # @param Uuid: 主机安全ID
        # @type Uuid: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param Hostip: 主机内网IP
        # @type Hostip: String
        # @param User: 执行用户名
        # @type User: String
        # @param Platform: 平台类型
        # @type Platform: Integer
        # @param BashCmd: 执行命令
        # @type BashCmd: String
        # @param RuleId: 规则ID
        # @type RuleId: Integer
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param RuleLevel: 规则等级:1-高 2-中 3-低
        # @type RuleLevel: Integer
        # @param Status: 处理状态: 0 = 待处理 1= 已处理, 2 = 已加白, 3 = 已忽略
        # @type Status: Integer
        # @param CreateTime: 发生时间
        # @type CreateTime: String
        # @param MachineName: 主机名
        # @type MachineName: String
        # @param DetectBy: 0: bash日志 1: 实时监控(雷霆版)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DetectBy: Integer
        # @param Pid: 进程id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Pid: String
        # @param Exe: 进程名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Exe: String
        # @param ModifyTime: 处理时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param RuleCategory: 规则类别  0=系统规则,1=用户规则
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleCategory: Integer
        # @param RegexBashCmd: 自动生成的正则表达式
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RegexBashCmd: String

        attr_accessor :Id, :Uuid, :Quuid, :Hostip, :User, :Platform, :BashCmd, :RuleId, :RuleName, :RuleLevel, :Status, :CreateTime, :MachineName, :DetectBy, :Pid, :Exe, :ModifyTime, :RuleCategory, :RegexBashCmd

        def initialize(id=nil, uuid=nil, quuid=nil, hostip=nil, user=nil, platform=nil, bashcmd=nil, ruleid=nil, rulename=nil, rulelevel=nil, status=nil, createtime=nil, machinename=nil, detectby=nil, pid=nil, exe=nil, modifytime=nil, rulecategory=nil, regexbashcmd=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @Hostip = hostip
          @User = user
          @Platform = platform
          @BashCmd = bashcmd
          @RuleId = ruleid
          @RuleName = rulename
          @RuleLevel = rulelevel
          @Status = status
          @CreateTime = createtime
          @MachineName = machinename
          @DetectBy = detectby
          @Pid = pid
          @Exe = exe
          @ModifyTime = modifytime
          @RuleCategory = rulecategory
          @RegexBashCmd = regexbashcmd
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Hostip = params['Hostip']
          @User = params['User']
          @Platform = params['Platform']
          @BashCmd = params['BashCmd']
          @RuleId = params['RuleId']
          @RuleName = params['RuleName']
          @RuleLevel = params['RuleLevel']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MachineName = params['MachineName']
          @DetectBy = params['DetectBy']
          @Pid = params['Pid']
          @Exe = params['Exe']
          @ModifyTime = params['ModifyTime']
          @RuleCategory = params['RuleCategory']
          @RegexBashCmd = params['RegexBashCmd']
        end
      end

      # 高危命令数据(新)
      class BashEventNew < TencentCloud::Common::AbstractModel
        # @param Id: 数据ID
        # @type Id: Integer
        # @param Uuid: 主机安全ID
        # @type Uuid: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param HostIp: 主机内网IP
        # @type HostIp: String
        # @param User: 执行用户名
        # @type User: String
        # @param Platform: 平台类型
        # @type Platform: Integer
        # @param BashCmd: 执行命令
        # @type BashCmd: String
        # @param RuleId: 规则ID
        # @type RuleId: Integer
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param RuleLevel: 规则等级:1-高 2-中 3-低
        # @type RuleLevel: Integer
        # @param Status: 处理状态: 0 = 待处理 1= 已处理, 2 = 已加白, 3 = 已忽略
        # @type Status: Integer
        # @param CreateTime: 发生时间
        # @type CreateTime: String
        # @param MachineName: 主机名
        # @type MachineName: String
        # @param DetectBy: 0: bash日志 1: 实时监控(雷霆版)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DetectBy: Integer
        # @param Pid: 进程id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Pid: String
        # @param Exe: 进程名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Exe: String
        # @param ModifyTime: 处理时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param RuleCategory: 规则类别  0=系统规则,1=用户规则
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleCategory: Integer
        # @param RegexBashCmd: 自动生成的正则表达式
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RegexBashCmd: String
        # @param MachineType: 0:普通 1:专业版 2:旗舰版
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineType: Integer
        # @param MachineExtraInfo: 机器额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Id, :Uuid, :Quuid, :HostIp, :User, :Platform, :BashCmd, :RuleId, :RuleName, :RuleLevel, :Status, :CreateTime, :MachineName, :DetectBy, :Pid, :Exe, :ModifyTime, :RuleCategory, :RegexBashCmd, :MachineType, :MachineExtraInfo

        def initialize(id=nil, uuid=nil, quuid=nil, hostip=nil, user=nil, platform=nil, bashcmd=nil, ruleid=nil, rulename=nil, rulelevel=nil, status=nil, createtime=nil, machinename=nil, detectby=nil, pid=nil, exe=nil, modifytime=nil, rulecategory=nil, regexbashcmd=nil, machinetype=nil, machineextrainfo=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @HostIp = hostip
          @User = user
          @Platform = platform
          @BashCmd = bashcmd
          @RuleId = ruleid
          @RuleName = rulename
          @RuleLevel = rulelevel
          @Status = status
          @CreateTime = createtime
          @MachineName = machinename
          @DetectBy = detectby
          @Pid = pid
          @Exe = exe
          @ModifyTime = modifytime
          @RuleCategory = rulecategory
          @RegexBashCmd = regexbashcmd
          @MachineType = machinetype
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @HostIp = params['HostIp']
          @User = params['User']
          @Platform = params['Platform']
          @BashCmd = params['BashCmd']
          @RuleId = params['RuleId']
          @RuleName = params['RuleName']
          @RuleLevel = params['RuleLevel']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MachineName = params['MachineName']
          @DetectBy = params['DetectBy']
          @Pid = params['Pid']
          @Exe = params['Exe']
          @ModifyTime = params['ModifyTime']
          @RuleCategory = params['RuleCategory']
          @RegexBashCmd = params['RegexBashCmd']
          @MachineType = params['MachineType']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 高危命令数据详情
      class BashEventsInfo < TencentCloud::Common::AbstractModel
        # @param Id: 数据ID
        # @type Id: Integer
        # @param Uuid: 云镜ID
        # @type Uuid: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param HostIp: 主机内网IP
        # @type HostIp: String
        # @param Platform: 平台类型
        # @type Platform: Integer
        # @param BashCmd: 执行命令
        # @type BashCmd: String
        # @param RuleId: 规则ID,等于0表示已规则已被删除或生效范围已修改
        # @type RuleId: Integer
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param RuleLevel: 规则等级:1-高 2-中 3-低
        # @type RuleLevel: Integer
        # @param Status: 处理状态: 0 = 待处理 1= 已处理, 2 = 已加白, 3= 已忽略
        # @type Status: Integer
        # @param CreateTime: 发生时间
        # @type CreateTime: String
        # @param MachineName: 主机名
        # @type MachineName: String
        # @param Exe: 进程名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Exe: String
        # @param ModifyTime: 处理时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param RuleCategory: 规则类别  0=系统规则,1=用户规则
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleCategory: Integer
        # @param RegexBashCmd: 自动生成的正则表达式
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RegexBashCmd: String
        # @param PsTree: 进程树 json  pid:进程id,exe:文件路径 ,account:进程所属用组和用户 ,cmdline:执行命令,ssh_service: SSH服务ip, ssh_soure:登录源
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PsTree: String
        # @param SuggestScheme: 建议方案
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SuggestScheme: String
        # @param HarmDescribe: 描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HarmDescribe: String
        # @param Tags: 标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tags: Array
        # @param References: 参考链接
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type References: Array
        # @param MachineWanIp: 主机外网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineWanIp: String
        # @param MachineStatus: 主机在线状态 OFFLINE  ONLINE
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineStatus: String
        # @param User: 登录用户
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type User: String
        # @param Pid: 进程号
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Pid: String

        attr_accessor :Id, :Uuid, :Quuid, :HostIp, :Platform, :BashCmd, :RuleId, :RuleName, :RuleLevel, :Status, :CreateTime, :MachineName, :Exe, :ModifyTime, :RuleCategory, :RegexBashCmd, :PsTree, :SuggestScheme, :HarmDescribe, :Tags, :References, :MachineWanIp, :MachineStatus, :User, :Pid

        def initialize(id=nil, uuid=nil, quuid=nil, hostip=nil, platform=nil, bashcmd=nil, ruleid=nil, rulename=nil, rulelevel=nil, status=nil, createtime=nil, machinename=nil, exe=nil, modifytime=nil, rulecategory=nil, regexbashcmd=nil, pstree=nil, suggestscheme=nil, harmdescribe=nil, tags=nil, references=nil, machinewanip=nil, machinestatus=nil, user=nil, pid=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @HostIp = hostip
          @Platform = platform
          @BashCmd = bashcmd
          @RuleId = ruleid
          @RuleName = rulename
          @RuleLevel = rulelevel
          @Status = status
          @CreateTime = createtime
          @MachineName = machinename
          @Exe = exe
          @ModifyTime = modifytime
          @RuleCategory = rulecategory
          @RegexBashCmd = regexbashcmd
          @PsTree = pstree
          @SuggestScheme = suggestscheme
          @HarmDescribe = harmdescribe
          @Tags = tags
          @References = references
          @MachineWanIp = machinewanip
          @MachineStatus = machinestatus
          @User = user
          @Pid = pid
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @HostIp = params['HostIp']
          @Platform = params['Platform']
          @BashCmd = params['BashCmd']
          @RuleId = params['RuleId']
          @RuleName = params['RuleName']
          @RuleLevel = params['RuleLevel']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MachineName = params['MachineName']
          @Exe = params['Exe']
          @ModifyTime = params['ModifyTime']
          @RuleCategory = params['RuleCategory']
          @RegexBashCmd = params['RegexBashCmd']
          @PsTree = params['PsTree']
          @SuggestScheme = params['SuggestScheme']
          @HarmDescribe = params['HarmDescribe']
          @Tags = params['Tags']
          @References = params['References']
          @MachineWanIp = params['MachineWanIp']
          @MachineStatus = params['MachineStatus']
          @User = params['User']
          @Pid = params['Pid']
        end
      end

      # 高危命令数据详情(新)
      class BashEventsInfoNew < TencentCloud::Common::AbstractModel
        # @param Id: 数据ID
        # @type Id: Integer
        # @param Uuid: 主机安全ID
        # @type Uuid: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param HostIp: 主机内网IP
        # @type HostIp: String
        # @param Platform: 平台类型
        # @type Platform: Integer
        # @param BashCmd: 执行命令
        # @type BashCmd: String
        # @param RuleId: 规则ID,等于0表示已规则已被删除或生效范围已修改
        # @type RuleId: Integer
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param RuleLevel: 规则等级:1-高 2-中 3-低
        # @type RuleLevel: Integer
        # @param Status: 处理状态: 0 = 待处理 1= 已处理, 2 = 已加白, 3= 已忽略
        # @type Status: Integer
        # @param CreateTime: 发生时间
        # @type CreateTime: String
        # @param MachineName: 主机名
        # @type MachineName: String
        # @param Exe: 进程名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Exe: String
        # @param ModifyTime: 处理时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param RuleCategory: 规则类别  0=系统规则,1=用户规则
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleCategory: Integer
        # @param RegexBashCmd: 自动生成的正则表达式
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RegexBashCmd: String
        # @param PsTree: 进程树 json  pid:进程id,exe:文件路径 ,account:进程所属用组和用户 ,cmdline:执行命令,ssh_service: SSH服务ip, ssh_soure:登录源
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PsTree: String
        # @param SuggestScheme: 建议方案
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SuggestScheme: String
        # @param HarmDescribe: 描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HarmDescribe: String
        # @param Tags: 标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tags: Array
        # @param References: 参考链接
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type References: Array
        # @param MachineWanIp: 主机外网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineWanIp: String
        # @param MachineStatus: 主机在线状态 OFFLINE  ONLINE
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineStatus: String
        # @param User: 登录用户
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type User: String
        # @param Pid: 进程号
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Pid: String
        # @param MachineType: 0:普通 1:专业版 2:旗舰版
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineType: Integer
        # @param DetectBy: 检测来源 0:bash日志 1:实时监控
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DetectBy: Integer

        attr_accessor :Id, :Uuid, :Quuid, :HostIp, :Platform, :BashCmd, :RuleId, :RuleName, :RuleLevel, :Status, :CreateTime, :MachineName, :Exe, :ModifyTime, :RuleCategory, :RegexBashCmd, :PsTree, :SuggestScheme, :HarmDescribe, :Tags, :References, :MachineWanIp, :MachineStatus, :User, :Pid, :MachineType, :DetectBy

        def initialize(id=nil, uuid=nil, quuid=nil, hostip=nil, platform=nil, bashcmd=nil, ruleid=nil, rulename=nil, rulelevel=nil, status=nil, createtime=nil, machinename=nil, exe=nil, modifytime=nil, rulecategory=nil, regexbashcmd=nil, pstree=nil, suggestscheme=nil, harmdescribe=nil, tags=nil, references=nil, machinewanip=nil, machinestatus=nil, user=nil, pid=nil, machinetype=nil, detectby=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @HostIp = hostip
          @Platform = platform
          @BashCmd = bashcmd
          @RuleId = ruleid
          @RuleName = rulename
          @RuleLevel = rulelevel
          @Status = status
          @CreateTime = createtime
          @MachineName = machinename
          @Exe = exe
          @ModifyTime = modifytime
          @RuleCategory = rulecategory
          @RegexBashCmd = regexbashcmd
          @PsTree = pstree
          @SuggestScheme = suggestscheme
          @HarmDescribe = harmdescribe
          @Tags = tags
          @References = references
          @MachineWanIp = machinewanip
          @MachineStatus = machinestatus
          @User = user
          @Pid = pid
          @MachineType = machinetype
          @DetectBy = detectby
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @HostIp = params['HostIp']
          @Platform = params['Platform']
          @BashCmd = params['BashCmd']
          @RuleId = params['RuleId']
          @RuleName = params['RuleName']
          @RuleLevel = params['RuleLevel']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MachineName = params['MachineName']
          @Exe = params['Exe']
          @ModifyTime = params['ModifyTime']
          @RuleCategory = params['RuleCategory']
          @RegexBashCmd = params['RegexBashCmd']
          @PsTree = params['PsTree']
          @SuggestScheme = params['SuggestScheme']
          @HarmDescribe = params['HarmDescribe']
          @Tags = params['Tags']
          @References = params['References']
          @MachineWanIp = params['MachineWanIp']
          @MachineStatus = params['MachineStatus']
          @User = params['User']
          @Pid = params['Pid']
          @MachineType = params['MachineType']
          @DetectBy = params['DetectBy']
        end
      end

      # 高位命令策略
      class BashPolicy < TencentCloud::Common::AbstractModel
        # @param Name: 策略名称
        # @type Name: String
        # @param Enable: 1:有效 0:无效
        # @type Enable: Integer
        # @param White: 0:黑名单 1:白名单
        # @type White: Integer
        # @param BashAction: 0:告警 1:白名单 2:拦截
        # @type BashAction: Integer
        # @param Rule: 正则表达式
        # @type Rule: String
        # @param Level: 危险等级(0:无,1: 高危 2:中危 3: 低危)
        # @type Level: Integer
        # @param Scope: 生效范围(0:一组quuid 1:所有专业版(包含旗舰版) 2:所有旗舰版 3:所有主机)
        # @type Scope: Integer
        # @param Id: 策略ID
        # @type Id: Integer
        # @param Descript: 策略描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Descript: String
        # @param EventId: 事件列表点击“加入白名单”时,需要传EventId 事件的id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventId: Integer
        # @param DealOldEvents: 是否处理旧事件为白名单 0=不处理 1=处理
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DealOldEvents: Integer
        # @param Quuids: 生效主机的QUUID集合
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuids: Array
        # @param Category: 策略类型,0:系统  1:用户
        # @type Category: Integer
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 修改时间
        # @type ModifyTime: String
        # @param Uuids: 老版本兼容可能会用到
        # @type Uuids: Array

        attr_accessor :Name, :Enable, :White, :BashAction, :Rule, :Level, :Scope, :Id, :Descript, :EventId, :DealOldEvents, :Quuids, :Category, :CreateTime, :ModifyTime, :Uuids

        def initialize(name=nil, enable=nil, white=nil, bashaction=nil, rule=nil, level=nil, scope=nil, id=nil, descript=nil, eventid=nil, dealoldevents=nil, quuids=nil, category=nil, createtime=nil, modifytime=nil, uuids=nil)
          @Name = name
          @Enable = enable
          @White = white
          @BashAction = bashaction
          @Rule = rule
          @Level = level
          @Scope = scope
          @Id = id
          @Descript = descript
          @EventId = eventid
          @DealOldEvents = dealoldevents
          @Quuids = quuids
          @Category = category
          @CreateTime = createtime
          @ModifyTime = modifytime
          @Uuids = uuids
        end

        def deserialize(params)
          @Name = params['Name']
          @Enable = params['Enable']
          @White = params['White']
          @BashAction = params['BashAction']
          @Rule = params['Rule']
          @Level = params['Level']
          @Scope = params['Scope']
          @Id = params['Id']
          @Descript = params['Descript']
          @EventId = params['EventId']
          @DealOldEvents = params['DealOldEvents']
          @Quuids = params['Quuids']
          @Category = params['Category']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @Uuids = params['Uuids']
        end
      end

      # 高危命令规则
      class BashRule < TencentCloud::Common::AbstractModel
        # @param Id: 规则ID
        # @type Id: Integer
        # @param Uuid: 客户端ID
        # @type Uuid: String
        # @param Name: 规则名称
        # @type Name: String
        # @param Level: 危险等级(0 :无 1: 高危 2:中危 3: 低危)
        # @type Level: Integer
        # @param Rule: 正则表达式
        # @type Rule: String
        # @param Decription: 规则描述
        # @type Decription: String
        # @param Operator: 操作人
        # @type Operator: String
        # @param IsGlobal: 是否全局规则
        # @type IsGlobal: Integer
        # @param Status: 状态 (0: 有效 1: 无效)
        # @type Status: Integer
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 修改时间
        # @type ModifyTime: String
        # @param Hostip: 主机IP
        # @type Hostip: String
        # @param Uuids: 生效服务器的uuid数组
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuids: Array
        # @param White: 0=黑名单 1=白名单
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type White: Integer
        # @param DealOldEvents: 是否处理之前的事件 0: 不处理 1:处理
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DealOldEvents: Integer
        # @param Description: 规则描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Description: String

        attr_accessor :Id, :Uuid, :Name, :Level, :Rule, :Decription, :Operator, :IsGlobal, :Status, :CreateTime, :ModifyTime, :Hostip, :Uuids, :White, :DealOldEvents, :Description
        extend Gem::Deprecate
        deprecate :Decription, :none, 2024, 2
        deprecate :Decription=, :none, 2024, 2

        def initialize(id=nil, uuid=nil, name=nil, level=nil, rule=nil, decription=nil, operator=nil, isglobal=nil, status=nil, createtime=nil, modifytime=nil, hostip=nil, uuids=nil, white=nil, dealoldevents=nil, description=nil)
          @Id = id
          @Uuid = uuid
          @Name = name
          @Level = level
          @Rule = rule
          @Decription = decription
          @Operator = operator
          @IsGlobal = isglobal
          @Status = status
          @CreateTime = createtime
          @ModifyTime = modifytime
          @Hostip = hostip
          @Uuids = uuids
          @White = white
          @DealOldEvents = dealoldevents
          @Description = description
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Name = params['Name']
          @Level = params['Level']
          @Rule = params['Rule']
          @Decription = params['Decription']
          @Operator = params['Operator']
          @IsGlobal = params['IsGlobal']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @Hostip = params['Hostip']
          @Uuids = params['Uuids']
          @White = params['White']
          @DealOldEvents = params['DealOldEvents']
          @Description = params['Description']
        end
      end

      # 安全播报文章详情
      class BroadcastInfo < TencentCloud::Common::AbstractModel
        # @param Title: 文章名字
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Title: String
        # @param GotoType: 跳转位置:0=不跳转,1=文件查杀,2=漏洞扫描,3=安全基线
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type GotoType: Integer
        # @param Subtitle: 副标题
        # @type Subtitle: String
        # @param CreateTime: 发布时间
        # @type CreateTime: String
        # @param Content: 富文本内容信息
        # @type Content: String
        # @param Id: 文章唯一Id
        # @type Id: Integer
        # @param Type: 类型:0=紧急通知,1=功能更新,2=行业荣誉,3=版本发布
        # @type Type: Integer

        attr_accessor :Title, :GotoType, :Subtitle, :CreateTime, :Content, :Id, :Type

        def initialize(title=nil, gototype=nil, subtitle=nil, createtime=nil, content=nil, id=nil, type=nil)
          @Title = title
          @GotoType = gototype
          @Subtitle = subtitle
          @CreateTime = createtime
          @Content = content
          @Id = id
          @Type = type
        end

        def deserialize(params)
          @Title = params['Title']
          @GotoType = params['GotoType']
          @Subtitle = params['Subtitle']
          @CreateTime = params['CreateTime']
          @Content = params['Content']
          @Id = params['Id']
          @Type = params['Type']
        end
      end

      # 安全播报列表
      class Broadcasts < TencentCloud::Common::AbstractModel
        # @param Title: 文章名字
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Title: String
        # @param Type: 类型:0=紧急通知,1=功能更新,2=行业荣誉,3=版本发布
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Type: Integer
        # @param Subtitle: 副标题
        # @type Subtitle: String
        # @param CreateTime: 发布时间
        # @type CreateTime: String
        # @param Id: 文章唯一id
        # @type Id: Integer
        # @param Level: 危险程度  0:无, 1:严重, 2: 高危, 3:中危, 4: 低危
        # @type Level: Integer

        attr_accessor :Title, :Type, :Subtitle, :CreateTime, :Id, :Level

        def initialize(title=nil, type=nil, subtitle=nil, createtime=nil, id=nil, level=nil)
          @Title = title
          @Type = type
          @Subtitle = subtitle
          @CreateTime = createtime
          @Id = id
          @Level = level
        end

        def deserialize(params)
          @Title = params['Title']
          @Type = params['Type']
          @Subtitle = params['Subtitle']
          @CreateTime = params['CreateTime']
          @Id = params['Id']
          @Level = params['Level']
        end
      end

      # 密码破解列表实体
      class BruteAttackInfo < TencentCloud::Common::AbstractModel
        # @param Id: 唯一Id
        # @type Id: Integer
        # @param Uuid: 主机安全客户端唯一标识UUID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param MachineIp: 主机ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineIp: String
        # @param MachineName: 主机名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineName: String
        # @param UserName: 用户名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UserName: String
        # @param SrcIp: 来源ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SrcIp: String
        # @param Status: SUCCESS:破解成功;FAILED:破解失败
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Status: String
        # @param Country: 国家id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Country: Integer
        # @param City: 城市id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type City: Integer
        # @param Province: 省份id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Province: Integer
        # @param CreateTime: 创建时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CreateTime: String
        # @param BanStatus: 阻断状态:1-阻断成功;非1-阻断失败
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BanStatus: Integer
        # @param EventType: 事件类型:200-暴力破解事件,300-暴力破解成功事件(页面展示),400-暴力破解不存在的帐号事件
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventType: Integer
        # @param Count: 发生次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Count: Integer
        # @param Quuid: 机器UUID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param IsProVersion: 是否为专业版(true/false)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsProVersion: Boolean
        # @param Protocol: 被攻击的服务的用户名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Protocol: String
        # @param Port: 端口
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Port: Integer
        # @param ModifyTime: 最近攻击时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param InstanceId: 实例ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceId: String
        # @param DataStatus: 0:待处理,1:忽略,5:已处理,6:加入白名单
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DataStatus: Integer
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Location: 地理位置中文名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Location: String
        # @param RiskLevel: 威胁等级:0低危,1中危,2高危
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskLevel: Integer
        # @param DataFrom: 事件来源:0--阻断规则,1--威胁情报
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DataFrom: Integer

        attr_accessor :Id, :Uuid, :MachineIp, :MachineName, :UserName, :SrcIp, :Status, :Country, :City, :Province, :CreateTime, :BanStatus, :EventType, :Count, :Quuid, :IsProVersion, :Protocol, :Port, :ModifyTime, :InstanceId, :DataStatus, :MachineExtraInfo, :Location, :RiskLevel, :DataFrom

        def initialize(id=nil, uuid=nil, machineip=nil, machinename=nil, username=nil, srcip=nil, status=nil, country=nil, city=nil, province=nil, createtime=nil, banstatus=nil, eventtype=nil, count=nil, quuid=nil, isproversion=nil, protocol=nil, port=nil, modifytime=nil, instanceid=nil, datastatus=nil, machineextrainfo=nil, location=nil, risklevel=nil, datafrom=nil)
          @Id = id
          @Uuid = uuid
          @MachineIp = machineip
          @MachineName = machinename
          @UserName = username
          @SrcIp = srcip
          @Status = status
          @Country = country
          @City = city
          @Province = province
          @CreateTime = createtime
          @BanStatus = banstatus
          @EventType = eventtype
          @Count = count
          @Quuid = quuid
          @IsProVersion = isproversion
          @Protocol = protocol
          @Port = port
          @ModifyTime = modifytime
          @InstanceId = instanceid
          @DataStatus = datastatus
          @MachineExtraInfo = machineextrainfo
          @Location = location
          @RiskLevel = risklevel
          @DataFrom = datafrom
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @UserName = params['UserName']
          @SrcIp = params['SrcIp']
          @Status = params['Status']
          @Country = params['Country']
          @City = params['City']
          @Province = params['Province']
          @CreateTime = params['CreateTime']
          @BanStatus = params['BanStatus']
          @EventType = params['EventType']
          @Count = params['Count']
          @Quuid = params['Quuid']
          @IsProVersion = params['IsProVersion']
          @Protocol = params['Protocol']
          @Port = params['Port']
          @ModifyTime = params['ModifyTime']
          @InstanceId = params['InstanceId']
          @DataStatus = params['DataStatus']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Location = params['Location']
          @RiskLevel = params['RiskLevel']
          @DataFrom = params['DataFrom']
        end
      end

      # 标准阻断模式规则
      class BruteAttackRule < TencentCloud::Common::AbstractModel
        # @param TimeRange: 爆破事件发生的时间范围,单位:秒
        # @type TimeRange: Integer
        # @param LoginFailTimes: 爆破事件失败次数
        # @type LoginFailTimes: Integer

        attr_accessor :TimeRange, :LoginFailTimes

        def initialize(timerange=nil, loginfailtimes=nil)
          @TimeRange = timerange
          @LoginFailTimes = loginfailtimes
        end

        def deserialize(params)
          @TimeRange = params['TimeRange']
          @LoginFailTimes = params['LoginFailTimes']
        end
      end

      # 暴力破解判定规则列表
      class BruteAttackRuleList < TencentCloud::Common::AbstractModel
        # @param TimeRange: 爆破事件发生的时间范围,单位:秒
        # @type TimeRange: Integer
        # @param LoginFailTimes: 爆破事件失败次数
        # @type LoginFailTimes: Integer
        # @param Enable: 规则是否为空,为空则填充默认规则
        # @type Enable: Boolean
        # @param TimeRangeDefault: 爆破事件发生的时间范围,单位:秒(默认规则)
        # @type TimeRangeDefault: Integer
        # @param LoginFailTimesDefault: 爆破事件失败次数(默认规则)
        # @type LoginFailTimesDefault: Integer

        attr_accessor :TimeRange, :LoginFailTimes, :Enable, :TimeRangeDefault, :LoginFailTimesDefault

        def initialize(timerange=nil, loginfailtimes=nil, enable=nil, timerangedefault=nil, loginfailtimesdefault=nil)
          @TimeRange = timerange
          @LoginFailTimes = loginfailtimes
          @Enable = enable
          @TimeRangeDefault = timerangedefault
          @LoginFailTimesDefault = loginfailtimesdefault
        end

        def deserialize(params)
          @TimeRange = params['TimeRange']
          @LoginFailTimes = params['LoginFailTimes']
          @Enable = params['Enable']
          @TimeRangeDefault = params['TimeRangeDefault']
          @LoginFailTimesDefault = params['LoginFailTimesDefault']
        end
      end

      # CKafka实例信息
      class CKafkaInstanceInfo < TencentCloud::Common::AbstractModel
        # @param InstanceID: 实例ID
        # @type InstanceID: String
        # @param InstanceName: 实例名称
        # @type InstanceName: String
        # @param KafkaVersion: 版本号
        # @type KafkaVersion: String
        # @param TopicList: 主题列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TopicList: Array
        # @param RouteList: 路由列表
        # @type RouteList: Array
        # @param DiskSize: 磁盘容量,单位GB
        # @type DiskSize: Integer
        # @param VpcId: vpcId,如果为空,说明是基础网络
        # @type VpcId: String
        # @param SubnetId: 子网id
        # @type SubnetId: String
        # @param Healthy: 状态,1表示健康,2表示告警,3 表示实例状态异常
        # @type Healthy: Integer
        # @param Zone: 可用区
        # @type Zone: String
        # @param Az: 地域
        # @type Az: String
        # @param Bandwidth: 实例带宽,单位Mbps
        # @type Bandwidth: Integer

        attr_accessor :InstanceID, :InstanceName, :KafkaVersion, :TopicList, :RouteList, :DiskSize, :VpcId, :SubnetId, :Healthy, :Zone, :Az, :Bandwidth

        def initialize(instanceid=nil, instancename=nil, kafkaversion=nil, topiclist=nil, routelist=nil, disksize=nil, vpcid=nil, subnetid=nil, healthy=nil, zone=nil, az=nil, bandwidth=nil)
          @InstanceID = instanceid
          @InstanceName = instancename
          @KafkaVersion = kafkaversion
          @TopicList = topiclist
          @RouteList = routelist
          @DiskSize = disksize
          @VpcId = vpcid
          @SubnetId = subnetid
          @Healthy = healthy
          @Zone = zone
          @Az = az
          @Bandwidth = bandwidth
        end

        def deserialize(params)
          @InstanceID = params['InstanceID']
          @InstanceName = params['InstanceName']
          @KafkaVersion = params['KafkaVersion']
          unless params['TopicList'].nil?
            @TopicList = []
            params['TopicList'].each do |i|
              ckafkatopicinfo_tmp = CKafkaTopicInfo.new
              ckafkatopicinfo_tmp.deserialize(i)
              @TopicList << ckafkatopicinfo_tmp
            end
          end
          unless params['RouteList'].nil?
            @RouteList = []
            params['RouteList'].each do |i|
              ckafkarouteinfo_tmp = CKafkaRouteInfo.new
              ckafkarouteinfo_tmp.deserialize(i)
              @RouteList << ckafkarouteinfo_tmp
            end
          end
          @DiskSize = params['DiskSize']
          @VpcId = params['VpcId']
          @SubnetId = params['SubnetId']
          @Healthy = params['Healthy']
          @Zone = params['Zone']
          @Az = params['Az']
          @Bandwidth = params['Bandwidth']
        end
      end

      # CKafka域名信息
      class CKafkaRouteInfo < TencentCloud::Common::AbstractModel
        # @param RouteID: 路由ID
        # @type RouteID: Integer
        # @param Domain: 域名
        # @type Domain: String
        # @param DomainPort: 域名端口
        # @type DomainPort: Integer
        # @param Vip: 虚拟ip
        # @type Vip: String
        # @param VipType: 虚拟ip类型
        # @type VipType: Integer
        # @param AccessType: 接入类型
        # @type AccessType: Integer

        attr_accessor :RouteID, :Domain, :DomainPort, :Vip, :VipType, :AccessType

        def initialize(routeid=nil, domain=nil, domainport=nil, vip=nil, viptype=nil, accesstype=nil)
          @RouteID = routeid
          @Domain = domain
          @DomainPort = domainport
          @Vip = vip
          @VipType = viptype
          @AccessType = accesstype
        end

        def deserialize(params)
          @RouteID = params['RouteID']
          @Domain = params['Domain']
          @DomainPort = params['DomainPort']
          @Vip = params['Vip']
          @VipType = params['VipType']
          @AccessType = params['AccessType']
        end
      end

      # Ckafka主题名称
      class CKafkaTopicInfo < TencentCloud::Common::AbstractModel
        # @param TopicID: 主题ID
        # @type TopicID: String
        # @param TopicName: 主题名称
        # @type TopicName: String

        attr_accessor :TopicID, :TopicName

        def initialize(topicid=nil, topicname=nil)
          @TopicID = topicid
          @TopicName = topicname
        end

        def deserialize(params)
          @TopicID = params['TopicID']
          @TopicName = params['TopicName']
        end
      end

      # 批量修复漏洞二次弹窗 漏洞主机信息
      class CanFixVulInfo < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulId: Integer
        # @param VulName: 漏洞名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulName: String
        # @param HostList: 该漏洞可修复的主机信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostList: Array
        # @param FixTag: 修复提示tag
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixTag: Array

        attr_accessor :VulId, :VulName, :HostList, :FixTag

        def initialize(vulid=nil, vulname=nil, hostlist=nil, fixtag=nil)
          @VulId = vulid
          @VulName = vulname
          @HostList = hostlist
          @FixTag = fixtag
        end

        def deserialize(params)
          @VulId = params['VulId']
          @VulName = params['VulName']
          unless params['HostList'].nil?
            @HostList = []
            params['HostList'].each do |i|
              vulinfohostinfo_tmp = VulInfoHostInfo.new
              vulinfohostinfo_tmp.deserialize(i)
              @HostList << vulinfohostinfo_tmp
            end
          end
          @FixTag = params['FixTag']
        end
      end

      # 不可隔离木马的机器信息
      class CanNotSeparateInfo < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机quuid
        # @type Quuid: String
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param Alias: 主机名
        # @type Alias: String
        # @param PrivateIp: 内网ip
        # @type PrivateIp: String
        # @param PublicIp: 外网ip
        # @type PublicIp: String
        # @param Reason: 隔离失败原因 1:agent离线
        # @type Reason: Integer

        attr_accessor :Quuid, :Uuid, :Alias, :PrivateIp, :PublicIp, :Reason

        def initialize(quuid=nil, uuid=nil, _alias=nil, privateip=nil, publicip=nil, reason=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Alias = _alias
          @PrivateIp = privateip
          @PublicIp = publicip
          @Reason = reason
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Alias = params['Alias']
          @PrivateIp = params['PrivateIp']
          @PublicIp = params['PublicIp']
          @Reason = params['Reason']
        end
      end

      # CancelIgnoreVul请求参数结构体
      class CancelIgnoreVulRequest < TencentCloud::Common::AbstractModel
        # @param EventIds: 漏洞事件id串,多个用英文逗号分隔
        # @type EventIds: String

        attr_accessor :EventIds

        def initialize(eventids=nil)
          @EventIds = eventids
        end

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

      # CancelIgnoreVul返回参数结构体
      class CancelIgnoreVulResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ChangeRuleEventsIgnoreStatus请求参数结构体
      class ChangeRuleEventsIgnoreStatusRequest < TencentCloud::Common::AbstractModel
        # @param IgnoreStatus: 忽略状态 0:取消忽略 ; 1:忽略
        # @type IgnoreStatus: Integer
        # @param RuleIdList: 检测项id数组
        # @type RuleIdList: Array
        # @param EventIdList: 事件id数组
        # @type EventIdList: Array

        attr_accessor :IgnoreStatus, :RuleIdList, :EventIdList

        def initialize(ignorestatus=nil, ruleidlist=nil, eventidlist=nil)
          @IgnoreStatus = ignorestatus
          @RuleIdList = ruleidlist
          @EventIdList = eventidlist
        end

        def deserialize(params)
          @IgnoreStatus = params['IgnoreStatus']
          @RuleIdList = params['RuleIdList']
          @EventIdList = params['EventIdList']
        end
      end

      # ChangeRuleEventsIgnoreStatus返回参数结构体
      class ChangeRuleEventsIgnoreStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ChangeStrategyEnableStatus请求参数结构体
      class ChangeStrategyEnableStatusRequest < TencentCloud::Common::AbstractModel
        # @param StrategyId: 基线策略id
        # @type StrategyId: Integer
        # @param Status: 开关状态
        # @type Status: Integer

        attr_accessor :StrategyId, :Status

        def initialize(strategyid=nil, status=nil)
          @StrategyId = strategyid
          @Status = status
        end

        def deserialize(params)
          @StrategyId = params['StrategyId']
          @Status = params['Status']
        end
      end

      # ChangeStrategyEnableStatus返回参数结构体
      class ChangeStrategyEnableStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CheckBashPolicyParams请求参数结构体
      class CheckBashPolicyParamsRequest < TencentCloud::Common::AbstractModel
        # @param CheckField: 校验内容 Name或Rule ,两个都要校验时逗号分割
        # @type CheckField: String
        # @param EventId: 在事件列表中新增白名时需要提交事件ID
        # @type EventId: Integer
        # @param Name: 填入的规则名称
        # @type Name: String
        # @param Rule: 用户填入的正则表达式:"正则表达式" 需与 "提交EventId对应的命令内容" 相匹配
        # @type Rule: String
        # @param Id: 编辑时传的规则id
        # @type Id: Integer

        attr_accessor :CheckField, :EventId, :Name, :Rule, :Id

        def initialize(checkfield=nil, eventid=nil, name=nil, rule=nil, id=nil)
          @CheckField = checkfield
          @EventId = eventid
          @Name = name
          @Rule = rule
          @Id = id
        end

        def deserialize(params)
          @CheckField = params['CheckField']
          @EventId = params['EventId']
          @Name = params['Name']
          @Rule = params['Rule']
          @Id = params['Id']
        end
      end

      # CheckBashPolicyParams返回参数结构体
      class CheckBashPolicyParamsResponse < TencentCloud::Common::AbstractModel
        # @param ErrCode: 0=校验通过  1=规则名称校验不通过 2=正则表达式校验不通过
        # @type ErrCode: Integer
        # @param ErrMsg: 校验信息
        # @type ErrMsg: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ErrCode, :ErrMsg, :RequestId

        def initialize(errcode=nil, errmsg=nil, requestid=nil)
          @ErrCode = errcode
          @ErrMsg = errmsg
          @RequestId = requestid
        end

        def deserialize(params)
          @ErrCode = params['ErrCode']
          @ErrMsg = params['ErrMsg']
          @RequestId = params['RequestId']
        end
      end

      # CheckBashRuleParams请求参数结构体
      class CheckBashRuleParamsRequest < TencentCloud::Common::AbstractModel
        # @param CheckField: 校验内容 Name或Rule ,两个都要校验时逗号分割
        # @type CheckField: String
        # @param EventId: 在事件列表中新增白名时需要提交事件ID
        # @type EventId: Integer
        # @param Name: 填入的规则名称
        # @type Name: String
        # @param Rule: 用户填入的正则表达式:"正则表达式" 需与 "提交EventId对应的命令内容" 相匹配
        # @type Rule: String
        # @param Id: 编辑时传的规则id
        # @type Id: Integer

        attr_accessor :CheckField, :EventId, :Name, :Rule, :Id

        def initialize(checkfield=nil, eventid=nil, name=nil, rule=nil, id=nil)
          @CheckField = checkfield
          @EventId = eventid
          @Name = name
          @Rule = rule
          @Id = id
        end

        def deserialize(params)
          @CheckField = params['CheckField']
          @EventId = params['EventId']
          @Name = params['Name']
          @Rule = params['Rule']
          @Id = params['Id']
        end
      end

      # CheckBashRuleParams返回参数结构体
      class CheckBashRuleParamsResponse < TencentCloud::Common::AbstractModel
        # @param ErrCode: 0=校验通过  1=规则名称校验不通过 2=正则表达式校验不通过
        # @type ErrCode: Integer
        # @param ErrMsg: 校验信息
        # @type ErrMsg: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ErrCode, :ErrMsg, :RequestId

        def initialize(errcode=nil, errmsg=nil, requestid=nil)
          @ErrCode = errcode
          @ErrMsg = errmsg
          @RequestId = requestid
        end

        def deserialize(params)
          @ErrCode = params['ErrCode']
          @ErrMsg = params['ErrMsg']
          @RequestId = params['RequestId']
        end
      end

      # CheckFileTamperRule请求参数结构体
      class CheckFileTamperRuleRequest < TencentCloud::Common::AbstractModel
        # @param Name: 填入的规则名称
        # @type Name: String
        # @param Id: 编辑时传的规则id
        # @type Id: Integer

        attr_accessor :Name, :Id

        def initialize(name=nil, id=nil)
          @Name = name
          @Id = id
        end

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

      # CheckFileTamperRule返回参数结构体
      class CheckFileTamperRuleResponse < TencentCloud::Common::AbstractModel
        # @param ErrCode: 0=校验通过  1=规则名称校验不通过
        # @type ErrCode: Integer
        # @param ErrMsg: 校验信息
        # @type ErrMsg: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ErrCode, :ErrMsg, :RequestId

        def initialize(errcode=nil, errmsg=nil, requestid=nil)
          @ErrCode = errcode
          @ErrMsg = errmsg
          @RequestId = requestid
        end

        def deserialize(params)
          @ErrCode = params['ErrCode']
          @ErrMsg = params['ErrMsg']
          @RequestId = params['RequestId']
        end
      end

      # CheckFirstScanBaseline请求参数结构体
      class CheckFirstScanBaselineRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # CheckFirstScanBaseline返回参数结构体
      class CheckFirstScanBaselineResponse < TencentCloud::Common::AbstractModel
        # @param FirstScan: 是否是第一次检测 0:不是;1:是
        # @type FirstScan: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FirstScan, :RequestId

        def initialize(firstscan=nil, requestid=nil)
          @FirstScan = firstscan
          @RequestId = requestid
        end

        def deserialize(params)
          @FirstScan = params['FirstScan']
          @RequestId = params['RequestId']
        end
      end

      # CheckLogKafkaConnectionState请求参数结构体
      class CheckLogKafkaConnectionStateRequest < TencentCloud::Common::AbstractModel
        # @param AccessType: 接入方式,1公网域名接入,2支撑环境接入
        # @type AccessType: Integer
        # @param AccessAddr: 接入地址,域名或ip,带端口
        # @type AccessAddr: String
        # @param Username: 用户名
        # @type Username: String
        # @param HasPwd: 0不用密码,1有密码
        # @type HasPwd: Integer
        # @param Pwd: 密码,使用aes加密
        # @type Pwd: String
        # @param KafkaId: kafka实例id
        # @type KafkaId: String
        # @param InsVersion: kafka版本
        # @type InsVersion: String

        attr_accessor :AccessType, :AccessAddr, :Username, :HasPwd, :Pwd, :KafkaId, :InsVersion

        def initialize(accesstype=nil, accessaddr=nil, username=nil, haspwd=nil, pwd=nil, kafkaid=nil, insversion=nil)
          @AccessType = accesstype
          @AccessAddr = accessaddr
          @Username = username
          @HasPwd = haspwd
          @Pwd = pwd
          @KafkaId = kafkaid
          @InsVersion = insversion
        end

        def deserialize(params)
          @AccessType = params['AccessType']
          @AccessAddr = params['AccessAddr']
          @Username = params['Username']
          @HasPwd = params['HasPwd']
          @Pwd = params['Pwd']
          @KafkaId = params['KafkaId']
          @InsVersion = params['InsVersion']
        end
      end

      # CheckLogKafkaConnectionState返回参数结构体
      class CheckLogKafkaConnectionStateResponse < TencentCloud::Common::AbstractModel
        # @param IsConnect: true连通,false不通
        # @type IsConnect: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :IsConnect, :RequestId

        def initialize(isconnect=nil, requestid=nil)
          @IsConnect = isconnect
          @RequestId = requestid
        end

        def deserialize(params)
          @IsConnect = params['IsConnect']
          @RequestId = params['RequestId']
        end
      end

      # ClearLocalStorage请求参数结构体
      class ClearLocalStorageRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # ClearLocalStorage返回参数结构体
      class ClearLocalStorageResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 云护航服务详情信息
      class CloudProtectService < TencentCloud::Common::AbstractModel
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param Type: 类型: 这里为新购
        # @type Type: String
        # @param Config: 配置:购买的配置信息
        # @type Config: String
        # @param ServiceName: 服务名称
        # @type ServiceName: String
        # @param BeginTime: 购买时间
        # @type BeginTime: String

        attr_accessor :ResourceId, :Type, :Config, :ServiceName, :BeginTime

        def initialize(resourceid=nil, type=nil, config=nil, servicename=nil, begintime=nil)
          @ResourceId = resourceid
          @Type = type
          @Config = config
          @ServiceName = servicename
          @BeginTime = begintime
        end

        def deserialize(params)
          @ResourceId = params['ResourceId']
          @Type = params['Type']
          @Config = params['Config']
          @ServiceName = params['ServiceName']
          @BeginTime = params['BeginTime']
        end
      end

      # 组件统计数据。
      class ComponentStatistics < TencentCloud::Common::AbstractModel
        # @param Id: 组件ID。
        # @type Id: Integer
        # @param MachineNum: 主机数量。
        # @type MachineNum: Integer
        # @param ComponentName: 组件名称。
        # @type ComponentName: String
        # @param ComponentType: 组件类型。
        # <li>WEB:Web组件</li>
        # <li>SYSTEM:系统组件</li>
        # @type ComponentType: String
        # @param Description: 组件描述。
        # @type Description: String

        attr_accessor :Id, :MachineNum, :ComponentName, :ComponentType, :Description

        def initialize(id=nil, machinenum=nil, componentname=nil, componenttype=nil, description=nil)
          @Id = id
          @MachineNum = machinenum
          @ComponentName = componentname
          @ComponentType = componenttype
          @Description = description
        end

        def deserialize(params)
          @Id = params['Id']
          @MachineNum = params['MachineNum']
          @ComponentName = params['ComponentName']
          @ComponentType = params['ComponentType']
          @Description = params['Description']
        end
      end

      # CreateBanWhiteList请求参数结构体
      class CreateBanWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Rules: 阻断规则
        # @type Rules: :class:`Tencentcloud::Cwp.v20180228.models.BanWhiteList`
        # @param EventId: 事件ID,事件列表加白名单时传递,白名单添加成功后,会将事件变成已加白状态
        # @type EventId: Integer

        attr_accessor :Rules, :EventId

        def initialize(rules=nil, eventid=nil)
          @Rules = rules
          @EventId = eventid
        end

        def deserialize(params)
          unless params['Rules'].nil?
            @Rules = BanWhiteList.new
            @Rules.deserialize(params['Rules'])
          end
          @EventId = params['EventId']
        end
      end

      # CreateBanWhiteList返回参数结构体
      class CreateBanWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param IsGlobal: 是否全局规则
        # @type IsGlobal: Boolean
        # @param IsDuplicate: 添加规则是否重复
        # @type IsDuplicate: Boolean
        # @param DuplicateHosts: 重复机器的信息
        # @type DuplicateHosts: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :IsGlobal, :IsDuplicate, :DuplicateHosts, :RequestId

        def initialize(isglobal=nil, isduplicate=nil, duplicatehosts=nil, requestid=nil)
          @IsGlobal = isglobal
          @IsDuplicate = isduplicate
          @DuplicateHosts = duplicatehosts
          @RequestId = requestid
        end

        def deserialize(params)
          @IsGlobal = params['IsGlobal']
          @IsDuplicate = params['IsDuplicate']
          unless params['DuplicateHosts'].nil?
            @DuplicateHosts = []
            params['DuplicateHosts'].each do |i|
              duplicatehosts_tmp = DuplicateHosts.new
              duplicatehosts_tmp.deserialize(i)
              @DuplicateHosts << duplicatehosts_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # CreateBaselineStrategy请求参数结构体
      class CreateBaselineStrategyRequest < TencentCloud::Common::AbstractModel
        # @param StrategyName: 策略名称
        # @type StrategyName: String
        # @param ScanCycle: 检测周期, 表示每隔多少天进行检测.示例: 2, 表示每2天进行检测一次.
        # @type ScanCycle: Integer
        # @param ScanAt: 定期检测时间,该时间下发扫描. 示例:“22:00”, 表示在22:00下发检测
        # @type ScanAt: String
        # @param CategoryIds: 该策略下选择的基线id数组. 示例: [1,3,5,7]
        # @type CategoryIds: Array
        # @param IsGlobal: 扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        # @type IsGlobal: Integer
        # @param MachineType: 云主机类型:
        # CVM:虚拟主机
        # BM:裸金属
        # ECM:边缘计算主机
        # LH:轻量应用服务器
        # Other:混合云机器
        # @type MachineType: String
        # @param RegionCode: 主机地域. 示例: "ap-guangzhou"
        # @type RegionCode: String
        # @param Quuids: 主机id数组. 示例: ["quuid1","quuid2"]
        # @type Quuids: Array

        attr_accessor :StrategyName, :ScanCycle, :ScanAt, :CategoryIds, :IsGlobal, :MachineType, :RegionCode, :Quuids

        def initialize(strategyname=nil, scancycle=nil, scanat=nil, categoryids=nil, isglobal=nil, machinetype=nil, regioncode=nil, quuids=nil)
          @StrategyName = strategyname
          @ScanCycle = scancycle
          @ScanAt = scanat
          @CategoryIds = categoryids
          @IsGlobal = isglobal
          @MachineType = machinetype
          @RegionCode = regioncode
          @Quuids = quuids
        end

        def deserialize(params)
          @StrategyName = params['StrategyName']
          @ScanCycle = params['ScanCycle']
          @ScanAt = params['ScanAt']
          @CategoryIds = params['CategoryIds']
          @IsGlobal = params['IsGlobal']
          @MachineType = params['MachineType']
          @RegionCode = params['RegionCode']
          @Quuids = params['Quuids']
        end
      end

      # CreateBaselineStrategy返回参数结构体
      class CreateBaselineStrategyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateBuyBindTask请求参数结构体
      class CreateBuyBindTaskRequest < TencentCloud::Common::AbstractModel
        # @param DealName: 订单号
        # @type DealName: String
        # @param LicenseType: 可选参数: 1专业版-包年包月 , 2 旗舰版-包年包月
        # @type LicenseType: Integer
        # @param QuuidList: 机器列表
        # @type QuuidList: Array
        # @param IsAll: 是否全选机器
        # @type IsAll: Boolean

        attr_accessor :DealName, :LicenseType, :QuuidList, :IsAll

        def initialize(dealname=nil, licensetype=nil, quuidlist=nil, isall=nil)
          @DealName = dealname
          @LicenseType = licensetype
          @QuuidList = quuidlist
          @IsAll = isall
        end

        def deserialize(params)
          @DealName = params['DealName']
          @LicenseType = params['LicenseType']
          @QuuidList = params['QuuidList']
          @IsAll = params['IsAll']
        end
      end

      # CreateBuyBindTask返回参数结构体
      class CreateBuyBindTaskResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateCloudProtectServiceOrderRecord请求参数结构体
      class CreateCloudProtectServiceOrderRecordRequest < TencentCloud::Common::AbstractModel
        # @param ResourceIds: 对应云护航服务的资源ID
        # @type ResourceIds: Array

        attr_accessor :ResourceIds

        def initialize(resourceids=nil)
          @ResourceIds = resourceids
        end

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

      # CreateCloudProtectServiceOrderRecord返回参数结构体
      class CreateCloudProtectServiceOrderRecordResponse < TencentCloud::Common::AbstractModel
        # @param Success: 成功收货的资源ID
        # @type Success: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Success, :RequestId

        def initialize(success=nil, requestid=nil)
          @Success = success
          @RequestId = requestid
        end

        def deserialize(params)
          @Success = params['Success']
          @RequestId = params['RequestId']
        end
      end

      # CreateEmergencyVulScan请求参数结构体
      class CreateEmergencyVulScanRequest < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param Uuids: 自选服务器时生效,主机uuid的string数组
        # @type Uuids: Array
        # @param TimeoutPeriod: 扫描超时时长 ,单位秒
        # @type TimeoutPeriod: Integer

        attr_accessor :VulId, :Uuids, :TimeoutPeriod

        def initialize(vulid=nil, uuids=nil, timeoutperiod=nil)
          @VulId = vulid
          @Uuids = uuids
          @TimeoutPeriod = timeoutperiod
        end

        def deserialize(params)
          @VulId = params['VulId']
          @Uuids = params['Uuids']
          @TimeoutPeriod = params['TimeoutPeriod']
        end
      end

      # CreateEmergencyVulScan返回参数结构体
      class CreateEmergencyVulScanResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateIncidentBacktracking请求参数结构体
      class CreateIncidentBacktrackingRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机安全quuid
        # @type Quuid: String

        attr_accessor :Quuid

        def initialize(quuid=nil)
          @Quuid = quuid
        end

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

      # CreateIncidentBacktracking返回参数结构体
      class CreateIncidentBacktrackingResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateLicenseOrder请求参数结构体
      class CreateLicenseOrderRequest < TencentCloud::Common::AbstractModel
        # @param Tags: 标签数组, 空则表示不需要绑定标签
        # @type Tags: Array
        # @param LicenseType: 授权类型, 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        # 默认为0
        # @type LicenseType: Integer
        # @param LicenseNum: 授权数量 , 需要购买的数量.
        # 默认为1
        # @type LicenseNum: Integer
        # @param RegionId: 购买订单地域,这里仅支持 1 广州,9 新加坡. 推荐选择广州. 新加坡地域为白名单用户购买.
        # 默认为1
        # @type RegionId: Integer
        # @param ProjectId: 项目ID .
        # 默认为0
        # @type ProjectId: Integer
        # @param TimeSpan: 购买时间长度,默认1 , 可选值为1,2,3,4,5,6,7,8,9,10,11,12,24,36
        # 该参数仅包年包月生效
        # @type TimeSpan: Integer
        # @param AutoRenewFlag: 是否自动续费, 默认不自动续费.
        # 该参数仅包年包月生效
        # @type AutoRenewFlag: Boolean
        # @param AutoProtectOpenConfig: 该字段作废
        # @type AutoProtectOpenConfig: String
        # @param ModifyConfig: 变配参数
        # @type ModifyConfig: :class:`Tencentcloud::Cwp.v20180228.models.OrderModifyObject`

        attr_accessor :Tags, :LicenseType, :LicenseNum, :RegionId, :ProjectId, :TimeSpan, :AutoRenewFlag, :AutoProtectOpenConfig, :ModifyConfig

        def initialize(tags=nil, licensetype=nil, licensenum=nil, regionid=nil, projectid=nil, timespan=nil, autorenewflag=nil, autoprotectopenconfig=nil, modifyconfig=nil)
          @Tags = tags
          @LicenseType = licensetype
          @LicenseNum = licensenum
          @RegionId = regionid
          @ProjectId = projectid
          @TimeSpan = timespan
          @AutoRenewFlag = autorenewflag
          @AutoProtectOpenConfig = autoprotectopenconfig
          @ModifyConfig = modifyconfig
        end

        def deserialize(params)
          unless params['Tags'].nil?
            @Tags = []
            params['Tags'].each do |i|
              tags_tmp = Tags.new
              tags_tmp.deserialize(i)
              @Tags << tags_tmp
            end
          end
          @LicenseType = params['LicenseType']
          @LicenseNum = params['LicenseNum']
          @RegionId = params['RegionId']
          @ProjectId = params['ProjectId']
          @TimeSpan = params['TimeSpan']
          @AutoRenewFlag = params['AutoRenewFlag']
          @AutoProtectOpenConfig = params['AutoProtectOpenConfig']
          unless params['ModifyConfig'].nil?
            @ModifyConfig = OrderModifyObject.new
            @ModifyConfig.deserialize(params['ModifyConfig'])
          end
        end
      end

      # CreateLicenseOrder返回参数结构体
      class CreateLicenseOrderResponse < TencentCloud::Common::AbstractModel
        # @param DealNames: 订单号列表
        # @type DealNames: Array
        # @param ResourceIds: 资源ID列表,预付费订单该字段空值
        # @type ResourceIds: Array
        # @param BigDealId: 大订单号 , 后付费该字段空值
        # @type BigDealId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DealNames, :ResourceIds, :BigDealId, :RequestId

        def initialize(dealnames=nil, resourceids=nil, bigdealid=nil, requestid=nil)
          @DealNames = dealnames
          @ResourceIds = resourceids
          @BigDealId = bigdealid
          @RequestId = requestid
        end

        def deserialize(params)
          @DealNames = params['DealNames']
          @ResourceIds = params['ResourceIds']
          @BigDealId = params['BigDealId']
          @RequestId = params['RequestId']
        end
      end

      # CreateLogExport请求参数结构体
      class CreateLogExportRequest < TencentCloud::Common::AbstractModel
        # @param Count: 日志导出数量, 最大值5000万
        # @type Count: Integer
        # @param StartTime: 日志导出起始时间,毫秒时间戳
        # @type StartTime: Integer
        # @param EndTime: 日志导出结束时间,毫秒时间戳
        # @type EndTime: Integer
        # @param QueryString: 日志导出检索语句,不支持[SQL语句]
        # @type QueryString: String
        # @param Sort: 日志导出时间排序。desc,asc,默认为desc
        # @type Sort: String
        # @param Format: 日志导出数据格式。json,csv,默认为json
        # @type Format: String

        attr_accessor :Count, :StartTime, :EndTime, :QueryString, :Sort, :Format

        def initialize(count=nil, starttime=nil, endtime=nil, querystring=nil, sort=nil, format=nil)
          @Count = count
          @StartTime = starttime
          @EndTime = endtime
          @QueryString = querystring
          @Sort = sort
          @Format = format
        end

        def deserialize(params)
          @Count = params['Count']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @QueryString = params['QueryString']
          @Sort = params['Sort']
          @Format = params['Format']
        end
      end

      # CreateLogExport返回参数结构体
      class CreateLogExportResponse < TencentCloud::Common::AbstractModel
        # @param ExportId: 日志导出ID
        # @type ExportId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ExportId, :RequestId

        def initialize(exportid=nil, requestid=nil)
          @ExportId = exportid
          @RequestId = requestid
        end

        def deserialize(params)
          @ExportId = params['ExportId']
          @RequestId = params['RequestId']
        end
      end

      # CreateMaliciousRequestWhiteList请求参数结构体
      class CreateMaliciousRequestWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Domain: 白名单域名
        # @type Domain: String
        # @param Mark: 备注
        # @type Mark: String

        attr_accessor :Domain, :Mark

        def initialize(domain=nil, mark=nil)
          @Domain = domain
          @Mark = mark
        end

        def deserialize(params)
          @Domain = params['Domain']
          @Mark = params['Mark']
        end
      end

      # CreateMaliciousRequestWhiteList返回参数结构体
      class CreateMaliciousRequestWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateMalwareWhiteList请求参数结构体
      class CreateMalwareWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Mode: 白名单模式; 0 MD5白名单,1自定义
        # @type Mode: Integer
        # @param QuuidList: quuid 列表
        # @type QuuidList: Array
        # @param IsGlobal: 是否全部主机; 0否,1是。
        # @type IsGlobal: Integer
        # @param MatchType: 匹配模式 ;0 精确匹配,1模糊匹配(废弃)
        # @type MatchType: Integer
        # @param FileName: 文件名称(正则);长度不超过200个
        # @type FileName: Array
        # @param FileDirectory: 文件目录(正则);长度不超过200个,内容base64转义
        # @type FileDirectory: Array
        # @param FileExtension: 文件后缀;长度不超过200个,内容base64转义(废弃)
        # @type FileExtension: Array
        # @param Md5List: MD5列表
        # @type Md5List: Array
        # @param EventId: 木马事件ID
        # @type EventId: Integer

        attr_accessor :Mode, :QuuidList, :IsGlobal, :MatchType, :FileName, :FileDirectory, :FileExtension, :Md5List, :EventId

        def initialize(mode=nil, quuidlist=nil, isglobal=nil, matchtype=nil, filename=nil, filedirectory=nil, fileextension=nil, md5list=nil, eventid=nil)
          @Mode = mode
          @QuuidList = quuidlist
          @IsGlobal = isglobal
          @MatchType = matchtype
          @FileName = filename
          @FileDirectory = filedirectory
          @FileExtension = fileextension
          @Md5List = md5list
          @EventId = eventid
        end

        def deserialize(params)
          @Mode = params['Mode']
          @QuuidList = params['QuuidList']
          @IsGlobal = params['IsGlobal']
          @MatchType = params['MatchType']
          @FileName = params['FileName']
          @FileDirectory = params['FileDirectory']
          @FileExtension = params['FileExtension']
          @Md5List = params['Md5List']
          @EventId = params['EventId']
        end
      end

      # CreateMalwareWhiteList返回参数结构体
      class CreateMalwareWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateNetAttackWhiteList请求参数结构体
      class CreateNetAttackWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Scope: 是否全部主机; 0否,1是。
        # @type Scope: Integer
        # @param SrcIp: 来源IP 单IP:1.1.1.1  IP范围:1.1.1.1-1.1.2.1  IP范围:1.1.1.0/24
        # @type SrcIp: Array
        # @param QuuidList: quuid 列表
        # @type QuuidList: Array
        # @param EventId: 事件id
        # @type EventId: Integer
        # @param DealOldEvents: 是否加白所有符合该规则的告警 ,1:处理,0:不处理
        # @type DealOldEvents: Integer
        # @param Description: 描述
        # @type Description: String

        attr_accessor :Scope, :SrcIp, :QuuidList, :EventId, :DealOldEvents, :Description

        def initialize(scope=nil, srcip=nil, quuidlist=nil, eventid=nil, dealoldevents=nil, description=nil)
          @Scope = scope
          @SrcIp = srcip
          @QuuidList = quuidlist
          @EventId = eventid
          @DealOldEvents = dealoldevents
          @Description = description
        end

        def deserialize(params)
          @Scope = params['Scope']
          @SrcIp = params['SrcIp']
          @QuuidList = params['QuuidList']
          @EventId = params['EventId']
          @DealOldEvents = params['DealOldEvents']
          @Description = params['Description']
        end
      end

      # CreateNetAttackWhiteList返回参数结构体
      class CreateNetAttackWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateProtectServer请求参数结构体
      class CreateProtectServerRequest < TencentCloud::Common::AbstractModel
        # @param ProtectDir: 防护目录地址
        # @type ProtectDir: String
        # @param ProtectHostConfig: 防护机器 信息
        # @type ProtectHostConfig: Array

        attr_accessor :ProtectDir, :ProtectHostConfig

        def initialize(protectdir=nil, protecthostconfig=nil)
          @ProtectDir = protectdir
          @ProtectHostConfig = protecthostconfig
        end

        def deserialize(params)
          @ProtectDir = params['ProtectDir']
          unless params['ProtectHostConfig'].nil?
            @ProtectHostConfig = []
            params['ProtectHostConfig'].each do |i|
              protecthostconfig_tmp = ProtectHostConfig.new
              protecthostconfig_tmp.deserialize(i)
              @ProtectHostConfig << protecthostconfig_tmp
            end
          end
        end
      end

      # CreateProtectServer返回参数结构体
      class CreateProtectServerResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateRansomDefenseStrategy请求参数结构体
      class CreateRansomDefenseStrategyRequest < TencentCloud::Common::AbstractModel
        # @param Name: 策略名称
        # @type Name: String
        # @param Hour: 定时快照执行时间(0-23):01:00;23:00
        # @type Hour: String
        # @param Id: 策略ID,填ID时修改策略,否则新增策略
        # @type Id: Integer
        # @param Description: 策略备注
        # @type Description: String
        # @param Status: 是否开启:0关,1开
        # @type Status: Integer
        # @param IsAll: 是否全部机器生效:0否,1是
        # @type IsAll: Integer
        # @param IncludeDir: 包含目录,;分隔
        # @type IncludeDir: String
        # @param ExcludeDir: 排除目录,;分隔
        # @type ExcludeDir: String
        # @param BackupType: 备份模式: 0按周,1按天
        # @type BackupType: Integer
        # @param Weekday: 定时任务执行星期天数(1-7):1;2;7
        # @type Weekday: String
        # @param SaveDay: 保留天数:0永久
        # @type SaveDay: Integer
        # @param Machines: 绑定主机列表
        # @type Machines: Array

        attr_accessor :Name, :Hour, :Id, :Description, :Status, :IsAll, :IncludeDir, :ExcludeDir, :BackupType, :Weekday, :SaveDay, :Machines

        def initialize(name=nil, hour=nil, id=nil, description=nil, status=nil, isall=nil, includedir=nil, excludedir=nil, backuptype=nil, weekday=nil, saveday=nil, machines=nil)
          @Name = name
          @Hour = hour
          @Id = id
          @Description = description
          @Status = status
          @IsAll = isall
          @IncludeDir = includedir
          @ExcludeDir = excludedir
          @BackupType = backuptype
          @Weekday = weekday
          @SaveDay = saveday
          @Machines = machines
        end

        def deserialize(params)
          @Name = params['Name']
          @Hour = params['Hour']
          @Id = params['Id']
          @Description = params['Description']
          @Status = params['Status']
          @IsAll = params['IsAll']
          @IncludeDir = params['IncludeDir']
          @ExcludeDir = params['ExcludeDir']
          @BackupType = params['BackupType']
          @Weekday = params['Weekday']
          @SaveDay = params['SaveDay']
          unless params['Machines'].nil?
            @Machines = []
            params['Machines'].each do |i|
              ransomdefensestrategymachineinfo_tmp = RansomDefenseStrategyMachineInfo.new
              ransomdefensestrategymachineinfo_tmp.deserialize(i)
              @Machines << ransomdefensestrategymachineinfo_tmp
            end
          end
        end
      end

      # CreateRansomDefenseStrategy返回参数结构体
      class CreateRansomDefenseStrategyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # CreateScanMalwareSetting请求参数结构体
      class CreateScanMalwareSettingRequest < TencentCloud::Common::AbstractModel
        # @param ScanPattern: 扫描模式 0 全盘扫描, 1 快速扫描
        # @type ScanPattern: Integer
        # @param HostType: 服务器分类:1:专业版服务器;2:自选服务器
        # @type HostType: Integer
        # @param QuuidList: 自选服务器时生效,主机quuid的string数组
        # @type QuuidList: Array
        # @param TimeoutPeriod: 超时时间单位 秒 默认3600 秒
        # @type TimeoutPeriod: Integer
        # @param EngineType: 1标准模式(只报严重、高危)、2增强模式(报严重、高危、中危)、3严格模式(报严重、高、中、低、提示)
        # @type EngineType: Integer
        # @param EnableMemShellScan: 是否开启恶意进程查杀[0:未开启,1:开启]
        # @type EnableMemShellScan: Integer

        attr_accessor :ScanPattern, :HostType, :QuuidList, :TimeoutPeriod, :EngineType, :EnableMemShellScan

        def initialize(scanpattern=nil, hosttype=nil, quuidlist=nil, timeoutperiod=nil, enginetype=nil, enablememshellscan=nil)
          @ScanPattern = scanpattern
          @HostType = hosttype
          @QuuidList = quuidlist
          @TimeoutPeriod = timeoutperiod
          @EngineType = enginetype
          @EnableMemShellScan = enablememshellscan
        end

        def deserialize(params)
          @ScanPattern = params['ScanPattern']
          @HostType = params['HostType']
          @QuuidList = params['QuuidList']
          @TimeoutPeriod = params['TimeoutPeriod']
          @EngineType = params['EngineType']
          @EnableMemShellScan = params['EnableMemShellScan']
        end
      end

      # CreateScanMalwareSetting返回参数结构体
      class CreateScanMalwareSettingResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # CreateSearchLog请求参数结构体
      class CreateSearchLogRequest < TencentCloud::Common::AbstractModel
        # @param SearchContent: 搜索内容
        # @type SearchContent: String

        attr_accessor :SearchContent

        def initialize(searchcontent=nil)
          @SearchContent = searchcontent
        end

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

      # CreateSearchLog返回参数结构体
      class CreateSearchLogResponse < TencentCloud::Common::AbstractModel
        # @param Status: 0:成功,非0:失败
        # @type Status: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Status, :RequestId

        def initialize(status=nil, requestid=nil)
          @Status = status
          @RequestId = requestid
        end

        def deserialize(params)
          @Status = params['Status']
          @RequestId = params['RequestId']
        end
      end

      # CreateSearchTemplate请求参数结构体
      class CreateSearchTemplateRequest < TencentCloud::Common::AbstractModel
        # @param SearchTemplate: 搜索模板
        # @type SearchTemplate: :class:`Tencentcloud::Cwp.v20180228.models.SearchTemplate`

        attr_accessor :SearchTemplate

        def initialize(searchtemplate=nil)
          @SearchTemplate = searchtemplate
        end

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

      # CreateSearchTemplate返回参数结构体
      class CreateSearchTemplateResponse < TencentCloud::Common::AbstractModel
        # @param Status: 0:成功,非0:失败
        # @type Status: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Status, :RequestId

        def initialize(status=nil, requestid=nil)
          @Status = status
          @RequestId = requestid
        end

        def deserialize(params)
          @Status = params['Status']
          @RequestId = params['RequestId']
        end
      end

      # CreateVulFix请求参数结构体
      class CreateVulFixRequest < TencentCloud::Common::AbstractModel
        # @param CreateVulFixTaskQuuids: 漏洞对应要修复的主机列表
        # @type CreateVulFixTaskQuuids: Array
        # @param SaveDays: 快照保存天数,  0 天表示不创建快照。24小时没有快照的主机必须要创建快照才能修复
        # @type SaveDays: Integer
        # @param SnapshotName: 快照名称
        # @type SnapshotName: String

        attr_accessor :CreateVulFixTaskQuuids, :SaveDays, :SnapshotName

        def initialize(createvulfixtaskquuids=nil, savedays=nil, snapshotname=nil)
          @CreateVulFixTaskQuuids = createvulfixtaskquuids
          @SaveDays = savedays
          @SnapshotName = snapshotname
        end

        def deserialize(params)
          unless params['CreateVulFixTaskQuuids'].nil?
            @CreateVulFixTaskQuuids = []
            params['CreateVulFixTaskQuuids'].each do |i|
              createvulfixtaskquuids_tmp = CreateVulFixTaskQuuids.new
              createvulfixtaskquuids_tmp.deserialize(i)
              @CreateVulFixTaskQuuids << createvulfixtaskquuids_tmp
            end
          end
          @SaveDays = params['SaveDays']
          @SnapshotName = params['SnapshotName']
        end
      end

      # CreateVulFix返回参数结构体
      class CreateVulFixResponse < TencentCloud::Common::AbstractModel
        # @param FixId: 任务id
        # @type FixId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FixId, :RequestId

        def initialize(fixid=nil, requestid=nil)
          @FixId = fixid
          @RequestId = requestid
        end

        def deserialize(params)
          @FixId = params['FixId']
          @RequestId = params['RequestId']
        end
      end

      # 创建修复任务的quuids
      class CreateVulFixTaskQuuids < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param Quuids: 需要修复漏洞的主机,所有主机必须有VulId的这个漏洞且是待修复状态。
        # @type Quuids: Array

        attr_accessor :VulId, :Quuids

        def initialize(vulid=nil, quuids=nil)
          @VulId = vulid
          @Quuids = quuids
        end

        def deserialize(params)
          @VulId = params['VulId']
          @Quuids = params['Quuids']
        end
      end

      # CreateWhiteListOrder请求参数结构体
      class CreateWhiteListOrderRequest < TencentCloud::Common::AbstractModel
        # @param LicenseType: 授权类型
        # @type LicenseType: Integer
        # @param LicenseNum: 授权数量,最小为1 最大99999
        # @type LicenseNum: Integer
        # @param Deadline: 到期时间,最小为1
        # @type Deadline: Integer
        # @param RuleName: 规则名称,大资产中心:asset_center
        # @type RuleName: String
        # @param SourceType: 订单类型, 1 试用 2 赠送 3 体验 4 SSL-证书赠送 5 cvm赠送
        # @type SourceType: Integer
        # @param RegionId: 地域, 1 广州 9新加坡, 默认为 1. 非必要情况不要选9
        # @type RegionId: Integer
        # @param ExtraParam: 额外参数,json字符串,包含ResourceId 资源ID,LicenseType 授权类型
        # @type ExtraParam: String

        attr_accessor :LicenseType, :LicenseNum, :Deadline, :RuleName, :SourceType, :RegionId, :ExtraParam

        def initialize(licensetype=nil, licensenum=nil, deadline=nil, rulename=nil, sourcetype=nil, regionid=nil, extraparam=nil)
          @LicenseType = licensetype
          @LicenseNum = licensenum
          @Deadline = deadline
          @RuleName = rulename
          @SourceType = sourcetype
          @RegionId = regionid
          @ExtraParam = extraparam
        end

        def deserialize(params)
          @LicenseType = params['LicenseType']
          @LicenseNum = params['LicenseNum']
          @Deadline = params['Deadline']
          @RuleName = params['RuleName']
          @SourceType = params['SourceType']
          @RegionId = params['RegionId']
          @ExtraParam = params['ExtraParam']
        end
      end

      # CreateWhiteListOrder返回参数结构体
      class CreateWhiteListOrderResponse < TencentCloud::Common::AbstractModel
        # @param Resource: 资源对象
        # @type Resource: :class:`Tencentcloud::Cwp.v20180228.models.OrderResource`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Resource, :RequestId

        def initialize(resource=nil, requestid=nil)
          @Resource = resource
          @RequestId = requestid
        end

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

      # 默认策略基础信息
      class DefaultStrategyInfo < TencentCloud::Common::AbstractModel
        # @param StrategyName: 策略名
        # @type StrategyName: String
        # @param StrategyId: 策略id
        # @type StrategyId: Integer

        attr_accessor :StrategyName, :StrategyId

        def initialize(strategyname=nil, strategyid=nil)
          @StrategyName = strategyname
          @StrategyId = strategyid
        end

        def deserialize(params)
          @StrategyName = params['StrategyName']
          @StrategyId = params['StrategyId']
        end
      end

      # 网络攻击日志
      class DefendAttackLog < TencentCloud::Common::AbstractModel
        # @param Id: 日志ID
        # @type Id: Integer
        # @param Uuid: 客户端ID
        # @type Uuid: String
        # @param SrcIp: 来源IP
        # @type SrcIp: String
        # @param SrcPort: 来源端口
        # @type SrcPort: Integer
        # @param HttpMethod: 攻击方式
        # @type HttpMethod: String
        # @param HttpCgi: 攻击描述
        # @type HttpCgi: String
        # @param HttpParam: 攻击参数
        # @type HttpParam: String
        # @param VulType: 威胁类型
        # @type VulType: String
        # @param CreatedAt: 攻击时间
        # @type CreatedAt: String
        # @param MachineIp: 目标服务器IP
        # @type MachineIp: String
        # @param MachineName: 目标服务器名称
        # @type MachineName: String
        # @param DstIp: 目标IP
        # @type DstIp: String
        # @param DstPort: 目标端口
        # @type DstPort: Integer
        # @param HttpContent: 攻击内容
        # @type HttpContent: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Id, :Uuid, :SrcIp, :SrcPort, :HttpMethod, :HttpCgi, :HttpParam, :VulType, :CreatedAt, :MachineIp, :MachineName, :DstIp, :DstPort, :HttpContent, :MachineExtraInfo

        def initialize(id=nil, uuid=nil, srcip=nil, srcport=nil, httpmethod=nil, httpcgi=nil, httpparam=nil, vultype=nil, createdat=nil, machineip=nil, machinename=nil, dstip=nil, dstport=nil, httpcontent=nil, machineextrainfo=nil)
          @Id = id
          @Uuid = uuid
          @SrcIp = srcip
          @SrcPort = srcport
          @HttpMethod = httpmethod
          @HttpCgi = httpcgi
          @HttpParam = httpparam
          @VulType = vultype
          @CreatedAt = createdat
          @MachineIp = machineip
          @MachineName = machinename
          @DstIp = dstip
          @DstPort = dstport
          @HttpContent = httpcontent
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @SrcIp = params['SrcIp']
          @SrcPort = params['SrcPort']
          @HttpMethod = params['HttpMethod']
          @HttpCgi = params['HttpCgi']
          @HttpParam = params['HttpParam']
          @VulType = params['VulType']
          @CreatedAt = params['CreatedAt']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @DstIp = params['DstIp']
          @DstPort = params['DstPort']
          @HttpContent = params['HttpContent']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # DeleteAllJavaMemShells请求参数结构体
      class DeleteAllJavaMemShellsRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器quuid
        # @type Quuid: String

        attr_accessor :Quuid

        def initialize(quuid=nil)
          @Quuid = quuid
        end

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

      # DeleteAllJavaMemShells返回参数结构体
      class DeleteAllJavaMemShellsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteAttackLogs请求参数结构体
      class DeleteAttackLogsRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 日志ID数组,最大100条。
        # @type Ids: Array
        # @param IsAll: 是否全部删除
        # @type IsAll: Boolean

        attr_accessor :Ids, :IsAll

        def initialize(ids=nil, isall=nil)
          @Ids = ids
          @IsAll = isall
        end

        def deserialize(params)
          @Ids = params['Ids']
          @IsAll = params['IsAll']
        end
      end

      # DeleteAttackLogs返回参数结构体
      class DeleteAttackLogsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBanWhiteList请求参数结构体
      class DeleteBanWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 要删除的白名单ID列表 (最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteBanWhiteList返回参数结构体
      class DeleteBanWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBaselinePolicy请求参数结构体
      class DeleteBaselinePolicyRequest < TencentCloud::Common::AbstractModel
        # @param PolicyIds: 策略Id
        # @type PolicyIds: Array

        attr_accessor :PolicyIds

        def initialize(policyids=nil)
          @PolicyIds = policyids
        end

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

      # DeleteBaselinePolicy返回参数结构体
      class DeleteBaselinePolicyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBaselineRuleIgnore请求参数结构体
      class DeleteBaselineRuleIgnoreRequest < TencentCloud::Common::AbstractModel
        # @param RuleIds: 规则Id
        # @type RuleIds: Array

        attr_accessor :RuleIds

        def initialize(ruleids=nil)
          @RuleIds = ruleids
        end

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

      # DeleteBaselineRuleIgnore返回参数结构体
      class DeleteBaselineRuleIgnoreResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBaselineRule请求参数结构体
      class DeleteBaselineRuleRequest < TencentCloud::Common::AbstractModel
        # @param RuleId: 规则Id
        # @type RuleId: Integer

        attr_accessor :RuleId

        def initialize(ruleid=nil)
          @RuleId = ruleid
        end

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

      # DeleteBaselineRule返回参数结构体
      class DeleteBaselineRuleResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBaselineStrategy请求参数结构体
      class DeleteBaselineStrategyRequest < TencentCloud::Common::AbstractModel
        # @param StrategyId: 基线策略id
        # @type StrategyId: Integer

        attr_accessor :StrategyId

        def initialize(strategyid=nil)
          @StrategyId = strategyid
        end

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

      # DeleteBaselineStrategy返回参数结构体
      class DeleteBaselineStrategyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBaselineWeakPassword请求参数结构体
      class DeleteBaselineWeakPasswordRequest < TencentCloud::Common::AbstractModel
        # @param PasswordIds: 弱口令Id
        # @type PasswordIds: Array

        attr_accessor :PasswordIds

        def initialize(passwordids=nil)
          @PasswordIds = passwordids
        end

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

      # DeleteBaselineWeakPassword返回参数结构体
      class DeleteBaselineWeakPasswordResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBashEvents请求参数结构体
      class DeleteBashEventsRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组,最大100条。
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteBashEvents返回参数结构体
      class DeleteBashEventsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBashPolicies请求参数结构体
      class DeleteBashPoliciesRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组,最大100条。
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteBashPolicies返回参数结构体
      class DeleteBashPoliciesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBashRules请求参数结构体
      class DeleteBashRulesRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组,最大100条。
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteBashRules返回参数结构体
      class DeleteBashRulesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteBruteAttacks请求参数结构体
      class DeleteBruteAttacksRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 暴力破解事件Id数组。(最大 100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteBruteAttacks返回参数结构体
      class DeleteBruteAttacksResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteLicenseRecordAll请求参数结构体
      class DeleteLicenseRecordAllRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DeleteLicenseRecordAll返回参数结构体
      class DeleteLicenseRecordAllResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteLicenseRecord请求参数结构体
      class DeleteLicenseRecordRequest < TencentCloud::Common::AbstractModel
        # @param LicenseId: 授权ID ,可以用授权订单列表获取.
        # @type LicenseId: Integer
        # @param LicenseType: 授权类型
        # @type LicenseType: Integer
        # @param ResourceId: 资源ID
        # @type ResourceId: String

        attr_accessor :LicenseId, :LicenseType, :ResourceId

        def initialize(licenseid=nil, licensetype=nil, resourceid=nil)
          @LicenseId = licenseid
          @LicenseType = licensetype
          @ResourceId = resourceid
        end

        def deserialize(params)
          @LicenseId = params['LicenseId']
          @LicenseType = params['LicenseType']
          @ResourceId = params['ResourceId']
        end
      end

      # DeleteLicenseRecord返回参数结构体
      class DeleteLicenseRecordResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteLogExport请求参数结构体
      class DeleteLogExportRequest < TencentCloud::Common::AbstractModel
        # @param ExportId: 日志导出ID
        # @type ExportId: String

        attr_accessor :ExportId

        def initialize(exportid=nil)
          @ExportId = exportid
        end

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

      # DeleteLogExport返回参数结构体
      class DeleteLogExportResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteLoginWhiteList请求参数结构体
      class DeleteLoginWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 白名单ID (最大 100 条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteLoginWhiteList返回参数结构体
      class DeleteLoginWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteMachineClearHistory请求参数结构体
      class DeleteMachineClearHistoryRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 需要删除的记录id值,最大长度100个
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteMachineClearHistory返回参数结构体
      class DeleteMachineClearHistoryResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteMachine请求参数结构体
      class DeleteMachineRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机安全客户端Uuid。
        # @type Uuid: String

        attr_accessor :Uuid

        def initialize(uuid=nil)
          @Uuid = uuid
        end

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

      # DeleteMachine返回参数结构体
      class DeleteMachineResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteMachineTag请求参数结构体
      class DeleteMachineTagRequest < TencentCloud::Common::AbstractModel
        # @param Rid: 关联的标签ID
        # @type Rid: Integer

        attr_accessor :Rid

        def initialize(rid=nil)
          @Rid = rid
        end

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

      # DeleteMachineTag返回参数结构体
      class DeleteMachineTagResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteMaliciousRequestWhiteList请求参数结构体
      class DeleteMaliciousRequestWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 白名单id (最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteMaliciousRequestWhiteList返回参数结构体
      class DeleteMaliciousRequestWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteMaliciousRequests请求参数结构体
      class DeleteMaliciousRequestsRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 恶意请求记录ID数组,(最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteMaliciousRequests返回参数结构体
      class DeleteMaliciousRequestsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteMalwareScanTask请求参数结构体
      class DeleteMalwareScanTaskRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DeleteMalwareScanTask返回参数结构体
      class DeleteMalwareScanTaskResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteMalwareWhiteList请求参数结构体
      class DeleteMalwareWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组,最大100条。
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteMalwareWhiteList返回参数结构体
      class DeleteMalwareWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteMalwares请求参数结构体
      class DeleteMalwaresRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 木马记录ID数组 (最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteMalwares返回参数结构体
      class DeleteMalwaresResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteNetAttackWhiteList请求参数结构体
      class DeleteNetAttackWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组,最大100条。
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteNetAttackWhiteList返回参数结构体
      class DeleteNetAttackWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteNonlocalLoginPlaces请求参数结构体
      class DeleteNonlocalLoginPlacesRequest < TencentCloud::Common::AbstractModel
        # @param DelType: 删除异地登录事件的方式,可选值:"Ids"、"Ip"、"All",默认为Ids
        # @type DelType: String
        # @param Ids: 异地登录事件ID数组。DelType为Ids或DelType未填时此项必填
        # @type Ids: Array
        # @param Ip: 异地登录事件的Ip。DelType为Ip时必填
        # @type Ip: Array
        # @param Uuid: 主机Uuid
        # @type Uuid: String

        attr_accessor :DelType, :Ids, :Ip, :Uuid

        def initialize(deltype=nil, ids=nil, ip=nil, uuid=nil)
          @DelType = deltype
          @Ids = ids
          @Ip = ip
          @Uuid = uuid
        end

        def deserialize(params)
          @DelType = params['DelType']
          @Ids = params['Ids']
          @Ip = params['Ip']
          @Uuid = params['Uuid']
        end
      end

      # DeleteNonlocalLoginPlaces返回参数结构体
      class DeleteNonlocalLoginPlacesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeletePrivilegeEvents请求参数结构体
      class DeletePrivilegeEventsRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组. (最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeletePrivilegeEvents返回参数结构体
      class DeletePrivilegeEventsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeletePrivilegeRules请求参数结构体
      class DeletePrivilegeRulesRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组,最大100条。
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeletePrivilegeRules返回参数结构体
      class DeletePrivilegeRulesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteProtectDir请求参数结构体
      class DeleteProtectDirRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 删除的目录ID 最大100条
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteProtectDir返回参数结构体
      class DeleteProtectDirResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteReverseShellEvents请求参数结构体
      class DeleteReverseShellEventsRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组. (最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteReverseShellEvents返回参数结构体
      class DeleteReverseShellEventsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteReverseShellRules请求参数结构体
      class DeleteReverseShellRulesRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组. (最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteReverseShellRules返回参数结构体
      class DeleteReverseShellRulesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteRiskDnsEvent请求参数结构体
      class DeleteRiskDnsEventRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 恶意请求记录ID数组,(最大100条), 为空时全部删除
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteRiskDnsEvent返回参数结构体
      class DeleteRiskDnsEventResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteRiskDnsPolicy请求参数结构体
      class DeleteRiskDnsPolicyRequest < TencentCloud::Common::AbstractModel
        # @param PolicyIds: 策略ID
        # @type PolicyIds: Array

        attr_accessor :PolicyIds

        def initialize(policyids=nil)
          @PolicyIds = policyids
        end

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

      # DeleteRiskDnsPolicy返回参数结构体
      class DeleteRiskDnsPolicyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteScanTask请求参数结构体
      class DeleteScanTaskRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务Id
        # @type TaskId: Integer
        # @param ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        # @type ModuleType: String
        # @param QuuidList: 自选服务器时生效,主机quuid的string数组
        # @type QuuidList: Array

        attr_accessor :TaskId, :ModuleType, :QuuidList

        def initialize(taskid=nil, moduletype=nil, quuidlist=nil)
          @TaskId = taskid
          @ModuleType = moduletype
          @QuuidList = quuidlist
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @ModuleType = params['ModuleType']
          @QuuidList = params['QuuidList']
        end
      end

      # DeleteScanTask返回参数结构体
      class DeleteScanTaskResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteSearchTemplate请求参数结构体
      class DeleteSearchTemplateRequest < TencentCloud::Common::AbstractModel
        # @param Id: 模板ID
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DeleteSearchTemplate返回参数结构体
      class DeleteSearchTemplateResponse < TencentCloud::Common::AbstractModel
        # @param Status: 0:成功,非0:失败
        # @type Status: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Status, :RequestId

        def initialize(status=nil, requestid=nil)
          @Status = status
          @RequestId = requestid
        end

        def deserialize(params)
          @Status = params['Status']
          @RequestId = params['RequestId']
        end
      end

      # DeleteTags请求参数结构体
      class DeleteTagsRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 标签ID (最大100 条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteTags返回参数结构体
      class DeleteTagsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteWebHookPolicy请求参数结构体
      class DeleteWebHookPolicyRequest < TencentCloud::Common::AbstractModel
        # @param Ids: id列表
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteWebHookPolicy返回参数结构体
      class DeleteWebHookPolicyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteWebHookReceiver请求参数结构体
      class DeleteWebHookReceiverRequest < TencentCloud::Common::AbstractModel
        # @param Ids: id数组
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteWebHookReceiver返回参数结构体
      class DeleteWebHookReceiverResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteWebHookRule请求参数结构体
      class DeleteWebHookRuleRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 规则Id列表
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # DeleteWebHookRule返回参数结构体
      class DeleteWebHookRuleResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DeleteWebPageEventLog请求参数结构体
      class DeleteWebPageEventLogRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DeleteWebPageEventLog返回参数结构体
      class DeleteWebPageEventLogResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 日志投递类型细节
      class DeliverTypeDetails < TencentCloud::Common::AbstractModel
        # @param SecurityType: 安全模块类型 1: 入侵检测 2: 漏洞管理 3: 基线管理 4: 高级防御 5:客户端相关 6: 资产指纹
        # @type SecurityType: Integer
        # @param LogType: 安全模块下的日志类型,http://tapd.woa.com/Teneyes/markdown_wikis/show/#1210131751002328905
        # @type LogType: Array
        # @param TopicId: kafka topic id
        # @type TopicId: String
        # @param TopicName: kafka topic name
        # @type TopicName: String
        # @param Switch: 投递开关 0关闭 1开启
        # @type Switch: Integer
        # @param Status: 投递状态,0未开启 1正常 2异常
        # @type Status: Integer
        # @param ErrInfo: 错误信息
        # @type ErrInfo: String
        # @param StatusTime: 最近一次状态上报时间戳,s
        # @type StatusTime: Integer

        attr_accessor :SecurityType, :LogType, :TopicId, :TopicName, :Switch, :Status, :ErrInfo, :StatusTime

        def initialize(securitytype=nil, logtype=nil, topicid=nil, topicname=nil, switch=nil, status=nil, errinfo=nil, statustime=nil)
          @SecurityType = securitytype
          @LogType = logtype
          @TopicId = topicid
          @TopicName = topicname
          @Switch = switch
          @Status = status
          @ErrInfo = errinfo
          @StatusTime = statustime
        end

        def deserialize(params)
          @SecurityType = params['SecurityType']
          @LogType = params['LogType']
          @TopicId = params['TopicId']
          @TopicName = params['TopicName']
          @Switch = params['Switch']
          @Status = params['Status']
          @ErrInfo = params['ErrInfo']
          @StatusTime = params['StatusTime']
        end
      end

      # DescribeABTestConfig请求参数结构体
      class DescribeABTestConfigRequest < TencentCloud::Common::AbstractModel
        # @param ProjectName: 灰度项目名称
        # @type ProjectName: String

        attr_accessor :ProjectName

        def initialize(projectname=nil)
          @ProjectName = projectname
        end

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

      # DescribeABTestConfig返回参数结构体
      class DescribeABTestConfigResponse < TencentCloud::Common::AbstractModel
        # @param Config: 灰度项目配置
        # @type Config: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Config, :RequestId

        def initialize(config=nil, requestid=nil)
          @Config = config
          @RequestId = requestid
        end

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

      # DescribeAESKey请求参数结构体
      class DescribeAESKeyRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAESKey返回参数结构体
      class DescribeAESKeyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DescribeAccountStatistics请求参数结构体
      class DescribeAccountStatisticsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Username - String - 是否必填:否 - 帐号用户名</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeAccountStatistics返回参数结构体
      class DescribeAccountStatisticsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 帐号统计列表记录总数。
        # @type TotalCount: Integer
        # @param AccountStatistics: 帐号统计列表。
        # @type AccountStatistics: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :AccountStatistics, :RequestId

        def initialize(totalcount=nil, accountstatistics=nil, requestid=nil)
          @TotalCount = totalcount
          @AccountStatistics = accountstatistics
          @RequestId = requestid
        end

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

      # DescribeAgentInstallCommand请求参数结构体
      class DescribeAgentInstallCommandRequest < TencentCloud::Common::AbstractModel
        # @param IsCloud: 是否腾讯云
        # @type IsCloud: Boolean
        # @param NetType: 网络类型:basic-基础网络,private-VPC, public-公网,direct-专线
        # @type NetType: String
        # @param RegionCode: 地域标示, NetType=direct时必填
        # @type RegionCode: String
        # @param VpcId: VpcId, NetType=direct时必填
        # @type VpcId: String
        # @param TagIds: 标签ID列表,IsCloud=false时才会生效
        # @type TagIds: Array
        # @param ExpireDate: 命令有效期,非腾讯云时必填
        # @type ExpireDate: String
        # @param Vip: 代理方式接入的vip
        # @type Vip: String

        attr_accessor :IsCloud, :NetType, :RegionCode, :VpcId, :TagIds, :ExpireDate, :Vip

        def initialize(iscloud=nil, nettype=nil, regioncode=nil, vpcid=nil, tagids=nil, expiredate=nil, vip=nil)
          @IsCloud = iscloud
          @NetType = nettype
          @RegionCode = regioncode
          @VpcId = vpcid
          @TagIds = tagids
          @ExpireDate = expiredate
          @Vip = vip
        end

        def deserialize(params)
          @IsCloud = params['IsCloud']
          @NetType = params['NetType']
          @RegionCode = params['RegionCode']
          @VpcId = params['VpcId']
          @TagIds = params['TagIds']
          @ExpireDate = params['ExpireDate']
          @Vip = params['Vip']
        end
      end

      # DescribeAgentInstallCommand返回参数结构体
      class DescribeAgentInstallCommandResponse < TencentCloud::Common::AbstractModel
        # @param LinuxCommand: linux系统安装命令
        # @type LinuxCommand: String
        # @param WindowsCommand: windows系统安装命令(windows2008及以上)
        # @type WindowsCommand: String
        # @param WindowsStepOne: windows系统安装命令第一步(windows2003)
        # @type WindowsStepOne: String
        # @param WindowsStepTwo: windows系统安装命令第二步(windows2003)
        # @type WindowsStepTwo: String
        # @param WindowsDownloadUrl: windows版agent下载链接
        # @type WindowsDownloadUrl: String
        # @param ARMCommand: Arm安装命令
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ARMCommand: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :LinuxCommand, :WindowsCommand, :WindowsStepOne, :WindowsStepTwo, :WindowsDownloadUrl, :ARMCommand, :RequestId

        def initialize(linuxcommand=nil, windowscommand=nil, windowsstepone=nil, windowssteptwo=nil, windowsdownloadurl=nil, armcommand=nil, requestid=nil)
          @LinuxCommand = linuxcommand
          @WindowsCommand = windowscommand
          @WindowsStepOne = windowsstepone
          @WindowsStepTwo = windowssteptwo
          @WindowsDownloadUrl = windowsdownloadurl
          @ARMCommand = armcommand
          @RequestId = requestid
        end

        def deserialize(params)
          @LinuxCommand = params['LinuxCommand']
          @WindowsCommand = params['WindowsCommand']
          @WindowsStepOne = params['WindowsStepOne']
          @WindowsStepTwo = params['WindowsStepTwo']
          @WindowsDownloadUrl = params['WindowsDownloadUrl']
          @ARMCommand = params['ARMCommand']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAgentInstallationToken请求参数结构体
      class DescribeAgentInstallationTokenRequest < TencentCloud::Common::AbstractModel
        # @param ExpireDate: token 过期时间
        # @type ExpireDate: String

        attr_accessor :ExpireDate

        def initialize(expiredate=nil)
          @ExpireDate = expiredate
        end

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

      # DescribeAgentInstallationToken返回参数结构体
      class DescribeAgentInstallationTokenResponse < TencentCloud::Common::AbstractModel
        # @param Token: 安装命令token
        # @type Token: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Token, :RequestId

        def initialize(token=nil, requestid=nil)
          @Token = token
          @RequestId = requestid
        end

        def deserialize(params)
          @Token = params['Token']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAlarmIncidentNodes请求参数结构体
      class DescribeAlarmIncidentNodesRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 机器uuid
        # @type Uuid: String
        # @param AlarmVid: 告警vid
        # @type AlarmVid: String
        # @param AlarmTime: 告警时间
        # @type AlarmTime: Integer
        # @param TableId: 告警来源表ID
        # @type TableId: Integer

        attr_accessor :Uuid, :AlarmVid, :AlarmTime, :TableId

        def initialize(uuid=nil, alarmvid=nil, alarmtime=nil, tableid=nil)
          @Uuid = uuid
          @AlarmVid = alarmvid
          @AlarmTime = alarmtime
          @TableId = tableid
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @AlarmVid = params['AlarmVid']
          @AlarmTime = params['AlarmTime']
          @TableId = params['TableId']
        end
      end

      # DescribeAlarmIncidentNodes返回参数结构体
      class DescribeAlarmIncidentNodesResponse < TencentCloud::Common::AbstractModel
        # @param IncidentNodes: 告警点所在事件的所有节点信息,可能包含多事件
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IncidentNodes: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :IncidentNodes, :RequestId

        def initialize(incidentnodes=nil, requestid=nil)
          @IncidentNodes = incidentnodes
          @RequestId = requestid
        end

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

      # DescribeAlarmVertexId请求参数结构体
      class DescribeAlarmVertexIdRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 机器uuid
        # @type Uuid: String
        # @param StartTime: 开始时间戳
        # @type StartTime: Integer
        # @param EndTime: 结束时间戳
        # @type EndTime: Integer

        attr_accessor :Uuid, :StartTime, :EndTime

        def initialize(uuid=nil, starttime=nil, endtime=nil)
          @Uuid = uuid
          @StartTime = starttime
          @EndTime = endtime
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
        end
      end

      # DescribeAlarmVertexId返回参数结构体
      class DescribeAlarmVertexIdResponse < TencentCloud::Common::AbstractModel
        # @param AlarmVertexIds: 告警点id列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AlarmVertexIds: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AlarmVertexIds, :RequestId

        def initialize(alarmvertexids=nil, requestid=nil)
          @AlarmVertexIds = alarmvertexids
          @RequestId = requestid
        end

        def deserialize(params)
          @AlarmVertexIds = params['AlarmVertexIds']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetAppCount请求参数结构体
      class DescribeAssetAppCountRequest < TencentCloud::Common::AbstractModel
        # @param Name: 搜索条件:搜索返回所有软件名包含Name的进程列表
        # @type Name: String

        attr_accessor :Name

        def initialize(name=nil)
          @Name = name
        end

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

      # DescribeAssetAppCount返回参数结构体
      class DescribeAssetAppCountResponse < TencentCloud::Common::AbstractModel
        # @param Apps: 各软件应用数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Apps: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Apps, :RequestId

        def initialize(apps=nil, requestid=nil)
          @Apps = apps
          @RequestId = requestid
        end

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

      # DescribeAssetAppList请求参数结构体
      class DescribeAssetAppListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>AppName- string - 是否必填:否 - 应用名搜索</li>
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Type - int - 是否必填:否 - 类型	: 仅linux
        # 0: 全部
        # 1: 运维
        # 2 : 数据库
        # 3 : 安全
        # 4 : 可疑应用
        # 5 : 系统架构
        # 6 : 系统应用
        # 7 : WEB服务
        # 99:其他</li>
        # <li>OsType - uint64 - 是否必填:否 - windows/linux</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime|ProcessCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Limit, :Offset, :Order, :By

        def initialize(quuid=nil, filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetAppList返回参数结构体
      class DescribeAssetAppListResponse < TencentCloud::Common::AbstractModel
        # @param Apps: 应用列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Apps: Array
        # @param Total: 总数量
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Apps, :Total, :RequestId

        def initialize(apps=nil, total=nil, requestid=nil)
          @Apps = apps
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Apps'].nil?
            @Apps = []
            params['Apps'].each do |i|
              assetappbaseinfo_tmp = AssetAppBaseInfo.new
              assetappbaseinfo_tmp.deserialize(i)
              @Apps << assetappbaseinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetAppProcessList请求参数结构体
      class DescribeAssetAppProcessListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Name: App名
        # @type Name: String
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Quuid, :Uuid, :Name, :Offset, :Limit

        def initialize(quuid=nil, uuid=nil, name=nil, offset=nil, limit=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Name = name
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Name = params['Name']
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeAssetAppProcessList返回参数结构体
      class DescribeAssetAppProcessListResponse < TencentCloud::Common::AbstractModel
        # @param Process: 进程列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Process: Array
        # @param Total: 分区总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Process, :Total, :RequestId

        def initialize(process=nil, total=nil, requestid=nil)
          @Process = process
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Process'].nil?
            @Process = []
            params['Process'].each do |i|
              assetappprocessinfo_tmp = AssetAppProcessInfo.new
              assetappprocessinfo_tmp.deserialize(i)
              @Process << assetappprocessinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetCoreModuleInfo请求参数结构体
      class DescribeAssetCoreModuleInfoRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Id: 内核模块ID
        # @type Id: String

        attr_accessor :Quuid, :Uuid, :Id

        def initialize(quuid=nil, uuid=nil, id=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Id = id
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Id = params['Id']
        end
      end

      # DescribeAssetCoreModuleInfo返回参数结构体
      class DescribeAssetCoreModuleInfoResponse < TencentCloud::Common::AbstractModel
        # @param Module: 内核模块详情
        # @type Module: :class:`Tencentcloud::Cwp.v20180228.models.AssetCoreModuleDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Module, :RequestId

        def initialize(_module=nil, requestid=nil)
          @Module = _module
          @RequestId = requestid
        end

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

      # DescribeAssetCoreModuleList请求参数结构体
      class DescribeAssetCoreModuleListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Name- string - 是否必填:否 - 包名</li>
        # <li>User- string - 是否必填:否 - 用户</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序依据[Size|FirstTime|ProcessCount|ModuleCount]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetCoreModuleList返回参数结构体
      class DescribeAssetCoreModuleListResponse < TencentCloud::Common::AbstractModel
        # @param Modules: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Modules: Array
        # @param Total: 总数量
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Modules, :Total, :RequestId

        def initialize(modules=nil, total=nil, requestid=nil)
          @Modules = modules
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Modules'].nil?
            @Modules = []
            params['Modules'].each do |i|
              assetcoremodulebaseinfo_tmp = AssetCoreModuleBaseInfo.new
              assetcoremodulebaseinfo_tmp.deserialize(i)
              @Modules << assetcoremodulebaseinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetDatabaseCount请求参数结构体
      class DescribeAssetDatabaseCountRequest < TencentCloud::Common::AbstractModel
        # @param Name: 搜索条件:返回名称包含Name的数据库列表
        # @type Name: String

        attr_accessor :Name

        def initialize(name=nil)
          @Name = name
        end

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

      # DescribeAssetDatabaseCount返回参数结构体
      class DescribeAssetDatabaseCountResponse < TencentCloud::Common::AbstractModel
        # @param Databases: 各数据库数量
        # @type Databases: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Databases, :RequestId

        def initialize(databases=nil, requestid=nil)
          @Databases = databases
          @RequestId = requestid
        end

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

      # DescribeAssetDatabaseInfo请求参数结构体
      class DescribeAssetDatabaseInfoRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Id: 数据库ID
        # @type Id: String

        attr_accessor :Quuid, :Uuid, :Id

        def initialize(quuid=nil, uuid=nil, id=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Id = id
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Id = params['Id']
        end
      end

      # DescribeAssetDatabaseInfo返回参数结构体
      class DescribeAssetDatabaseInfoResponse < TencentCloud::Common::AbstractModel
        # @param Database: 数据库详情
        # @type Database: :class:`Tencentcloud::Cwp.v20180228.models.AssetDatabaseDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Database, :RequestId

        def initialize(database=nil, requestid=nil)
          @Database = database
          @RequestId = requestid
        end

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

      # DescribeAssetDatabaseList请求参数结构体
      class DescribeAssetDatabaseListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>MachineName- String - 是否必填:否 - 主机别名筛选</li>
        # <li>IP- String - 是否必填:否 - 主机ip筛选</li>
        # <li>InstanceID- String - 是否必填:否 - 主机实例ID筛选</li>
        # <li>User- string - 是否必填:否 - 运行用户</li>
        # <li>Port - Int - 是否必填:否 - 端口</li>
        # <li>Name - Int - 是否必填:否 - 数据库名称
        # 0:全部
        # 1:MySQL
        # 2:Redis
        # 3:Oracle
        # 4:MongoDB
        # 5:MemCache
        # 6:PostgreSQL
        # 7:HBase
        # 8:DB2
        # 9:Sybase
        # 10:TiDB</li>
        # <li>Proto - String - 是否必填:否 - 协议:1:TCP, 2:UDP, 3:未知</li>
        # <li>OsType - String - 是否必填:否 - 操作系统: linux/windows</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetDatabaseList返回参数结构体
      class DescribeAssetDatabaseListResponse < TencentCloud::Common::AbstractModel
        # @param Databases: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Databases: Array
        # @param Total: 总数量
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Databases, :Total, :RequestId

        def initialize(databases=nil, total=nil, requestid=nil)
          @Databases = databases
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Databases'].nil?
            @Databases = []
            params['Databases'].each do |i|
              assetdatabasebaseinfo_tmp = AssetDatabaseBaseInfo.new
              assetdatabasebaseinfo_tmp.deserialize(i)
              @Databases << assetdatabasebaseinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetDiskList请求参数结构体
      class DescribeAssetDiskListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Quuid, :Uuid, :Offset, :Limit

        def initialize(quuid=nil, uuid=nil, offset=nil, limit=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeAssetDiskList返回参数结构体
      class DescribeAssetDiskListResponse < TencentCloud::Common::AbstractModel
        # @param Disks: 磁盘分区列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Disks: Array
        # @param Total: 分区总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Disks, :Total, :RequestId

        def initialize(disks=nil, total=nil, requestid=nil)
          @Disks = disks
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Disks'].nil?
            @Disks = []
            params['Disks'].each do |i|
              assetdiskpartitioninfo_tmp = AssetDiskPartitionInfo.new
              assetdiskpartitioninfo_tmp.deserialize(i)
              @Disks << assetdiskpartitioninfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetEnvList请求参数结构体
      class DescribeAssetEnvListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Type: 该字段已废弃,由Filters代替
        # @type Type: Integer
        # @param Filters: 过滤条件。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>Name- string - 是否必填:否 - 环境变量名</li>
        # <li>Type- int - 是否必填:否 - 类型:0用户变量,1系统变量</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Type, :Filters, :Offset, :Limit, :Order, :By

        def initialize(uuid=nil, quuid=nil, type=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Type = type
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Type = params['Type']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetEnvList返回参数结构体
      class DescribeAssetEnvListResponse < TencentCloud::Common::AbstractModel
        # @param Envs: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Envs: Array
        # @param Total: 总数量
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Envs, :Total, :RequestId

        def initialize(envs=nil, total=nil, requestid=nil)
          @Envs = envs
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Envs'].nil?
            @Envs = []
            params['Envs'].each do |i|
              assetenvbaseinfo_tmp = AssetEnvBaseInfo.new
              assetenvbaseinfo_tmp.deserialize(i)
              @Envs << assetenvbaseinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetHostTotalCount请求参数结构体
      class DescribeAssetHostTotalCountRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String

        attr_accessor :Uuid, :Quuid

        def initialize(uuid=nil, quuid=nil)
          @Uuid = uuid
          @Quuid = quuid
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
        end
      end

      # DescribeAssetHostTotalCount返回参数结构体
      class DescribeAssetHostTotalCountResponse < TencentCloud::Common::AbstractModel
        # @param Types: 各项资源数量
        # system : 资源监控
        # account: 账号
        # port: 端口
        # process: 进程
        # app: 应用软件
        # database:数据库
        # webapp: Web应用
        # webframe: Web框架
        # webservice: Web服务
        # weblocation: Web站点
        # systempackage: 系统安装包
        # jar: jar包
        # initservice:启动服务
        # env: 环境变量
        # coremodule: 内核模块
        # @type Types: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Types, :RequestId

        def initialize(types=nil, requestid=nil)
          @Types = types
          @RequestId = requestid
        end

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

      # DescribeAssetInfo请求参数结构体
      class DescribeAssetInfoRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAssetInfo返回参数结构体
      class DescribeAssetInfoResponse < TencentCloud::Common::AbstractModel
        # @param MachineCount: 主机数
        # @type MachineCount: Integer
        # @param AccountCount: 账号数
        # @type AccountCount: Integer
        # @param PortCount: 端口数
        # @type PortCount: Integer
        # @param ProcessCount: 进程数
        # @type ProcessCount: Integer
        # @param SoftwareCount: 软件数
        # @type SoftwareCount: Integer
        # @param DatabaseCount: 数据库数
        # @type DatabaseCount: Integer
        # @param WebAppCount: Web应用数
        # @type WebAppCount: Integer
        # @param WebFrameCount: Web框架数
        # @type WebFrameCount: Integer
        # @param WebServiceCount: Web服务数
        # @type WebServiceCount: Integer
        # @param WebLocationCount: Web站点数
        # @type WebLocationCount: Integer
        # @param AccountNewCount: 账号今日新增
        # @type AccountNewCount: Integer
        # @param PortNewCount: 端口今日新增
        # @type PortNewCount: Integer
        # @param ProcessNewCount: 进程今日新增
        # @type ProcessNewCount: Integer
        # @param SoftwareNewCount: 软件今日新增
        # @type SoftwareNewCount: Integer
        # @param DatabaseNewCount: 数据库今日新增
        # @type DatabaseNewCount: Integer
        # @param WebAppNewCount: Web应用今日新增
        # @type WebAppNewCount: Integer
        # @param WebFrameNewCount: Web框架今日新增
        # @type WebFrameNewCount: Integer
        # @param WebServiceNewCount: Web服务今日新增
        # @type WebServiceNewCount: Integer
        # @param WebLocationNewCount: Web站点今日新增
        # @type WebLocationNewCount: Integer
        # @param MachineNewCount: 主机今日新增
        # @type MachineNewCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MachineCount, :AccountCount, :PortCount, :ProcessCount, :SoftwareCount, :DatabaseCount, :WebAppCount, :WebFrameCount, :WebServiceCount, :WebLocationCount, :AccountNewCount, :PortNewCount, :ProcessNewCount, :SoftwareNewCount, :DatabaseNewCount, :WebAppNewCount, :WebFrameNewCount, :WebServiceNewCount, :WebLocationNewCount, :MachineNewCount, :RequestId

        def initialize(machinecount=nil, accountcount=nil, portcount=nil, processcount=nil, softwarecount=nil, databasecount=nil, webappcount=nil, webframecount=nil, webservicecount=nil, weblocationcount=nil, accountnewcount=nil, portnewcount=nil, processnewcount=nil, softwarenewcount=nil, databasenewcount=nil, webappnewcount=nil, webframenewcount=nil, webservicenewcount=nil, weblocationnewcount=nil, machinenewcount=nil, requestid=nil)
          @MachineCount = machinecount
          @AccountCount = accountcount
          @PortCount = portcount
          @ProcessCount = processcount
          @SoftwareCount = softwarecount
          @DatabaseCount = databasecount
          @WebAppCount = webappcount
          @WebFrameCount = webframecount
          @WebServiceCount = webservicecount
          @WebLocationCount = weblocationcount
          @AccountNewCount = accountnewcount
          @PortNewCount = portnewcount
          @ProcessNewCount = processnewcount
          @SoftwareNewCount = softwarenewcount
          @DatabaseNewCount = databasenewcount
          @WebAppNewCount = webappnewcount
          @WebFrameNewCount = webframenewcount
          @WebServiceNewCount = webservicenewcount
          @WebLocationNewCount = weblocationnewcount
          @MachineNewCount = machinenewcount
          @RequestId = requestid
        end

        def deserialize(params)
          @MachineCount = params['MachineCount']
          @AccountCount = params['AccountCount']
          @PortCount = params['PortCount']
          @ProcessCount = params['ProcessCount']
          @SoftwareCount = params['SoftwareCount']
          @DatabaseCount = params['DatabaseCount']
          @WebAppCount = params['WebAppCount']
          @WebFrameCount = params['WebFrameCount']
          @WebServiceCount = params['WebServiceCount']
          @WebLocationCount = params['WebLocationCount']
          @AccountNewCount = params['AccountNewCount']
          @PortNewCount = params['PortNewCount']
          @ProcessNewCount = params['ProcessNewCount']
          @SoftwareNewCount = params['SoftwareNewCount']
          @DatabaseNewCount = params['DatabaseNewCount']
          @WebAppNewCount = params['WebAppNewCount']
          @WebFrameNewCount = params['WebFrameNewCount']
          @WebServiceNewCount = params['WebServiceNewCount']
          @WebLocationNewCount = params['WebLocationNewCount']
          @MachineNewCount = params['MachineNewCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetInitServiceList请求参数结构体
      class DescribeAssetInitServiceListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Name- string - 是否必填:否 - 包名</li>
        # <li>User- string - 是否必填:否 - 用户</li>
        # <li>IsAutoRun - string - 是否必填:否 - 是否开机自启动:0否,1是</li>
        # <li>Status- string - 是否必填:否 - 默认启用状态:0未启用, 1启用 仅linux</li>
        # <li>Type- string - 是否必填:否 - 类型:类型 仅windows:
        # 1:编码器
        # 2:IE插件
        # 3:网络提供者
        # 4:镜像劫持
        # 5:LSA提供者
        # 6:KnownDLLs
        # 7:启动执行
        # 8:WMI
        # 9:计划任务
        # 10:Winsock提供者
        # 11:打印监控器
        # 12:资源管理器
        # 13:驱动服务
        # 14:登录</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetInitServiceList返回参数结构体
      class DescribeAssetInitServiceListResponse < TencentCloud::Common::AbstractModel
        # @param Services: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Services: Array
        # @param Total: 总数量
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Services, :Total, :RequestId

        def initialize(services=nil, total=nil, requestid=nil)
          @Services = services
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Services'].nil?
            @Services = []
            params['Services'].each do |i|
              assetinitservicebaseinfo_tmp = AssetInitServiceBaseInfo.new
              assetinitservicebaseinfo_tmp.deserialize(i)
              @Services << assetinitservicebaseinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetJarInfo请求参数结构体
      class DescribeAssetJarInfoRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Id: Jar包ID
        # @type Id: String

        attr_accessor :Quuid, :Uuid, :Id

        def initialize(quuid=nil, uuid=nil, id=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Id = id
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Id = params['Id']
        end
      end

      # DescribeAssetJarInfo返回参数结构体
      class DescribeAssetJarInfoResponse < TencentCloud::Common::AbstractModel
        # @param Jar: Jar包详情
        # @type Jar: :class:`Tencentcloud::Cwp.v20180228.models.AssetJarDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Jar, :RequestId

        def initialize(jar=nil, requestid=nil)
          @Jar = jar
          @RequestId = requestid
        end

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

      # DescribeAssetJarList请求参数结构体
      class DescribeAssetJarListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Name- string - 是否必填:否 - 包名</li>
        # <li>Type- uint - 是否必填:否 - 类型
        # 1: 应用程序
        # 2 : 系统类库
        # 3 : Web服务自带库
        # 4 : 其他依赖包</li>
        # <li>Status- string - 是否必填:否 - 是否可执行:0否,1是</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetJarList返回参数结构体
      class DescribeAssetJarListResponse < TencentCloud::Common::AbstractModel
        # @param Jars: 应用列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Jars: Array
        # @param Total: 总数量
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Jars, :Total, :RequestId

        def initialize(jars=nil, total=nil, requestid=nil)
          @Jars = jars
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Jars'].nil?
            @Jars = []
            params['Jars'].each do |i|
              assetjarbaseinfo_tmp = AssetJarBaseInfo.new
              assetjarbaseinfo_tmp.deserialize(i)
              @Jars << assetjarbaseinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetLoadInfo请求参数结构体
      class DescribeAssetLoadInfoRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAssetLoadInfo返回参数结构体
      class DescribeAssetLoadInfoResponse < TencentCloud::Common::AbstractModel
        # @param CpuLoad: 系统负载
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CpuLoad: :class:`Tencentcloud::Cwp.v20180228.models.AssetLoadSummary`
        # @param MemLoad: 内存使用率
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MemLoad: :class:`Tencentcloud::Cwp.v20180228.models.AssetLoadSummary`
        # @param DiskLoad: 硬盘使用率
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DiskLoad: :class:`Tencentcloud::Cwp.v20180228.models.AssetLoadSummary`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :CpuLoad, :MemLoad, :DiskLoad, :RequestId

        def initialize(cpuload=nil, memload=nil, diskload=nil, requestid=nil)
          @CpuLoad = cpuload
          @MemLoad = memload
          @DiskLoad = diskload
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['CpuLoad'].nil?
            @CpuLoad = AssetLoadSummary.new
            @CpuLoad.deserialize(params['CpuLoad'])
          end
          unless params['MemLoad'].nil?
            @MemLoad = AssetLoadSummary.new
            @MemLoad.deserialize(params['MemLoad'])
          end
          unless params['DiskLoad'].nil?
            @DiskLoad = AssetLoadSummary.new
            @DiskLoad.deserialize(params['DiskLoad'])
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetMachineDetail请求参数结构体
      class DescribeAssetMachineDetailRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器Uuid
        # @type Uuid: String

        attr_accessor :Quuid, :Uuid

        def initialize(quuid=nil, uuid=nil)
          @Quuid = quuid
          @Uuid = uuid
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
        end
      end

      # DescribeAssetMachineDetail返回参数结构体
      class DescribeAssetMachineDetailResponse < TencentCloud::Common::AbstractModel
        # @param MachineDetail: 主机详情
        # @type MachineDetail: :class:`Tencentcloud::Cwp.v20180228.models.AssetMachineDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MachineDetail, :RequestId

        def initialize(machinedetail=nil, requestid=nil)
          @MachineDetail = machinedetail
          @RequestId = requestid
        end

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

      # DescribeAssetMachineList请求参数结构体
      class DescribeAssetMachineListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>MachineName  主机名称</li>
        # <li>InstanceID  实例ID  </li>
        # <li>IP   内网IP或公网IP</li>
        # <li>OsType - String - 是否必填:否 - windows或linux</li>
        # <li>CpuLoad - Int - 是否必填:否 -
        # 	0: 未知  1: 低负载
        # 	2: 中负载  3: 高负载</li>
        # <li>DiskLoad - Int - 是否必填:否 -
        # 	0: 0%或未知  1: 0%~20%
        # 	2: 20%~50%  3: 50%~80%
        # 	4: 80%~100%</li>
        # <li>MemLoad - Int - 是否必填:否 -
        # 	0: 0%或未知  1: 0%~20%
        # 	2: 20%~50%  3: 50%~80%
        # 	4: 80%~100%</li>
        # <li>Quuid:主机Quuid</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序[FirstTime|PartitionCount]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetMachineList返回参数结构体
      class DescribeAssetMachineListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 总数
        # @type Total: Integer
        # @param Machines: 记录列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Machines: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :Machines, :RequestId

        def initialize(total=nil, machines=nil, requestid=nil)
          @Total = total
          @Machines = machines
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['Machines'].nil?
            @Machines = []
            params['Machines'].each do |i|
              assetmachinebaseinfo_tmp = AssetMachineBaseInfo.new
              assetmachinebaseinfo_tmp.deserialize(i)
              @Machines << assetmachinebaseinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetMachineTagTop请求参数结构体
      class DescribeAssetMachineTagTopRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAssetMachineTagTop返回参数结构体
      class DescribeAssetMachineTagTopResponse < TencentCloud::Common::AbstractModel
        # @param Tags: Top5标签及数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tags: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Tags, :RequestId

        def initialize(tags=nil, requestid=nil)
          @Tags = tags
          @RequestId = requestid
        end

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

      # DescribeAssetPlanTaskList请求参数结构体
      class DescribeAssetPlanTaskListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>User- string - 是否必填:否 - 用户</li>
        # <li>Status- int - 是否必填:否 - 默认启用状态:0未启用, 1启用 </li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetPlanTaskList返回参数结构体
      class DescribeAssetPlanTaskListResponse < TencentCloud::Common::AbstractModel
        # @param Tasks: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tasks: Array
        # @param Total: 总数量
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Tasks, :Total, :RequestId

        def initialize(tasks=nil, total=nil, requestid=nil)
          @Tasks = tasks
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Tasks'].nil?
            @Tasks = []
            params['Tasks'].each do |i|
              assetplantask_tmp = AssetPlanTask.new
              assetplantask_tmp.deserialize(i)
              @Tasks << assetplantask_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetPortCount请求参数结构体
      class DescribeAssetPortCountRequest < TencentCloud::Common::AbstractModel
        # @param Port: 搜索条件:返回指定端口号数据
        # @type Port: Integer

        attr_accessor :Port

        def initialize(port=nil)
          @Port = port
        end

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

      # DescribeAssetPortCount返回参数结构体
      class DescribeAssetPortCountResponse < TencentCloud::Common::AbstractModel
        # @param Ports: 各进程数量
        # @type Ports: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Ports, :RequestId

        def initialize(ports=nil, requestid=nil)
          @Ports = ports
          @RequestId = requestid
        end

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

      # DescribeAssetPortInfoList请求参数结构体
      class DescribeAssetPortInfoListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Port - uint64 - 是否必填:否 - 端口</li>
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>ProcessName - String - 是否必填:否 - 监听进程</li>
        # <li>Pid - uint64 - 是否必填:否 - PID</li>
        # <li>User - String - 是否必填:否 - 运行用户</li>
        # <li>Group - String - 是否必填:否 - 所属用户组</li>
        # <li>Ppid - uint64 - 是否必填:否 - PPID</li>
        # <li>Proto - string - 是否必填:否 - tcp/udp或“”(空字符串筛选未知状态)</li>
        # <li>OsType - uint64 - 是否必填:否 - windows/linux</li>
        # <li>RunTimeStart - String - 是否必填:否 - 运行开始时间</li>
        # <li>RunTimeEnd - String - 是否必填:否 - 运行结束时间</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime|StartTime]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Limit, :Offset, :Order, :By

        def initialize(quuid=nil, filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetPortInfoList返回参数结构体
      class DescribeAssetPortInfoListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 记录总数
        # @type Total: Integer
        # @param Ports: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Ports: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :Ports, :RequestId

        def initialize(total=nil, ports=nil, requestid=nil)
          @Total = total
          @Ports = ports
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['Ports'].nil?
            @Ports = []
            params['Ports'].each do |i|
              assetportbaseinfo_tmp = AssetPortBaseInfo.new
              assetportbaseinfo_tmp.deserialize(i)
              @Ports << assetportbaseinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetProcessCount请求参数结构体
      class DescribeAssetProcessCountRequest < TencentCloud::Common::AbstractModel
        # @param Name: 搜索条件:搜索返回所有进程名包含Name的进程列表
        # @type Name: String

        attr_accessor :Name

        def initialize(name=nil)
          @Name = name
        end

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

      # DescribeAssetProcessCount返回参数结构体
      class DescribeAssetProcessCountResponse < TencentCloud::Common::AbstractModel
        # @param Process: 各进程数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Process: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Process, :RequestId

        def initialize(process=nil, requestid=nil)
          @Process = process
          @RequestId = requestid
        end

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

      # DescribeAssetProcessInfoList请求参数结构体
      class DescribeAssetProcessInfoListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Name - String - 是否必填:否 - 进程名</li>
        # <li>User - String - 是否必填:否 - 进程用户</li>
        # <li>Group - String - 是否必填:否 - 进程用户组</li>
        # <li>Pid - uint64 - 是否必填:否 - 进程ID</li>
        # <li>Ppid - uint64 - 是否必填:否 - 父进程ID</li>
        # <li>OsType - uint64 - 是否必填:否 - windows/linux</li>
        # <li>Status - string - 是否必填:否 - 进程状态:
        # 1:R 可执行
        # 2:S 可中断
        # 3:D 不可中断
        # 4:T 暂停状态或跟踪状态
        # 5:Z 僵尸状态
        # 6:X 将被销毁</li>
        # <li>RunTimeStart - String - 是否必填:否 - 运行开始时间</li>
        # <li>RunTimeEnd - String - 是否必填:否 - 运行结束时间</li>
        # <li>InstallByPackage - uint64 - 是否必填:否 - 是否包安装:0否,1是</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime|StartTime]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Limit, :Offset, :Order, :By

        def initialize(quuid=nil, filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetProcessInfoList返回参数结构体
      class DescribeAssetProcessInfoListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 记录总数
        # @type Total: Integer
        # @param Process: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Process: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :Process, :RequestId

        def initialize(total=nil, process=nil, requestid=nil)
          @Total = total
          @Process = process
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['Process'].nil?
            @Process = []
            params['Process'].each do |i|
              assetprocessbaseinfo_tmp = AssetProcessBaseInfo.new
              assetprocessbaseinfo_tmp.deserialize(i)
              @Process << assetprocessbaseinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetRecentMachineInfo请求参数结构体
      class DescribeAssetRecentMachineInfoRequest < TencentCloud::Common::AbstractModel
        # @param BeginDate: 开始时间,如:2020-09-22
        # @type BeginDate: String
        # @param EndDate: 结束时间,如:2020-09-22
        # @type EndDate: String

        attr_accessor :BeginDate, :EndDate

        def initialize(begindate=nil, enddate=nil)
          @BeginDate = begindate
          @EndDate = enddate
        end

        def deserialize(params)
          @BeginDate = params['BeginDate']
          @EndDate = params['EndDate']
        end
      end

      # DescribeAssetRecentMachineInfo返回参数结构体
      class DescribeAssetRecentMachineInfoResponse < TencentCloud::Common::AbstractModel
        # @param TotalList: 总数量列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalList: Array
        # @param LiveList: 在线数量列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LiveList: Array
        # @param OfflineList: 离线数量列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type OfflineList: Array
        # @param RiskList: 风险数量列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalList, :LiveList, :OfflineList, :RiskList, :RequestId

        def initialize(totallist=nil, livelist=nil, offlinelist=nil, risklist=nil, requestid=nil)
          @TotalList = totallist
          @LiveList = livelist
          @OfflineList = offlinelist
          @RiskList = risklist
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['TotalList'].nil?
            @TotalList = []
            params['TotalList'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @TotalList << assetkeyval_tmp
            end
          end
          unless params['LiveList'].nil?
            @LiveList = []
            params['LiveList'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @LiveList << assetkeyval_tmp
            end
          end
          unless params['OfflineList'].nil?
            @OfflineList = []
            params['OfflineList'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @OfflineList << assetkeyval_tmp
            end
          end
          unless params['RiskList'].nil?
            @RiskList = []
            params['RiskList'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @RiskList << assetkeyval_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetSystemPackageList请求参数结构体
      class DescribeAssetSystemPackageListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name - String - 是否必填:否 - 包 名</li>
        # <li>StartTime - String - 是否必填:否 - 安装开始时间</li>
        # <li>EndTime - String - 是否必填:否 - 安装开始时间</li>
        # <li>Type - int - 是否必填:否 - 安装包类型:
        # 1:rmp
        # 2:dpkg
        # 3:java
        # 4:system</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc-升序 或 desc-降序。默认:desc-降序
        # @type Order: String
        # @param By: 排序方式可选:[FistTime|InstallTime:安装时间]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetSystemPackageList返回参数结构体
      class DescribeAssetSystemPackageListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 记录总数
        # @type Total: Integer
        # @param Packages: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Packages: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :Packages, :RequestId

        def initialize(total=nil, packages=nil, requestid=nil)
          @Total = total
          @Packages = packages
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['Packages'].nil?
            @Packages = []
            params['Packages'].each do |i|
              assetsystempackageinfo_tmp = AssetSystemPackageInfo.new
              assetsystempackageinfo_tmp.deserialize(i)
              @Packages << assetsystempackageinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetTotalCount请求参数结构体
      class DescribeAssetTotalCountRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAssetTotalCount返回参数结构体
      class DescribeAssetTotalCountResponse < TencentCloud::Common::AbstractModel
        # @param Types: 各项资源数量
        # system : 资源监控
        # account: 账号
        # port: 端口
        # process: 进程
        # app: 应用软件
        # database:数据库
        # webapp: Web应用
        # webframe: Web框架
        # webservice: Web服务
        # weblocation: Web站点
        # jar: Jar包
        # initservice: 启动服务
        # planTask:计划任务
        # env:环境变量
        # coremodule:内核模块
        # @type Types: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Types, :RequestId

        def initialize(types=nil, requestid=nil)
          @Types = types
          @RequestId = requestid
        end

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

      # DescribeAssetTypeTop请求参数结构体
      class DescribeAssetTypeTopRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAssetTypeTop返回参数结构体
      class DescribeAssetTypeTopResponse < TencentCloud::Common::AbstractModel
        # @param User: 账号Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type User: Array
        # @param Port: 端口Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Port: Array
        # @param Process: 进程Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Process: Array
        # @param Software: 软件Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Software: Array
        # @param Database: 数据库Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Database: Array
        # @param WebApp: Web应用Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WebApp: Array
        # @param WebLocation: Web站点Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WebLocation: Array
        # @param WebFrame: Web框架Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WebFrame: Array
        # @param WebService: Web服务Top5
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WebService: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :User, :Port, :Process, :Software, :Database, :WebApp, :WebLocation, :WebFrame, :WebService, :RequestId

        def initialize(user=nil, port=nil, process=nil, software=nil, database=nil, webapp=nil, weblocation=nil, webframe=nil, webservice=nil, requestid=nil)
          @User = user
          @Port = port
          @Process = process
          @Software = software
          @Database = database
          @WebApp = webapp
          @WebLocation = weblocation
          @WebFrame = webframe
          @WebService = webservice
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['User'].nil?
            @User = []
            params['User'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @User << assetkeyval_tmp
            end
          end
          unless params['Port'].nil?
            @Port = []
            params['Port'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @Port << assetkeyval_tmp
            end
          end
          unless params['Process'].nil?
            @Process = []
            params['Process'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @Process << assetkeyval_tmp
            end
          end
          unless params['Software'].nil?
            @Software = []
            params['Software'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @Software << assetkeyval_tmp
            end
          end
          unless params['Database'].nil?
            @Database = []
            params['Database'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @Database << assetkeyval_tmp
            end
          end
          unless params['WebApp'].nil?
            @WebApp = []
            params['WebApp'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @WebApp << assetkeyval_tmp
            end
          end
          unless params['WebLocation'].nil?
            @WebLocation = []
            params['WebLocation'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @WebLocation << assetkeyval_tmp
            end
          end
          unless params['WebFrame'].nil?
            @WebFrame = []
            params['WebFrame'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @WebFrame << assetkeyval_tmp
            end
          end
          unless params['WebService'].nil?
            @WebService = []
            params['WebService'].each do |i|
              assetkeyval_tmp = AssetKeyVal.new
              assetkeyval_tmp.deserialize(i)
              @WebService << assetkeyval_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetTypes请求参数结构体
      class DescribeAssetTypesRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAssetTypes返回参数结构体
      class DescribeAssetTypesResponse < TencentCloud::Common::AbstractModel
        # @param Types: 资产指纹类型列表
        # @type Types: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Types, :RequestId

        def initialize(types=nil, requestid=nil)
          @Types = types
          @RequestId = requestid
        end

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

      # DescribeAssetUserCount请求参数结构体
      class DescribeAssetUserCountRequest < TencentCloud::Common::AbstractModel
        # @param Name: 搜索条件:搜索名称中包含name的所有账号列表
        # @type Name: String

        attr_accessor :Name

        def initialize(name=nil)
          @Name = name
        end

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

      # DescribeAssetUserCount返回参数结构体
      class DescribeAssetUserCountResponse < TencentCloud::Common::AbstractModel
        # @param Users: 各账号数量
        # @type Users: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Users, :RequestId

        def initialize(users=nil, requestid=nil)
          @Users = users
          @RequestId = requestid
        end

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

      # DescribeAssetUserInfo请求参数结构体
      class DescribeAssetUserInfoRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 云服务器UUID
        # @type Quuid: String
        # @param Uuid: 主机安全UUID
        # @type Uuid: String
        # @param Name: 账户名
        # @type Name: String

        attr_accessor :Quuid, :Uuid, :Name

        def initialize(quuid=nil, uuid=nil, name=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Name = name
        end

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

      # DescribeAssetUserInfo返回参数结构体
      class DescribeAssetUserInfoResponse < TencentCloud::Common::AbstractModel
        # @param User: 用户详细信息
        # @type User: :class:`Tencentcloud::Cwp.v20180228.models.AssetUserDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :User, :RequestId

        def initialize(user=nil, requestid=nil)
          @User = user
          @RequestId = requestid
        end

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

      # DescribeAssetUserKeyList请求参数结构体
      class DescribeAssetUserKeyListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Name: 账号名
        # @type Name: String
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Quuid, :Uuid, :Name, :Offset, :Limit

        def initialize(quuid=nil, uuid=nil, name=nil, offset=nil, limit=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Name = name
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Name = params['Name']
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeAssetUserKeyList返回参数结构体
      class DescribeAssetUserKeyListResponse < TencentCloud::Common::AbstractModel
        # @param Keys: 公钥列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Keys: Array
        # @param Total: 分区总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Keys, :Total, :RequestId

        def initialize(keys=nil, total=nil, requestid=nil)
          @Keys = keys
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Keys'].nil?
            @Keys = []
            params['Keys'].each do |i|
              assetuserkeyinfo_tmp = AssetUserKeyInfo.new
              assetuserkeyinfo_tmp.deserialize(i)
              @Keys << assetuserkeyinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetUserList请求参数结构体
      class DescribeAssetUserListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Name - String - 是否必填:否 - 账户名(模糊匹配)</li>
        # <li>NameStrict - String - 是否必填:否 - 账户名(严格匹配)</li>
        # <li>Uid - uint64 - 是否必填:否 - Uid</li>
        # <li>Guid - uint64 - 是否必填:否 - Guid</li>
        # <li>LoginTimeStart - String - 是否必填:否 - 开始时间,如:2021-01-11</li>
        # <li>LoginTimeEnd - String - 是否必填:否 - 结束时间,如:2021-01-11</li>
        # <li>LoginType - uint64 - 是否必填:否 - 0-不可登录;1-只允许key登录;2只允许密码登录;3-允许key和密码 仅linux</li>
        # <li>OsType - String - 是否必填:否 - windows或linux</li>
        # <li>Status - uint64 - 是否必填:否 - 账号状态:0-禁用;1-启用</li>
        # <li>UserType - uint64 - 是否必填:否 - 账号类型:0访客用户,1标准用户,2管理员用户 仅windows</li>
        # <li>IsDomain - uint64 - 是否必填:否 - 是否域账号:0 不是,1是 仅windows</li>
        # <li>IsRoot - uint64 - 是否必填:否 - 是否Root权限:0 不是,1是 仅linux</li>
        # <li>IsSudo - uint64 - 是否必填:否 - 是否Sudo权限:0 不是,1是 仅linux</li>
        # <li>IsSshLogin - uint64 - 是否必填:否 - 是否ssh登录:0 不是,1是 仅linux</li>
        # <li>ShellLoginStatus - uint64 - 是否必填:否 - 是否shell登录性,0不是;1是 仅linux</li>
        # <li>PasswordStatus - uint64 - 是否必填:否 - 密码状态:1正常 2即将过期 3已过期 4已锁定 仅linux</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|LoginTime|PasswordChangeTime|PasswordDuaTime|PasswordLockDays]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Limit, :Offset, :Order, :By

        def initialize(quuid=nil, filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetUserList返回参数结构体
      class DescribeAssetUserListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 记录总数
        # @type Total: Integer
        # @param Users: 账号列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Users: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :Users, :RequestId

        def initialize(total=nil, users=nil, requestid=nil)
          @Total = total
          @Users = users
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['Users'].nil?
            @Users = []
            params['Users'].each do |i|
              assetuserbaseinfo_tmp = AssetUserBaseInfo.new
              assetuserbaseinfo_tmp.deserialize(i)
              @Users << assetuserbaseinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetWebAppCount请求参数结构体
      class DescribeAssetWebAppCountRequest < TencentCloud::Common::AbstractModel
        # @param Name: 搜索条件:返回名称包含Name的所有Web应用列表
        # @type Name: String

        attr_accessor :Name

        def initialize(name=nil)
          @Name = name
        end

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

      # DescribeAssetWebAppCount返回参数结构体
      class DescribeAssetWebAppCountResponse < TencentCloud::Common::AbstractModel
        # @param WebApps: 各Web应用数量
        # @type WebApps: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :WebApps, :RequestId

        def initialize(webapps=nil, requestid=nil)
          @WebApps = webapps
          @RequestId = requestid
        end

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

      # DescribeAssetWebAppList请求参数结构体
      class DescribeAssetWebAppListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Name - String - 是否必填:否 - 应用名</li>
        # <li>Domain - String - 是否必填:否 - 站点域名</li>
        # <li>Type - int - 是否必填:否 - 服务类型:
        # 0:全部
        # 1:Tomcat
        # 2:Apache
        # 3:Nginx
        # 4:WebLogic
        # 5:Websphere
        # 6:JBoss
        # 7:Jetty
        # 8:IHS
        # 9:Tengine</li>
        # <li>OsType - String - 是否必填:否 - windows/linux</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|PluginCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetWebAppList返回参数结构体
      class DescribeAssetWebAppListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 记录总数
        # @type Total: Integer
        # @param WebApps: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WebApps: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :WebApps, :RequestId

        def initialize(total=nil, webapps=nil, requestid=nil)
          @Total = total
          @WebApps = webapps
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['WebApps'].nil?
            @WebApps = []
            params['WebApps'].each do |i|
              assetwebappbaseinfo_tmp = AssetWebAppBaseInfo.new
              assetwebappbaseinfo_tmp.deserialize(i)
              @WebApps << assetwebappbaseinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetWebAppPluginList请求参数结构体
      class DescribeAssetWebAppPluginListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Id: Web应用ID
        # @type Id: String
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Quuid, :Uuid, :Id, :Offset, :Limit

        def initialize(quuid=nil, uuid=nil, id=nil, offset=nil, limit=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Id = id
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Id = params['Id']
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeAssetWebAppPluginList返回参数结构体
      class DescribeAssetWebAppPluginListResponse < TencentCloud::Common::AbstractModel
        # @param Plugins: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Plugins: Array
        # @param Total: 分区总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Plugins, :Total, :RequestId

        def initialize(plugins=nil, total=nil, requestid=nil)
          @Plugins = plugins
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Plugins'].nil?
            @Plugins = []
            params['Plugins'].each do |i|
              assetwebappplugininfo_tmp = AssetWebAppPluginInfo.new
              assetwebappplugininfo_tmp.deserialize(i)
              @Plugins << assetwebappplugininfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetWebFrameCount请求参数结构体
      class DescribeAssetWebFrameCountRequest < TencentCloud::Common::AbstractModel
        # @param Name: 搜索条件:返回名称包含Name的所有Web框架列表
        # @type Name: String

        attr_accessor :Name

        def initialize(name=nil)
          @Name = name
        end

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

      # DescribeAssetWebFrameCount返回参数结构体
      class DescribeAssetWebFrameCountResponse < TencentCloud::Common::AbstractModel
        # @param WebFrames: 各Web框架数量
        # @type WebFrames: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :WebFrames, :RequestId

        def initialize(webframes=nil, requestid=nil)
          @WebFrames = webframes
          @RequestId = requestid
        end

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

      # DescribeAssetWebFrameList请求参数结构体
      class DescribeAssetWebFrameListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Name - String - 是否必填:否 - 框架名</li>
        # <li>NameStrict - String - 是否必填:否 - 框架名(严格匹配)</li>
        # <li>Lang - String - 是否必填:否 - 框架语言:java/python</li>
        # <li>Type - String - 是否必填:否 - 服务类型:
        # 0:全部
        # 1:Tomcat
        # 2:Apache
        # 3:Nginx
        # 4:WebLogic
        # 5:Websphere
        # 6:JBoss
        # 7:WildFly
        # 8:Jetty
        # 9:IHS
        # 10:Tengine</li>
        # <li>OsType - String - 是否必填:否 - windows/linux</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|JarCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetWebFrameList返回参数结构体
      class DescribeAssetWebFrameListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 记录总数
        # @type Total: Integer
        # @param WebFrames: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WebFrames: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :WebFrames, :RequestId

        def initialize(total=nil, webframes=nil, requestid=nil)
          @Total = total
          @WebFrames = webframes
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['WebFrames'].nil?
            @WebFrames = []
            params['WebFrames'].each do |i|
              assetwebframebaseinfo_tmp = AssetWebFrameBaseInfo.new
              assetwebframebaseinfo_tmp.deserialize(i)
              @WebFrames << assetwebframebaseinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetWebLocationCount请求参数结构体
      class DescribeAssetWebLocationCountRequest < TencentCloud::Common::AbstractModel
        # @param Name: 搜索条件:返回名称包含Name的所有Web站点列表
        # @type Name: String

        attr_accessor :Name

        def initialize(name=nil)
          @Name = name
        end

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

      # DescribeAssetWebLocationCount返回参数结构体
      class DescribeAssetWebLocationCountResponse < TencentCloud::Common::AbstractModel
        # @param WebLocations: 各Web站点数量
        # @type WebLocations: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :WebLocations, :RequestId

        def initialize(weblocations=nil, requestid=nil)
          @WebLocations = weblocations
          @RequestId = requestid
        end

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

      # DescribeAssetWebLocationInfo请求参数结构体
      class DescribeAssetWebLocationInfoRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Id: 站点Id
        # @type Id: String

        attr_accessor :Quuid, :Uuid, :Id

        def initialize(quuid=nil, uuid=nil, id=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Id = id
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Id = params['Id']
        end
      end

      # DescribeAssetWebLocationInfo返回参数结构体
      class DescribeAssetWebLocationInfoResponse < TencentCloud::Common::AbstractModel
        # @param WebLocation: 站点信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WebLocation: :class:`Tencentcloud::Cwp.v20180228.models.AssetWebLocationInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :WebLocation, :RequestId

        def initialize(weblocation=nil, requestid=nil)
          @WebLocation = weblocation
          @RequestId = requestid
        end

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

      # DescribeAssetWebLocationList请求参数结构体
      class DescribeAssetWebLocationListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Name - String - 是否必填:否 - 域名</li>
        # <li>User - String - 是否必填:否 - 运行用户</li>
        # <li>Port - uint64 - 是否必填:否 - 站点端口</li>
        # <li>Proto - uint64 - 是否必填:否 - 站点协议:1:HTTP,2:HTTPS</li>
        # <li>ServiceType - uint64 - 是否必填:否 - 服务类型:
        # 1:Tomcat
        # 2:Apache
        # 3:Nginx
        # 4:WebLogic
        # 5:Websphere
        # 6:JBoss
        # 7:WildFly
        # 8:Jetty
        # 9:IHS
        # 10:Tengine</li>
        # <li>OsType - String - 是否必填:否 - windows/linux</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|PathCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetWebLocationList返回参数结构体
      class DescribeAssetWebLocationListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 记录总数
        # @type Total: Integer
        # @param Locations: 站点列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Locations: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :Locations, :RequestId

        def initialize(total=nil, locations=nil, requestid=nil)
          @Total = total
          @Locations = locations
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['Locations'].nil?
            @Locations = []
            params['Locations'].each do |i|
              assetweblocationbaseinfo_tmp = AssetWebLocationBaseInfo.new
              assetweblocationbaseinfo_tmp.deserialize(i)
              @Locations << assetweblocationbaseinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetWebLocationPathList请求参数结构体
      class DescribeAssetWebLocationPathListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Id: Web站点Id
        # @type Id: String
        # @param Limit: 返回列表数量,最多100,默认10
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0
        # @type Offset: Integer

        attr_accessor :Quuid, :Uuid, :Id, :Limit, :Offset

        def initialize(quuid=nil, uuid=nil, id=nil, limit=nil, offset=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Id = id
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Id = params['Id']
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeAssetWebLocationPathList返回参数结构体
      class DescribeAssetWebLocationPathListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Total: Integer
        # @param Paths: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Paths: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :Paths, :RequestId

        def initialize(total=nil, paths=nil, requestid=nil)
          @Total = total
          @Paths = paths
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['Paths'].nil?
            @Paths = []
            params['Paths'].each do |i|
              assetweblocationpath_tmp = AssetWebLocationPath.new
              assetweblocationpath_tmp.deserialize(i)
              @Paths << assetweblocationpath_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetWebServiceCount请求参数结构体
      class DescribeAssetWebServiceCountRequest < TencentCloud::Common::AbstractModel
        # @param Name: 搜索条件:返回名称包含Name的所有Web服务列表
        # @type Name: String

        attr_accessor :Name

        def initialize(name=nil)
          @Name = name
        end

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

      # DescribeAssetWebServiceCount返回参数结构体
      class DescribeAssetWebServiceCountResponse < TencentCloud::Common::AbstractModel
        # @param WebServices: 各Web服务数量
        # @type WebServices: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :WebServices, :RequestId

        def initialize(webservices=nil, requestid=nil)
          @WebServices = webservices
          @RequestId = requestid
        end

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

      # DescribeAssetWebServiceInfoList请求参数结构体
      class DescribeAssetWebServiceInfoListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>User- string - 是否必填:否 - 运行用户</li>
        # <li>Name- string - 是否必填:否 - Web服务名:
        # 1:Tomcat
        # 2:Apache
        # 3:Nginx
        # 4:WebLogic
        # 5:Websphere
        # 6:JBoss
        # 7:WildFly
        # 8:Jetty
        # 9:IHS
        # 10:Tengine</li>
        # <li>OsType- string - 是否必填:否 - Windows/linux</li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|ProcessCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Offset, :Limit, :Order, :By

        def initialize(quuid=nil, filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeAssetWebServiceInfoList返回参数结构体
      class DescribeAssetWebServiceInfoListResponse < TencentCloud::Common::AbstractModel
        # @param WebServices: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WebServices: Array
        # @param Total: 总数量
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :WebServices, :Total, :RequestId

        def initialize(webservices=nil, total=nil, requestid=nil)
          @WebServices = webservices
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['WebServices'].nil?
            @WebServices = []
            params['WebServices'].each do |i|
              assetwebservicebaseinfo_tmp = AssetWebServiceBaseInfo.new
              assetwebservicebaseinfo_tmp.deserialize(i)
              @WebServices << assetwebservicebaseinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAssetWebServiceProcessList请求参数结构体
      class DescribeAssetWebServiceProcessListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Id: Web服务ID
        # @type Id: String
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Quuid, :Uuid, :Id, :Offset, :Limit

        def initialize(quuid=nil, uuid=nil, id=nil, offset=nil, limit=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Id = id
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Id = params['Id']
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeAssetWebServiceProcessList返回参数结构体
      class DescribeAssetWebServiceProcessListResponse < TencentCloud::Common::AbstractModel
        # @param Process: 进程列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Process: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Process, :Total, :RequestId

        def initialize(process=nil, total=nil, requestid=nil)
          @Process = process
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Process'].nil?
            @Process = []
            params['Process'].each do |i|
              assetappprocessinfo_tmp = AssetAppProcessInfo.new
              assetappprocessinfo_tmp.deserialize(i)
              @Process << assetappprocessinfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAttackEventInfo请求参数结构体
      class DescribeAttackEventInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 事件id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeAttackEventInfo返回参数结构体
      class DescribeAttackEventInfoResponse < TencentCloud::Common::AbstractModel
        # @param NetAttackEventInfo: 网络攻击事件详情
        # @type NetAttackEventInfo: :class:`Tencentcloud::Cwp.v20180228.models.NetAttackEventInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :NetAttackEventInfo, :RequestId

        def initialize(netattackeventinfo=nil, requestid=nil)
          @NetAttackEventInfo = netattackeventinfo
          @RequestId = requestid
        end

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

      # DescribeAttackEvents请求参数结构体
      class DescribeAttackEventsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters:  过滤条件。
        # <li>Type - String 攻击状态 0: 尝试攻击 1: 攻击成功 - 是否必填: 否</li>
        # <li>Status - String 事件处理状态 0:待处理 1:已处理 2: 已加白 3: 已忽略 4:已删除  - 是否必填: 否</li>
        # <li>SrcIP - String 来源IP - 是否必填: 否</li>
        # <li>Uuids - String 主机安全uuid - 是否必填: 否</li>
        # <li>Quuids - String cvm uuid - 是否必填: 否</li>
        # <li>DstPort - String 攻击目标端口 - 是否必填: 否</li>
        # <li>MachineName - String 主机名称 - 是否必填: 否</li>
        # <li>InstanceID - String 主机实例ID - 是否必填: 否</li>
        # <li>AttackTimeBegin - String 攻击开始时间 - 是否必填: 否</li>
        # <li>AttackTimeEnd - String 攻击结束时间 - 是否必填: 否</li>
        # <li>VulSupportDefense - String 漏洞是否支持防御 0不支持,1支持 - 是否必填: 否</li>
        # @type Filters: Array
        # @param By: 排序
        # @type By: String
        # @param Order: 排序方式 ASC,DESC
        # @type Order: String

        attr_accessor :Limit, :Offset, :Filters, :By, :Order

        def initialize(limit=nil, offset=nil, filters=nil, by=nil, order=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @By = by
          @Order = order
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @By = params['By']
          @Order = params['Order']
        end
      end

      # DescribeAttackEvents返回参数结构体
      class DescribeAttackEventsResponse < TencentCloud::Common::AbstractModel
        # @param List: 攻击事件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              netattackevent_tmp = NetAttackEvent.new
              netattackevent_tmp.deserialize(i)
              @List << netattackevent_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAttackLogInfo请求参数结构体
      class DescribeAttackLogInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 日志ID
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeAttackLogInfo返回参数结构体
      class DescribeAttackLogInfoResponse < TencentCloud::Common::AbstractModel
        # @param Id: 日志ID
        # @type Id: Integer
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param SrcPort: 攻击来源端口
        # @type SrcPort: Integer
        # @param SrcIp: 攻击来源IP
        # @type SrcIp: String
        # @param DstPort: 攻击目标端口
        # @type DstPort: Integer
        # @param DstIp: 攻击目标IP
        # @type DstIp: String
        # @param HttpMethod: 攻击方法
        # @type HttpMethod: String
        # @param HttpHost: 攻击目标主机
        # @type HttpHost: String
        # @param HttpHead: 攻击头信息
        # @type HttpHead: String
        # @param HttpUserAgent: 攻击者浏览器标识
        # @type HttpUserAgent: String
        # @param HttpReferer: 请求源
        # @type HttpReferer: String
        # @param VulType: 威胁类型
        # @type VulType: String
        # @param HttpCgi: 攻击路径
        # @type HttpCgi: String
        # @param HttpParam: 攻击参数
        # @type HttpParam: String
        # @param CreatedAt: 攻击时间
        # @type CreatedAt: String
        # @param HttpContent: 攻击内容
        # @type HttpContent: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Id, :Quuid, :SrcPort, :SrcIp, :DstPort, :DstIp, :HttpMethod, :HttpHost, :HttpHead, :HttpUserAgent, :HttpReferer, :VulType, :HttpCgi, :HttpParam, :CreatedAt, :HttpContent, :RequestId

        def initialize(id=nil, quuid=nil, srcport=nil, srcip=nil, dstport=nil, dstip=nil, httpmethod=nil, httphost=nil, httphead=nil, httpuseragent=nil, httpreferer=nil, vultype=nil, httpcgi=nil, httpparam=nil, createdat=nil, httpcontent=nil, requestid=nil)
          @Id = id
          @Quuid = quuid
          @SrcPort = srcport
          @SrcIp = srcip
          @DstPort = dstport
          @DstIp = dstip
          @HttpMethod = httpmethod
          @HttpHost = httphost
          @HttpHead = httphead
          @HttpUserAgent = httpuseragent
          @HttpReferer = httpreferer
          @VulType = vultype
          @HttpCgi = httpcgi
          @HttpParam = httpparam
          @CreatedAt = createdat
          @HttpContent = httpcontent
          @RequestId = requestid
        end

        def deserialize(params)
          @Id = params['Id']
          @Quuid = params['Quuid']
          @SrcPort = params['SrcPort']
          @SrcIp = params['SrcIp']
          @DstPort = params['DstPort']
          @DstIp = params['DstIp']
          @HttpMethod = params['HttpMethod']
          @HttpHost = params['HttpHost']
          @HttpHead = params['HttpHead']
          @HttpUserAgent = params['HttpUserAgent']
          @HttpReferer = params['HttpReferer']
          @VulType = params['VulType']
          @HttpCgi = params['HttpCgi']
          @HttpParam = params['HttpParam']
          @CreatedAt = params['CreatedAt']
          @HttpContent = params['HttpContent']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAttackLogs请求参数结构体
      class DescribeAttackLogsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>HttpMethod - String - 是否必填:否 - 攻击方法(POST|GET)</li>
        # <li>DateRange - String - 是否必填:否 - 时间范围(存储最近3个月的数据),如最近一个月["2019-11-17", "2019-12-17"]</li>
        # <li>VulType - String 威胁类型 - 是否必填: 否</li>
        # <li>SrcIp - String 攻击源IP - 是否必填: 否</li>
        # <li>DstIp - String 攻击目标IP - 是否必填: 否</li>
        # <li>SrcPort - String 攻击源端口 - 是否必填: 否</li>
        # <li>DstPort - String 攻击目标端口 - 是否必填: 否</li>
        # @type Filters: Array
        # @param Uuid: 主机安全客户端ID
        # @type Uuid: String
        # @param Quuid: 云主机机器ID
        # @type Quuid: String

        attr_accessor :Limit, :Offset, :Filters, :Uuid, :Quuid

        def initialize(limit=nil, offset=nil, filters=nil, uuid=nil, quuid=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Uuid = uuid
          @Quuid = quuid
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
        end
      end

      # DescribeAttackLogs返回参数结构体
      class DescribeAttackLogsResponse < TencentCloud::Common::AbstractModel
        # @param AttackLogs: 日志列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AttackLogs: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AttackLogs, :TotalCount, :RequestId

        def initialize(attacklogs=nil, totalcount=nil, requestid=nil)
          @AttackLogs = attacklogs
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['AttackLogs'].nil?
            @AttackLogs = []
            params['AttackLogs'].each do |i|
              defendattacklog_tmp = DefendAttackLog.new
              defendattacklog_tmp.deserialize(i)
              @AttackLogs << defendattacklog_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAttackSourceEvents请求参数结构体
      class DescribeAttackSourceEventsRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param BeginDate: 开始日期
        # @type BeginDate: String
        # @param EndDate: 结束日期
        # @type EndDate: String
        # @param EventInfoParam: 接口DescribeAttackSource 返回的EventInfoParam
        # @type EventInfoParam: String
        # @param Limit: 限制分页条数默认10
        # @type Limit: Integer
        # @param Offset: 起始步长默认0
        # @type Offset: Integer

        attr_accessor :Uuid, :BeginDate, :EndDate, :EventInfoParam, :Limit, :Offset

        def initialize(uuid=nil, begindate=nil, enddate=nil, eventinfoparam=nil, limit=nil, offset=nil)
          @Uuid = uuid
          @BeginDate = begindate
          @EndDate = enddate
          @EventInfoParam = eventinfoparam
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @BeginDate = params['BeginDate']
          @EndDate = params['EndDate']
          @EventInfoParam = params['EventInfoParam']
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeAttackSourceEvents返回参数结构体
      class DescribeAttackSourceEventsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 攻击溯源事件列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              attacksourceevent_tmp = AttackSourceEvent.new
              attacksourceevent_tmp.deserialize(i)
              @List << attacksourceevent_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAttackSource请求参数结构体
      class DescribeAttackSourceRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param BeginDate: 开始日期
        # @type BeginDate: String
        # @param EndDate: 结束日期
        # @type EndDate: String

        attr_accessor :Uuid, :BeginDate, :EndDate

        def initialize(uuid=nil, begindate=nil, enddate=nil)
          @Uuid = uuid
          @BeginDate = begindate
          @EndDate = enddate
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @BeginDate = params['BeginDate']
          @EndDate = params['EndDate']
        end
      end

      # DescribeAttackSource返回参数结构体
      class DescribeAttackSourceResponse < TencentCloud::Common::AbstractModel
        # @param AttackSource: 攻击溯源数据
        # @type AttackSource: :class:`Tencentcloud::Cwp.v20180228.models.AttackSource`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AttackSource, :RequestId

        def initialize(attacksource=nil, requestid=nil)
          @AttackSource = attacksource
          @RequestId = requestid
        end

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

      # DescribeAttackStatistics请求参数结构体
      class DescribeAttackStatisticsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAttackStatistics返回参数结构体
      class DescribeAttackStatisticsResponse < TencentCloud::Common::AbstractModel
        # @param PendingAttackCount: 总攻击次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PendingAttackCount: Integer
        # @param PendingTryAttackCount: 总尝试攻击次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PendingTryAttackCount: Integer
        # @param PendingSuccAttackCount: 总攻击成功次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PendingSuccAttackCount: Integer
        # @param PendingNewAttackCount: 今日新增攻击次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PendingNewAttackCount: Integer
        # @param AttackedAssetCount: 总受攻击资产数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AttackedAssetCount: Integer
        # @param NewAttackedAssetCount: 今日新增受攻击资产数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NewAttackedAssetCount: Integer
        # @param AttackedPortCount: 总受攻击端口数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AttackedPortCount: Integer
        # @param NewAttackedPortCount: 今日新增受攻击端口数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NewAttackedPortCount: Integer
        # @param AttackSrcIpCount: 总攻击来源ip数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AttackSrcIpCount: Integer
        # @param NewAttackSrcIpCount: 今日新增攻击来源ip数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NewAttackSrcIpCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PendingAttackCount, :PendingTryAttackCount, :PendingSuccAttackCount, :PendingNewAttackCount, :AttackedAssetCount, :NewAttackedAssetCount, :AttackedPortCount, :NewAttackedPortCount, :AttackSrcIpCount, :NewAttackSrcIpCount, :RequestId

        def initialize(pendingattackcount=nil, pendingtryattackcount=nil, pendingsuccattackcount=nil, pendingnewattackcount=nil, attackedassetcount=nil, newattackedassetcount=nil, attackedportcount=nil, newattackedportcount=nil, attacksrcipcount=nil, newattacksrcipcount=nil, requestid=nil)
          @PendingAttackCount = pendingattackcount
          @PendingTryAttackCount = pendingtryattackcount
          @PendingSuccAttackCount = pendingsuccattackcount
          @PendingNewAttackCount = pendingnewattackcount
          @AttackedAssetCount = attackedassetcount
          @NewAttackedAssetCount = newattackedassetcount
          @AttackedPortCount = attackedportcount
          @NewAttackedPortCount = newattackedportcount
          @AttackSrcIpCount = attacksrcipcount
          @NewAttackSrcIpCount = newattacksrcipcount
          @RequestId = requestid
        end

        def deserialize(params)
          @PendingAttackCount = params['PendingAttackCount']
          @PendingTryAttackCount = params['PendingTryAttackCount']
          @PendingSuccAttackCount = params['PendingSuccAttackCount']
          @PendingNewAttackCount = params['PendingNewAttackCount']
          @AttackedAssetCount = params['AttackedAssetCount']
          @NewAttackedAssetCount = params['NewAttackedAssetCount']
          @AttackedPortCount = params['AttackedPortCount']
          @NewAttackedPortCount = params['NewAttackedPortCount']
          @AttackSrcIpCount = params['AttackSrcIpCount']
          @NewAttackSrcIpCount = params['NewAttackSrcIpCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAttackTop请求参数结构体
      class DescribeAttackTopRequest < TencentCloud::Common::AbstractModel
        # @param Filters:  过滤条件。
        # <li>BeginTime - String 起始时间,默认近7天- 是否必填: 否</li>
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

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

      # DescribeAttackTop返回参数结构体
      class DescribeAttackTopResponse < TencentCloud::Common::AbstractModel
        # @param NetAttackTopInfo: top统计数据
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NetAttackTopInfo: :class:`Tencentcloud::Cwp.v20180228.models.NetAttackTopInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :NetAttackTopInfo, :RequestId

        def initialize(netattacktopinfo=nil, requestid=nil)
          @NetAttackTopInfo = netattacktopinfo
          @RequestId = requestid
        end

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

      # DescribeAttackTrends请求参数结构体
      class DescribeAttackTrendsRequest < TencentCloud::Common::AbstractModel
        # @param Filters:  过滤条件。
        # <li>BeginTime - String 起始时间,默认近7天- 是否必填: 否</li>
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

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

      # DescribeAttackTrends返回参数结构体
      class DescribeAttackTrendsResponse < TencentCloud::Common::AbstractModel
        # @param NetAttackTrend: 攻击趋势统计数据(天)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NetAttackTrend: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :NetAttackTrend, :RequestId

        def initialize(netattacktrend=nil, requestid=nil)
          @NetAttackTrend = netattacktrend
          @RequestId = requestid
        end

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

      # DescribeAttackVulTypeList请求参数结构体
      class DescribeAttackVulTypeListRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAttackVulTypeList返回参数结构体
      class DescribeAttackVulTypeListResponse < TencentCloud::Common::AbstractModel
        # @param List: 威胁类型列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @List = params['List']
          @RequestId = params['RequestId']
        end
      end

      # DescribeAvailableExpertServiceDetail请求参数结构体
      class DescribeAvailableExpertServiceDetailRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAvailableExpertServiceDetail返回参数结构体
      class DescribeAvailableExpertServiceDetailResponse < TencentCloud::Common::AbstractModel
        # @param ExpertService: 安全管家订单
        # @type ExpertService: Array
        # @param EmergencyResponse: 应急响应可用次数
        # @type EmergencyResponse: Integer
        # @param ProtectNet: 旗舰护网可用次数
        # @type ProtectNet: Integer
        # @param ExpertServiceBuy: 是否购买过安全管家
        # @type ExpertServiceBuy: Boolean
        # @param EmergencyResponseBuy: 是否购买过应急响应
        # @type EmergencyResponseBuy: Boolean
        # @param ProtectNetBuy: 是否购买过旗舰护网
        # @type ProtectNetBuy: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ExpertService, :EmergencyResponse, :ProtectNet, :ExpertServiceBuy, :EmergencyResponseBuy, :ProtectNetBuy, :RequestId

        def initialize(expertservice=nil, emergencyresponse=nil, protectnet=nil, expertservicebuy=nil, emergencyresponsebuy=nil, protectnetbuy=nil, requestid=nil)
          @ExpertService = expertservice
          @EmergencyResponse = emergencyresponse
          @ProtectNet = protectnet
          @ExpertServiceBuy = expertservicebuy
          @EmergencyResponseBuy = emergencyresponsebuy
          @ProtectNetBuy = protectnetbuy
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['ExpertService'].nil?
            @ExpertService = []
            params['ExpertService'].each do |i|
              expertserviceorderinfo_tmp = ExpertServiceOrderInfo.new
              expertserviceorderinfo_tmp.deserialize(i)
              @ExpertService << expertserviceorderinfo_tmp
            end
          end
          @EmergencyResponse = params['EmergencyResponse']
          @ProtectNet = params['ProtectNet']
          @ExpertServiceBuy = params['ExpertServiceBuy']
          @EmergencyResponseBuy = params['EmergencyResponseBuy']
          @ProtectNetBuy = params['ProtectNetBuy']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBanMode请求参数结构体
      class DescribeBanModeRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeBanMode返回参数结构体
      class DescribeBanModeResponse < TencentCloud::Common::AbstractModel
        # @param Mode: 阻断模式,STANDARD_MODE:标准阻断,DEEP_MODE:深度阻断
        # @type Mode: String
        # @param StandardModeConfig: 标准阻断模式的配置
        # @type StandardModeConfig: :class:`Tencentcloud::Cwp.v20180228.models.StandardModeConfig`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Mode, :StandardModeConfig, :RequestId

        def initialize(mode=nil, standardmodeconfig=nil, requestid=nil)
          @Mode = mode
          @StandardModeConfig = standardmodeconfig
          @RequestId = requestid
        end

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

      # DescribeBanRegions请求参数结构体
      class DescribeBanRegionsRequest < TencentCloud::Common::AbstractModel
        # @param Mode: 阻断模式,STANDARD_MODE:标准阻断,DEEP_MODE:深度阻断
        # @type Mode: String

        attr_accessor :Mode

        def initialize(mode=nil)
          @Mode = mode
        end

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

      # DescribeBanRegions返回参数结构体
      class DescribeBanRegionsResponse < TencentCloud::Common::AbstractModel
        # @param RegionSet: 地域信息列表
        # @type RegionSet: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RegionSet, :RequestId

        def initialize(regionset=nil, requestid=nil)
          @RegionSet = regionset
          @RequestId = requestid
        end

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

      # DescribeBanStatus请求参数结构体
      class DescribeBanStatusRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeBanStatus返回参数结构体
      class DescribeBanStatusResponse < TencentCloud::Common::AbstractModel
        # @param Status: 阻断开关状态:
        #  0 -- 关闭
        #  1 -- 高级阻断
        #  2 -- 基础阻断(只阻断情报库黑ip)
        # @type Status: Integer
        # @param ShowTips: 是否弹窗提示信息 false: 关闭,true: 开启
        # @type ShowTips: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Status, :ShowTips, :RequestId

        def initialize(status=nil, showtips=nil, requestid=nil)
          @Status = status
          @ShowTips = showtips
          @RequestId = requestid
        end

        def deserialize(params)
          @Status = params['Status']
          @ShowTips = params['ShowTips']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBanWhiteList请求参数结构体
      class DescribeBanWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 查询关键字 </li>
        # @type Filters: Array

        attr_accessor :Offset, :Limit, :Filters

        def initialize(offset=nil, limit=nil, filters=nil)
          @Offset = offset
          @Limit = limit
          @Filters = filters
        end

        def deserialize(params)
          @Offset = params['Offset']
          @Limit = params['Limit']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeBanWhiteList返回参数结构体
      class DescribeBanWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总记录数
        # @type TotalCount: Integer
        # @param WhiteList: 白名单列表
        # @type WhiteList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :WhiteList, :RequestId

        def initialize(totalcount=nil, whitelist=nil, requestid=nil)
          @TotalCount = totalcount
          @WhiteList = whitelist
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['WhiteList'].nil?
            @WhiteList = []
            params['WhiteList'].each do |i|
              banwhitelistdetail_tmp = BanWhiteListDetail.new
              banwhitelistdetail_tmp.deserialize(i)
              @WhiteList << banwhitelistdetail_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineAnalysisData请求参数结构体
      class DescribeBaselineAnalysisDataRequest < TencentCloud::Common::AbstractModel
        # @param StrategyId: 基线策略id
        # @type StrategyId: Integer

        attr_accessor :StrategyId

        def initialize(strategyid=nil)
          @StrategyId = strategyid
        end

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

      # DescribeBaselineAnalysisData返回参数结构体
      class DescribeBaselineAnalysisDataResponse < TencentCloud::Common::AbstractModel
        # @param LatestScanTime: 最后检测时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LatestScanTime: String
        # @param IsGlobal: 是否全部服务器:1-是 0-否
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsGlobal: Integer
        # @param ScanHostCount: 服务器总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanHostCount: Integer
        # @param ScanRuleCount: 检测项总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanRuleCount: Integer
        # @param IfFirstScan: 是否是第一次检测  1是 0不是
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IfFirstScan: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :LatestScanTime, :IsGlobal, :ScanHostCount, :ScanRuleCount, :IfFirstScan, :RequestId

        def initialize(latestscantime=nil, isglobal=nil, scanhostcount=nil, scanrulecount=nil, iffirstscan=nil, requestid=nil)
          @LatestScanTime = latestscantime
          @IsGlobal = isglobal
          @ScanHostCount = scanhostcount
          @ScanRuleCount = scanrulecount
          @IfFirstScan = iffirstscan
          @RequestId = requestid
        end

        def deserialize(params)
          @LatestScanTime = params['LatestScanTime']
          @IsGlobal = params['IsGlobal']
          @ScanHostCount = params['ScanHostCount']
          @ScanRuleCount = params['ScanRuleCount']
          @IfFirstScan = params['IfFirstScan']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineBasicInfo请求参数结构体
      class DescribeBaselineBasicInfoRequest < TencentCloud::Common::AbstractModel
        # @param BaselineName: 基线名称
        # @type BaselineName: String

        attr_accessor :BaselineName

        def initialize(baselinename=nil)
          @BaselineName = baselinename
        end

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

      # DescribeBaselineBasicInfo返回参数结构体
      class DescribeBaselineBasicInfoResponse < TencentCloud::Common::AbstractModel
        # @param BaselineBasicInfoList: 基线基础信息列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BaselineBasicInfoList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BaselineBasicInfoList, :RequestId

        def initialize(baselinebasicinfolist=nil, requestid=nil)
          @BaselineBasicInfoList = baselinebasicinfolist
          @RequestId = requestid
        end

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

      # DescribeBaselineDefaultStrategyList请求参数结构体
      class DescribeBaselineDefaultStrategyListRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeBaselineDefaultStrategyList返回参数结构体
      class DescribeBaselineDefaultStrategyListResponse < TencentCloud::Common::AbstractModel
        # @param StrategyList: 默认策略基础信息列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :StrategyList, :RequestId

        def initialize(strategylist=nil, requestid=nil)
          @StrategyList = strategylist
          @RequestId = requestid
        end

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

      # DescribeBaselineDetail请求参数结构体
      class DescribeBaselineDetailRequest < TencentCloud::Common::AbstractModel
        # @param BaselineId: 基线id
        # @type BaselineId: Integer

        attr_accessor :BaselineId

        def initialize(baselineid=nil)
          @BaselineId = baselineid
        end

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

      # DescribeBaselineDetail返回参数结构体
      class DescribeBaselineDetailResponse < TencentCloud::Common::AbstractModel
        # @param BaselineDetail: 基线详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BaselineDetail: :class:`Tencentcloud::Cwp.v20180228.models.BaselineDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BaselineDetail, :RequestId

        def initialize(baselinedetail=nil, requestid=nil)
          @BaselineDetail = baselinedetail
          @RequestId = requestid
        end

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

      # DescribeBaselineDetectList请求参数结构体
      class DescribeBaselineDetectListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>PolicyName - string - 是否必填:否 - 策略名称</li>
        # <li>PolicyDetectStatus - int - 是否必填:否 - 1:检测中 2:检测完成</li>
        # <li>FirstTime - string - 是否必填:否 - 开始时间</li>
        # <li>LastTime - string - 是否必填:否 - 结束时间</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [HostCount|StartTime|StopTime]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineDetectList返回参数结构体
      class DescribeBaselineDetectListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselinepolicydetect_tmp = BaselinePolicyDetect.new
              baselinepolicydetect_tmp.deserialize(i)
              @List << baselinepolicydetect_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineDetectOverview请求参数结构体
      class DescribeBaselineDetectOverviewRequest < TencentCloud::Common::AbstractModel
        # @param PolicyId: 策略Id
        # @type PolicyId: Integer

        attr_accessor :PolicyId

        def initialize(policyid=nil)
          @PolicyId = policyid
        end

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

      # DescribeBaselineDetectOverview返回参数结构体
      class DescribeBaselineDetectOverviewResponse < TencentCloud::Common::AbstractModel
        # @param HostCount: 检测服务器数
        # @type HostCount: Integer
        # @param ItemCount: 检测项
        # @type ItemCount: Integer
        # @param PolicyCount: 检测策略项
        # @type PolicyCount: Integer
        # @param PassRate: 通过率*100%
        # @type PassRate: Integer
        # @param LatestPassCount: 最近一次检测通过个数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LatestPassCount: Integer
        # @param LatestNotPassCount: 最近一次检测未通过个数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LatestNotPassCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :HostCount, :ItemCount, :PolicyCount, :PassRate, :LatestPassCount, :LatestNotPassCount, :RequestId

        def initialize(hostcount=nil, itemcount=nil, policycount=nil, passrate=nil, latestpasscount=nil, latestnotpasscount=nil, requestid=nil)
          @HostCount = hostcount
          @ItemCount = itemcount
          @PolicyCount = policycount
          @PassRate = passrate
          @LatestPassCount = latestpasscount
          @LatestNotPassCount = latestnotpasscount
          @RequestId = requestid
        end

        def deserialize(params)
          @HostCount = params['HostCount']
          @ItemCount = params['ItemCount']
          @PolicyCount = params['PolicyCount']
          @PassRate = params['PassRate']
          @LatestPassCount = params['LatestPassCount']
          @LatestNotPassCount = params['LatestNotPassCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineDownloadList请求参数结构体
      class DescribeBaselineDownloadListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>Status - int - 是否必填:否 - 0:导出中 1:已完成</li>
        # <li>StartTime - string - 是否必填:否 - 开始时间</li>
        # <li>EndTime - string - 是否必填:否 - 结束时间</li>
        # <li>TaskName - string - 是否必填:否 - 任务名称</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [StartTime|EndTime]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineDownloadList返回参数结构体
      class DescribeBaselineDownloadListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselinedownload_tmp = BaselineDownload.new
              baselinedownload_tmp.deserialize(i)
              @List << baselinedownload_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineEffectHostList请求参数结构体
      class DescribeBaselineEffectHostListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param BaselineId: 基线id
        # @type BaselineId: Integer
        # @param Filters: 过滤条件。
        # <li>AliasName- String- 主机别名</li>
        # <li>Status- Uint- 1已通过  0未通过 5检测中</li>
        # @type Filters: Array
        # @param StrategyId: 策略id
        # @type StrategyId: Integer
        # @param UuidList: 主机uuid数组
        # @type UuidList: Array

        attr_accessor :Limit, :Offset, :BaselineId, :Filters, :StrategyId, :UuidList

        def initialize(limit=nil, offset=nil, baselineid=nil, filters=nil, strategyid=nil, uuidlist=nil)
          @Limit = limit
          @Offset = offset
          @BaselineId = baselineid
          @Filters = filters
          @StrategyId = strategyid
          @UuidList = uuidlist
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          @BaselineId = params['BaselineId']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filters_tmp = Filters.new
              filters_tmp.deserialize(i)
              @Filters << filters_tmp
            end
          end
          @StrategyId = params['StrategyId']
          @UuidList = params['UuidList']
        end
      end

      # DescribeBaselineEffectHostList返回参数结构体
      class DescribeBaselineEffectHostListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param EffectHostList: 影响服务器列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EffectHostList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :EffectHostList, :RequestId

        def initialize(totalcount=nil, effecthostlist=nil, requestid=nil)
          @TotalCount = totalcount
          @EffectHostList = effecthostlist
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['EffectHostList'].nil?
            @EffectHostList = []
            params['EffectHostList'].each do |i|
              baselineeffecthost_tmp = BaselineEffectHost.new
              baselineeffecthost_tmp.deserialize(i)
              @EffectHostList << baselineeffecthost_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineFixList请求参数结构体
      class DescribeBaselineFixListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>ItemName- string - 是否必填:否 - 项名称</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [CreateTime|MoifyTime|FixTime]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineFixList返回参数结构体
      class DescribeBaselineFixListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselinefix_tmp = BaselineFix.new
              baselinefix_tmp.deserialize(i)
              @List << baselinefix_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineHostDetectList请求参数结构体
      class DescribeBaselineHostDetectListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>PolicyId - int64 - 是否必填:否 - 策略Id</li>
        # <li>HostName - string - 是否必填:否 - 主机名称</i>
        # <li>HostIp - string - 是否必填:否 - 主机Ip</i>
        # <li>ItemId - int64 - 是否必填:否 - 项Id</i>
        # <li>RuleId - int64 - 是否必填:否 - 规则Id</li>
        # <li>DetectStatus - int - 是否必填:否 - 检测状态</li>
        # <li>Level - int - 是否必填:否 - 风险等级</li>
        # <li>StartTime - string - 是否必填:否 - 开时时间</li>
        # <li>EndTime - string - 是否必填:否 - 结束时间</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [LastTime|ItemCount|PassedItemCount|NotPassedItemCount|FirstTime]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineHostDetectList返回参数结构体
      class DescribeBaselineHostDetectListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselinehostdetect_tmp = BaselineHostDetect.new
              baselinehostdetect_tmp.deserialize(i)
              @List << baselinehostdetect_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineHostIgnoreList请求参数结构体
      class DescribeBaselineHostIgnoreListRequest < TencentCloud::Common::AbstractModel
        # @param RuleID: 请求的规则
        # @type RuleID: Integer
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer

        attr_accessor :RuleID, :Limit, :Offset

        def initialize(ruleid=nil, limit=nil, offset=nil)
          @RuleID = ruleid
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @RuleID = params['RuleID']
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeBaselineHostIgnoreList返回参数结构体
      class DescribeBaselineHostIgnoreListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 总数
        # @type Total: Integer
        # @param List: 无
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :List, :RequestId

        def initialize(total=nil, list=nil, requestid=nil)
          @Total = total
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselinehost_tmp = BaselineHost.new
              baselinehost_tmp.deserialize(i)
              @List << baselinehost_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineHostRiskTop请求参数结构体
      class DescribeBaselineHostRiskTopRequest < TencentCloud::Common::AbstractModel
        # @param PolicyId: 策略ID
        # @type PolicyId: Integer

        attr_accessor :PolicyId

        def initialize(policyid=nil)
          @PolicyId = policyid
        end

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

      # DescribeBaselineHostRiskTop返回参数结构体
      class DescribeBaselineHostRiskTopResponse < TencentCloud::Common::AbstractModel
        # @param HostRiskTop5: 风险主机top5
        # @type HostRiskTop5: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :HostRiskTop5, :RequestId

        def initialize(hostrisktop5=nil, requestid=nil)
          @HostRiskTop5 = hostrisktop5
          @RequestId = requestid
        end

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

      # DescribeBaselineHostTop请求参数结构体
      class DescribeBaselineHostTopRequest < TencentCloud::Common::AbstractModel
        # @param Top: 动态top值
        # @type Top: Integer
        # @param StrategyId: 策略id
        # @type StrategyId: Integer

        attr_accessor :Top, :StrategyId

        def initialize(top=nil, strategyid=nil)
          @Top = top
          @StrategyId = strategyid
        end

        def deserialize(params)
          @Top = params['Top']
          @StrategyId = params['StrategyId']
        end
      end

      # DescribeBaselineHostTop返回参数结构体
      class DescribeBaselineHostTopResponse < TencentCloud::Common::AbstractModel
        # @param BaselineHostTopList: 主机基线策略事件Top
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BaselineHostTopList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BaselineHostTopList, :RequestId

        def initialize(baselinehosttoplist=nil, requestid=nil)
          @BaselineHostTopList = baselinehosttoplist
          @RequestId = requestid
        end

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

      # DescribeBaselineItemDetectList请求参数结构体
      class DescribeBaselineItemDetectListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>HostId - string - 是否必填:否 - 主机Id</li>
        # <li>RuleId - int64 - 是否必填:否 - 规则Id</li>
        # <li>PolicyId - int64 - 是否必填:否 - 规则Id</li>
        # <li>ItemName - string - 是否必填:否 - 项名称</li>
        # <li>DetectStatus - int - 是否必填:否 - 检测状态</li>
        # <li>Level - int - 是否必填:否 - 风险等级</li>
        # <li>StartTime - string - 是否必填:否 - 开始时间</li>
        # <li>EndTime - string - 是否必填:否 - 结束时间</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [HostCount|FirstTime|LastTime]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineItemDetectList返回参数结构体
      class DescribeBaselineItemDetectListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 总数
        # @type Total: Integer
        # @param List: 无
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :List, :RequestId

        def initialize(total=nil, list=nil, requestid=nil)
          @Total = total
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselineitemdetect_tmp = BaselineItemDetect.new
              baselineitemdetect_tmp.deserialize(i)
              @List << baselineitemdetect_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineItemIgnoreList请求参数结构体
      class DescribeBaselineItemIgnoreListRequest < TencentCloud::Common::AbstractModel
        # @param RuleID: 忽略规则ID
        # @type RuleID: Integer
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 请求偏移默认0
        # @type Offset: Integer
        # @param Filters: <li>CatgoryId - int64 - 是否必填:否 - 规则Id</li>
        # @type Filters: Array
        # @param Order: 排序方式 [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列 [ID]
        # @type By: String

        attr_accessor :RuleID, :Limit, :Offset, :Filters, :Order, :By

        def initialize(ruleid=nil, limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @RuleID = ruleid
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @RuleID = params['RuleID']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineItemIgnoreList返回参数结构体
      class DescribeBaselineItemIgnoreListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselineiteminfo_tmp = BaselineItemInfo.new
              baselineiteminfo_tmp.deserialize(i)
              @List << baselineiteminfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineItemInfo请求参数结构体
      class DescribeBaselineItemInfoRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>ItemId - int64 - 是否必填:否 - 项Id</li>
        # <li>Level - int - 是否必填:否 - 风险等级</li>
        # <li>ItemName - string - 是否必填:否 - 检测项名字</li>
        # <li>RuleId - int - 是否必填:否 - 规则Id</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineItemInfo返回参数结构体
      class DescribeBaselineItemInfoResponse < TencentCloud::Common::AbstractModel
        # @param List: 结果列表
        # @type List: Array
        # @param Total: 总条目数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselineiteminfo_tmp = BaselineItemInfo.new
              baselineiteminfo_tmp.deserialize(i)
              @List << baselineiteminfo_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineItemList请求参数结构体
      class DescribeBaselineItemListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>PolicyId - int64 - 是否必填:否 - 策略Id</li>
        # <li>RuleId - int64 - 是否必填:否 - 规则Id</li>
        # <li>HostId - string - 是否必填:否 - 主机Id</li>
        # <li>HostName - string - 是否必填:否 - 主机名</li>
        # <li>HostIp - string - 是否必填:否 - 主机IP</li>
        # <li>ItemId - String - 是否必填:否 - 检测项Id</li>
        # <li>ItemName - String - 是否必填:否 - 项名称</li>
        # <li>DetectStatus - int - 是否必填:否 - 检测状态[0:未通过|3:通过|5:检测中]</li>
        # <li>Level - int - 是否必填:否 - 风险等级</li>
        # <li>StartTime - string - 是否必填:否 - 开始时间</li>
        # <li>EndTime - string - 是否必填:否 - 结束时间</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineItemList返回参数结构体
      class DescribeBaselineItemListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselineitem_tmp = BaselineItem.new
              baselineitem_tmp.deserialize(i)
              @List << baselineitem_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineItemRiskTop请求参数结构体
      class DescribeBaselineItemRiskTopRequest < TencentCloud::Common::AbstractModel
        # @param PolicyId: 策略ID
        # @type PolicyId: Integer

        attr_accessor :PolicyId

        def initialize(policyid=nil)
          @PolicyId = policyid
        end

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

      # DescribeBaselineItemRiskTop返回参数结构体
      class DescribeBaselineItemRiskTopResponse < TencentCloud::Common::AbstractModel
        # @param RiskItemTop5: 结果数组
        # @type RiskItemTop5: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RiskItemTop5, :RequestId

        def initialize(riskitemtop5=nil, requestid=nil)
          @RiskItemTop5 = riskitemtop5
          @RequestId = requestid
        end

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

      # DescribeBaselineList请求参数结构体
      class DescribeBaselineListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>StrategyId- Uint64 - 基线策略id</li>
        # <li>Status - Uint64 - 处理状态1已通过 0未通过</li>
        # <li>Level - Uint64[] - 处理状态1已通过 0未通过</li>BaselineName
        # <li>BaselineName  - String - 基线名称</li>
        # <li>Quuid- String - 主机quuid</li>
        # <li>Uuid- String - 主机uuid</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          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

      # DescribeBaselineList返回参数结构体
      class DescribeBaselineListResponse < TencentCloud::Common::AbstractModel
        # @param BaselineList: 基线信息列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BaselineList: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BaselineList, :TotalCount, :RequestId

        def initialize(baselinelist=nil, totalcount=nil, requestid=nil)
          @BaselineList = baselinelist
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['BaselineList'].nil?
            @BaselineList = []
            params['BaselineList'].each do |i|
              baselineinfo_tmp = BaselineInfo.new
              baselineinfo_tmp.deserialize(i)
              @BaselineList << baselineinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselinePolicyList请求参数结构体
      class DescribeBaselinePolicyListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>PolicyName - String - 是否必填:否 - 策略名称</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [RuleCount|ItemCount|HostCount]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselinePolicyList返回参数结构体
      class DescribeBaselinePolicyListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselinepolicy_tmp = BaselinePolicy.new
              baselinepolicy_tmp.deserialize(i)
              @List << baselinepolicy_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineRuleCategoryList请求参数结构体
      class DescribeBaselineRuleCategoryListRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeBaselineRuleCategoryList返回参数结构体
      class DescribeBaselineRuleCategoryListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeBaselineRuleDetectList请求参数结构体
      class DescribeBaselineRuleDetectListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>PolicyId - int64 - 是否必填:否 - 策略Id</li>
        # <li>ItemId - int64 - 是否必填:否 - 策略Id</li>
        # <li>RuleName - string - 是否必填:否 - 规则名称</li>
        # <li>DetectStatus - int - 是否必填:否 - 检测状态</li>
        # <li>StartTime - string - 是否必填:否 - 开时时间</li>
        # <li>EndTime - string - 是否必填:否 - 结束时间</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [HostCount|FirstTime|LastTime]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineRuleDetectList返回参数结构体
      class DescribeBaselineRuleDetectListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselineruledetect_tmp = BaselineRuleDetect.new
              baselineruledetect_tmp.deserialize(i)
              @List << baselineruledetect_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineRuleIgnoreList请求参数结构体
      class DescribeBaselineRuleIgnoreListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>RuleName - String - 是否必填:否 - 规则名称</li>
        # <li>ItemId- int - 是否必填:否 - 检测项Id</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [HostCount]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineRuleIgnoreList返回参数结构体
      class DescribeBaselineRuleIgnoreListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 总数
        # @type Total: Integer
        # @param List: 列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :List, :RequestId

        def initialize(total=nil, list=nil, requestid=nil)
          @Total = total
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselinerule_tmp = BaselineRule.new
              baselinerule_tmp.deserialize(i)
              @List << baselinerule_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineRuleList请求参数结构体
      class DescribeBaselineRuleListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>RuleName - String - 是否必填:否 - 规则名称</li>
        # <li>CategoryId - int64 - 是否必填:否 自定义筛选为-1 - 规则分类</li>
        # <li>RuleType - int - 是否必填:否 0:系统 1:自定义 - 规则类型</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineRuleList返回参数结构体
      class DescribeBaselineRuleListResponse < TencentCloud::Common::AbstractModel
        # @param List: 无
        # @type List: Array
        # @param Total: 总数
        # @type Total: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :Total, :RequestId

        def initialize(list=nil, total=nil, requestid=nil)
          @List = list
          @Total = total
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselinerule_tmp = BaselineRule.new
              baselinerule_tmp.deserialize(i)
              @List << baselinerule_tmp
            end
          end
          @Total = params['Total']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineRule请求参数结构体
      class DescribeBaselineRuleRequest < TencentCloud::Common::AbstractModel
        # @param BaselineId: 基线id
        # @type BaselineId: Integer
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Level: 危害等级
        # @type Level: Array
        # @param Status: 状态
        # @type Status: Integer
        # @param Quuid: 主机quuid
        # @type Quuid: String
        # @param Uuid: 主机uuid
        # @type Uuid: String

        attr_accessor :BaselineId, :Limit, :Offset, :Level, :Status, :Quuid, :Uuid

        def initialize(baselineid=nil, limit=nil, offset=nil, level=nil, status=nil, quuid=nil, uuid=nil)
          @BaselineId = baselineid
          @Limit = limit
          @Offset = offset
          @Level = level
          @Status = status
          @Quuid = quuid
          @Uuid = uuid
        end

        def deserialize(params)
          @BaselineId = params['BaselineId']
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Level = params['Level']
          @Status = params['Status']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
        end
      end

      # DescribeBaselineRule返回参数结构体
      class DescribeBaselineRuleResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 分页查询记录总数
        # @type TotalCount: Integer
        # @param BaselineRuleList: 基线检测项列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BaselineRuleList: Array
        # @param ShowRuleRemark: 是否显示说明列:true-是,false-否
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ShowRuleRemark: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :BaselineRuleList, :ShowRuleRemark, :RequestId

        def initialize(totalcount=nil, baselinerulelist=nil, showruleremark=nil, requestid=nil)
          @TotalCount = totalcount
          @BaselineRuleList = baselinerulelist
          @ShowRuleRemark = showruleremark
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['BaselineRuleList'].nil?
            @BaselineRuleList = []
            params['BaselineRuleList'].each do |i|
              baselineruleinfo_tmp = BaselineRuleInfo.new
              baselineruleinfo_tmp.deserialize(i)
              @BaselineRuleList << baselineruleinfo_tmp
            end
          end
          @ShowRuleRemark = params['ShowRuleRemark']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineScanSchedule请求参数结构体
      class DescribeBaselineScanScheduleRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务id
        # @type TaskId: Integer

        attr_accessor :TaskId

        def initialize(taskid=nil)
          @TaskId = taskid
        end

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

      # DescribeBaselineScanSchedule返回参数结构体
      class DescribeBaselineScanScheduleResponse < TencentCloud::Common::AbstractModel
        # @param Schedule: 检测进度(百分比)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Schedule: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Schedule, :RequestId

        def initialize(schedule=nil, requestid=nil)
          @Schedule = schedule
          @RequestId = requestid
        end

        def deserialize(params)
          @Schedule = params['Schedule']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineStrategyDetail请求参数结构体
      class DescribeBaselineStrategyDetailRequest < TencentCloud::Common::AbstractModel
        # @param StrategyId: 用户基线策略id
        # @type StrategyId: Integer

        attr_accessor :StrategyId

        def initialize(strategyid=nil)
          @StrategyId = strategyid
        end

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

      # DescribeBaselineStrategyDetail返回参数结构体
      class DescribeBaselineStrategyDetailResponse < TencentCloud::Common::AbstractModel
        # @param PassRate: 策略扫描通过率
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PassRate: Integer
        # @param StrategyName: 策略名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyName: String
        # @param ScanCycle: 策略扫描周期(天)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanCycle: String
        # @param ScanAt: 定期检测时间, 该时间下发扫描
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanAt: String
        # @param IsGlobal: 扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsGlobal: Integer
        # @param MachineType: 云服务器类型:
        # cvm:腾讯云服务器
        # bm:裸金属
        # ecm:边缘计算主机
        # lh: 轻量应用服务器
        # ohter: 混合云机器
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineType: String
        # @param Region: 主机地域
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Region: String
        # @param Quuids: 用户该策略下的所有主机id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuids: Array
        # @param CategoryIds: 用户该策略下所有的基线id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CategoryIds: Array
        # @param IfScanned: 1 表示扫描过, 0没扫描过
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IfScanned: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PassRate, :StrategyName, :ScanCycle, :ScanAt, :IsGlobal, :MachineType, :Region, :Quuids, :CategoryIds, :IfScanned, :RequestId

        def initialize(passrate=nil, strategyname=nil, scancycle=nil, scanat=nil, isglobal=nil, machinetype=nil, region=nil, quuids=nil, categoryids=nil, ifscanned=nil, requestid=nil)
          @PassRate = passrate
          @StrategyName = strategyname
          @ScanCycle = scancycle
          @ScanAt = scanat
          @IsGlobal = isglobal
          @MachineType = machinetype
          @Region = region
          @Quuids = quuids
          @CategoryIds = categoryids
          @IfScanned = ifscanned
          @RequestId = requestid
        end

        def deserialize(params)
          @PassRate = params['PassRate']
          @StrategyName = params['StrategyName']
          @ScanCycle = params['ScanCycle']
          @ScanAt = params['ScanAt']
          @IsGlobal = params['IsGlobal']
          @MachineType = params['MachineType']
          @Region = params['Region']
          @Quuids = params['Quuids']
          @CategoryIds = params['CategoryIds']
          @IfScanned = params['IfScanned']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineStrategyList请求参数结构体
      class DescribeBaselineStrategyListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Enabled: 规则开关,1:打开 0:关闭  2:全部
        # @type Enabled: Integer

        attr_accessor :Limit, :Offset, :Enabled

        def initialize(limit=nil, offset=nil, enabled=nil)
          @Limit = limit
          @Offset = offset
          @Enabled = enabled
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Enabled = params['Enabled']
        end
      end

      # DescribeBaselineStrategyList返回参数结构体
      class DescribeBaselineStrategyListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 分页查询记录的总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param StrategyList: 用户策略信息列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :StrategyList, :RequestId

        def initialize(totalcount=nil, strategylist=nil, requestid=nil)
          @TotalCount = totalcount
          @StrategyList = strategylist
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['StrategyList'].nil?
            @StrategyList = []
            params['StrategyList'].each do |i|
              strategy_tmp = Strategy.new
              strategy_tmp.deserialize(i)
              @StrategyList << strategy_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBaselineTop请求参数结构体
      class DescribeBaselineTopRequest < TencentCloud::Common::AbstractModel
        # @param Top: 动态top值
        # @type Top: Integer
        # @param StrategyId: 策略id
        # @type StrategyId: Integer

        attr_accessor :Top, :StrategyId

        def initialize(top=nil, strategyid=nil)
          @Top = top
          @StrategyId = strategyid
        end

        def deserialize(params)
          @Top = params['Top']
          @StrategyId = params['StrategyId']
        end
      end

      # DescribeBaselineTop返回参数结构体
      class DescribeBaselineTopResponse < TencentCloud::Common::AbstractModel
        # @param RuleTopList: 检测项Top列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleTopList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RuleTopList, :RequestId

        def initialize(ruletoplist=nil, requestid=nil)
          @RuleTopList = ruletoplist
          @RequestId = requestid
        end

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

      # DescribeBaselineWeakPasswordList请求参数结构体
      class DescribeBaselineWeakPasswordListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>WeakPassword - string - 是否必填:否 - 弱口令</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式 [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列 [CreateTime|ModifyTime]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBaselineWeakPasswordList返回参数结构体
      class DescribeBaselineWeakPasswordListResponse < TencentCloud::Common::AbstractModel
        # @param Total: 总数
        # @type Total: Integer
        # @param List: 无
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Total, :List, :RequestId

        def initialize(total=nil, list=nil, requestid=nil)
          @Total = total
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @Total = params['Total']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              baselineweakpassword_tmp = BaselineWeakPassword.new
              baselineweakpassword_tmp.deserialize(i)
              @List << baselineweakpassword_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBashEventsInfoNew请求参数结构体
      class DescribeBashEventsInfoNewRequest < TencentCloud::Common::AbstractModel
        # @param Id: 事件id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeBashEventsInfoNew返回参数结构体
      class DescribeBashEventsInfoNewResponse < TencentCloud::Common::AbstractModel
        # @param BashEventsInfo: 事件详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BashEventsInfo: :class:`Tencentcloud::Cwp.v20180228.models.BashEventsInfoNew`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BashEventsInfo, :RequestId

        def initialize(basheventsinfo=nil, requestid=nil)
          @BashEventsInfo = basheventsinfo
          @RequestId = requestid
        end

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

      # DescribeBashEventsInfo请求参数结构体
      class DescribeBashEventsInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 事件id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeBashEventsInfo返回参数结构体
      class DescribeBashEventsInfoResponse < TencentCloud::Common::AbstractModel
        # @param BashEventsInfo: 事件详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BashEventsInfo: :class:`Tencentcloud::Cwp.v20180228.models.BashEventsInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BashEventsInfo, :RequestId

        def initialize(basheventsinfo=nil, requestid=nil)
          @BashEventsInfo = basheventsinfo
          @RequestId = requestid
        end

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

      # DescribeBashEventsNew请求参数结构体
      class DescribeBashEventsNewRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Filters: 过滤条件。
        # <li>HostName - String - 是否必填:否 - 主机名</li>
        # <li>Hostip - String - 是否必填:否 - 主机内网IP</li>
        # <li>HostIp - String - 是否必填:否 - 主机内网IP</li>
        # <li>RuleCategory - Int - 是否必填:否 - 策略类型,全部或者单选(0:系统 1:用户)</li>
        # <li>RuleName - String - 是否必填:否 - 策略名称</li>
        # <li>RuleLevel - Int - 是否必填:否 - 威胁等级,可以多选</li>
        # <li>Status - Int - 是否必填:否 - 处理状态,可多选(0:待处理 1:已处理 2:已加白  3:已忽略 4:已删除 5:已拦截)</li>
        # <li>DetectBy - Int - 是否必填:否 - 数据来源,可多选(0:bash日志 1:实时监控)</li>
        # <li>StartTime - String - 是否必填:否 - 开始时间</li>
        # <li>EndTime - String - 是否必填:否 - 结束时间</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式:根据请求次数排序:asc-升序/desc-降序
        # @type Order: String
        # @param By: 排序字段:CreateTime-发生时间。ModifyTime-处理时间
        # @type By: String

        attr_accessor :Limit, :Filters, :Offset, :Order, :By

        def initialize(limit=nil, filters=nil, offset=nil, order=nil, by=nil)
          @Limit = limit
          @Filters = filters
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBashEventsNew返回参数结构体
      class DescribeBashEventsNewResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 高危命令事件列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              basheventnew_tmp = BashEventNew.new
              basheventnew_tmp.deserialize(i)
              @List << basheventnew_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBashEvents请求参数结构体
      class DescribeBashEventsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Filters: 过滤条件。
        # <li>HostName - String - 是否必填:否 - 主机名</li>
        # <li>Hostip - String - 是否必填:否 - 主机内网IP</li>
        # <li>RuleCategory - Int - 是否必填:否 - 策略类型,全部或者单选(0:系统 1:用户)</li>
        # <li>RuleName - String - 是否必填:否 - 策略名称</li>
        # <li>RuleLevel - Int - 是否必填:否 - 威胁等级,可以多选</li>
        # <li>Status - Int - 是否必填:否 - 处理状态,可多选(0:待处理 1:已处理 2:已加白  3:已忽略 4:已删除 5:已拦截)</li>
        # <li>DetectBy - Int - 是否必填:否 - 数据来源,可多选(0:bash日志 1:实时监控)</li>
        # <li>StartTime - String - 是否必填:否 - 开始时间</li>
        # <li>EndTime - String - 是否必填:否 - 结束时间</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式:根据请求次数排序:asc-升序/desc-降序
        # @type Order: String
        # @param By: 排序字段:CreateTime-发生时间。ModifyTime-处理时间
        # @type By: String

        attr_accessor :Limit, :Filters, :Offset, :Order, :By

        def initialize(limit=nil, filters=nil, offset=nil, order=nil, by=nil)
          @Limit = limit
          @Filters = filters
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBashEvents返回参数结构体
      class DescribeBashEventsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 高危命令事件列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              bashevent_tmp = BashEvent.new
              bashevent_tmp.deserialize(i)
              @List << bashevent_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBashPolicies请求参数结构体
      class DescribeBashPoliciesRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Name - String - 是否必填:否 - 规则名称</li>
        # <li>Rule - String - 是否必填:否 - 规则内容</li>
        # <li>Level - Int - 是否必填:否 - 威胁等级</li>
        # <li>White - Int - 是否必填:否 - 白名单类型</li>
        # <li>Category - Int - 是否必填:否 - 策略类型</li>
        # <li>BashAction - Int - 是否必填:否 - 操作动作</li>
        # <li>Enable - Int - 是否必填:否 - 生效状态</li>
        # <li>Id - Int - 是否必填:否 - 策略ID</li>
        # <li>PolicyId - Int - 是否必填:否 - 策略ID</li>
        # <li>RuleId - Int - 是否必填:否 - 策略ID</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeBashPolicies返回参数结构体
      class DescribeBashPoliciesResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表内容
        # @type List: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              bashpolicy_tmp = BashPolicy.new
              bashpolicy_tmp.deserialize(i)
              @List << bashpolicy_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBashRules请求参数结构体
      class DescribeBashRulesRequest < TencentCloud::Common::AbstractModel
        # @param Type: 0-系统规则; 1-用户规则
        # @type Type: Integer
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 关键字(规则名称)</li>
        # @type Filters: Array

        attr_accessor :Type, :Limit, :Offset, :Filters

        def initialize(type=nil, limit=nil, offset=nil, filters=nil)
          @Type = type
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Type = params['Type']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeBashRules返回参数结构体
      class DescribeBashRulesResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表内容
        # @type List: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              bashrule_tmp = BashRule.new
              bashrule_tmp.deserialize(i)
              @List << bashrule_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeBruteAttackList请求参数结构体
      class DescribeBruteAttackListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 需要返回的数量,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>Uuid - String - 是否必填:否 - 主机安全唯一Uuid</li>
        # <li>Quuid - String - 是否必填:否 - 云服务器uuid</li>
        # <li>Status - String - 是否必填:否 - 状态筛选:失败:FAILED 成功:SUCCESS</li>
        # <li>UserName - String - 是否必填:否 - UserName筛选</li>
        # <li>SrcIp - String - 是否必填:否 - 来源ip筛选</li>
        # <li>CreateBeginTime - String - 是否必填:否 - 首次攻击时间筛选,开始时间</li>
        # <li>CreateEndTime - String - 是否必填:否 - 首次攻击时间筛选,结束时间</li>
        # <li>ModifyBeginTime - String - 是否必填:否 - 最近攻击时间筛选,开始时间</li>
        # <li>ModifyEndTime - String - 是否必填:否 - 最近攻击时间筛选,结束时间</li>
        # <li>Banned - String - 是否必填:否 - 阻断状态筛选,多个用","分割:0-未阻断(全局ZK开关关闭),82-未阻断(非专业版),83-未阻断(已加白名单),1-已阻断,2-未阻断-程序异常,3-未阻断-内网攻击暂不支持阻断,4-未阻断-安平暂不支持阻断</li>
        # @type Filters: Array
        # @param Order: 排序方式:根据请求次数排序:asc-升序/desc-降序
        # @type Order: String
        # @param By: 排序字段:CreateTime-首次攻击时间
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeBruteAttackList返回参数结构体
      class DescribeBruteAttackListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param BruteAttackList: 密码破解列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BruteAttackList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :BruteAttackList, :RequestId

        def initialize(totalcount=nil, bruteattacklist=nil, requestid=nil)
          @TotalCount = totalcount
          @BruteAttackList = bruteattacklist
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['BruteAttackList'].nil?
            @BruteAttackList = []
            params['BruteAttackList'].each do |i|
              bruteattackinfo_tmp = BruteAttackInfo.new
              bruteattackinfo_tmp.deserialize(i)
              @BruteAttackList << bruteattackinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeBruteAttackRules请求参数结构体
      class DescribeBruteAttackRulesRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeBruteAttackRules返回参数结构体
      class DescribeBruteAttackRulesResponse < TencentCloud::Common::AbstractModel
        # @param Rules: 爆破阻断规则列表
        # @type Rules: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Rules, :RequestId

        def initialize(rules=nil, requestid=nil)
          @Rules = rules
          @RequestId = requestid
        end

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

      # DescribeCanFixVulMachine请求参数结构体
      class DescribeCanFixVulMachineRequest < TencentCloud::Common::AbstractModel
        # @param VulIds: 漏洞id 支持多个漏洞
        # @type VulIds: Array
        # @param Quuids: 需要修复的主机,和VulIds是and 的关系
        # @type Quuids: Array

        attr_accessor :VulIds, :Quuids

        def initialize(vulids=nil, quuids=nil)
          @VulIds = vulids
          @Quuids = quuids
        end

        def deserialize(params)
          @VulIds = params['VulIds']
          @Quuids = params['Quuids']
        end
      end

      # DescribeCanFixVulMachine返回参数结构体
      class DescribeCanFixVulMachineResponse < TencentCloud::Common::AbstractModel
        # @param VulInfo: 主机漏洞修护信息列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulInfo: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulInfo, :RequestId

        def initialize(vulinfo=nil, requestid=nil)
          @VulInfo = vulinfo
          @RequestId = requestid
        end

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

      # DescribeCanNotSeparateMachine请求参数结构体
      class DescribeCanNotSeparateMachineRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 需要修改的事件id 数组,支持批量
        # @type Ids: Array
        # @param UpdateAll: 是否更新全部,即是否对所有的事件进行操作,当ids 不为空时,此参数无效
        # @type UpdateAll: Boolean
        # @param ExcludeId: 排除的事件id,当操作全部事件时,需要排除这次id
        # @type ExcludeId: Array
        # @param Filters: <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>FilePath - String - 是否必填:否 - 路径筛选</li>
        # <li>VirusName - String - 是否必填:否 - 描述筛选</li>
        # <li>CreateBeginTime - String - 是否必填:否 - 创建时间筛选-开始时间</li>
        # <li>CreateEndTime - String - 是否必填:否 - 创建时间筛选-结束时间</li>
        # <li>Status - String - 是否必填:否 - 状态筛选 4待处理,5信任,6已隔离,10隔离中,11恢复隔离中</li>
        # @type Filters: Array

        attr_accessor :Ids, :UpdateAll, :ExcludeId, :Filters

        def initialize(ids=nil, updateall=nil, excludeid=nil, filters=nil)
          @Ids = ids
          @UpdateAll = updateall
          @ExcludeId = excludeid
          @Filters = filters
        end

        def deserialize(params)
          @Ids = params['Ids']
          @UpdateAll = params['UpdateAll']
          @ExcludeId = params['ExcludeId']
          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

      # DescribeCanNotSeparateMachine返回参数结构体
      class DescribeCanNotSeparateMachineResponse < TencentCloud::Common::AbstractModel
        # @param List: 不可隔离主机列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeClientException请求参数结构体
      class DescribeClientExceptionRequest < TencentCloud::Common::AbstractModel
        # @param ExceptionType: 客户端异常类型 1:客户端离线,2:客户端卸载
        # @type ExceptionType: Integer
        # @param Offset: 分页的偏移量
        # @type Offset: Integer
        # @param Limit: 分页单页限制数目,不为0,最大值100
        # @type Limit: Integer
        # @param StartTime: 起始时间 `2006-01-02 15:04:05` 格式
        # @type StartTime: String
        # @param EndTime: 结束时间 `2006-01-02 15:04:05` 格式
        # @type EndTime: String

        attr_accessor :ExceptionType, :Offset, :Limit, :StartTime, :EndTime

        def initialize(exceptiontype=nil, offset=nil, limit=nil, starttime=nil, endtime=nil)
          @ExceptionType = exceptiontype
          @Offset = offset
          @Limit = limit
          @StartTime = starttime
          @EndTime = endtime
        end

        def deserialize(params)
          @ExceptionType = params['ExceptionType']
          @Offset = params['Offset']
          @Limit = params['Limit']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
        end
      end

      # DescribeClientException返回参数结构体
      class DescribeClientExceptionResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 事件总数量
        # @type TotalCount: Integer
        # @param Records: 事件详情
        # @type Records: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :Records, :RequestId

        def initialize(totalcount=nil, records=nil, requestid=nil)
          @TotalCount = totalcount
          @Records = records
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['Records'].nil?
            @Records = []
            params['Records'].each do |i|
              recordinfo_tmp = RecordInfo.new
              recordinfo_tmp.deserialize(i)
              @Records << recordinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeCloudProtectServiceOrderList请求参数结构体
      class DescribeCloudProtectServiceOrderListRequest < TencentCloud::Common::AbstractModel
        # @param Order: 排序字段,当前支持: BeginTime
        # @type Order: String
        # @param By: 排序方式,当前支持:
        # ASC 正序,DESC 倒序
        # @type By: String

        attr_accessor :Order, :By

        def initialize(order=nil, by=nil)
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeCloudProtectServiceOrderList返回参数结构体
      class DescribeCloudProtectServiceOrderListResponse < TencentCloud::Common::AbstractModel
        # @param Data: 云护航订单列表信息
        # @type Data: Array
        # @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 = []
            params['Data'].each do |i|
              cloudprotectservice_tmp = CloudProtectService.new
              cloudprotectservice_tmp.deserialize(i)
              @Data << cloudprotectservice_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeComponentStatistics请求参数结构体
      class DescribeComponentStatisticsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # ComponentName - String - 是否必填:否 - 组件名称
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeComponentStatistics返回参数结构体
      class DescribeComponentStatisticsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 组件统计列表记录总数。
        # @type TotalCount: Integer
        # @param ComponentStatistics: 组件统计列表数据数组。
        # @type ComponentStatistics: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :ComponentStatistics, :RequestId

        def initialize(totalcount=nil, componentstatistics=nil, requestid=nil)
          @TotalCount = totalcount
          @ComponentStatistics = componentstatistics
          @RequestId = requestid
        end

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

      # DescribeDefenceEventDetail请求参数结构体
      class DescribeDefenceEventDetailRequest < TencentCloud::Common::AbstractModel
        # @param Id: 漏洞事件id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeDefenceEventDetail返回参数结构体
      class DescribeDefenceEventDetailResponse < TencentCloud::Common::AbstractModel
        # @param Data: 漏洞事件详细信息
        # @type Data: :class:`Tencentcloud::Cwp.v20180228.models.VulDefenceEventDetail`
        # @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 = VulDefenceEventDetail.new
            @Data.deserialize(params['Data'])
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeDirectConnectInstallCommand请求参数结构体
      class DescribeDirectConnectInstallCommandRequest < TencentCloud::Common::AbstractModel
        # @param RegionCode: 地域标示
        # @type RegionCode: String
        # @param VpcId: Vpc的ID
        # @type VpcId: String
        # @param ExpireDate: 命令过期时间
        # @type ExpireDate: String

        attr_accessor :RegionCode, :VpcId, :ExpireDate

        def initialize(regioncode=nil, vpcid=nil, expiredate=nil)
          @RegionCode = regioncode
          @VpcId = vpcid
          @ExpireDate = expiredate
        end

        def deserialize(params)
          @RegionCode = params['RegionCode']
          @VpcId = params['VpcId']
          @ExpireDate = params['ExpireDate']
        end
      end

      # DescribeDirectConnectInstallCommand返回参数结构体
      class DescribeDirectConnectInstallCommandResponse < TencentCloud::Common::AbstractModel
        # @param Ip: 安装命令的ip
        # @type Ip: String
        # @param Token: 安装命令的token
        # @type Token: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Ip, :Token, :RequestId

        def initialize(ip=nil, token=nil, requestid=nil)
          @Ip = ip
          @Token = token
          @RequestId = requestid
        end

        def deserialize(params)
          @Ip = params['Ip']
          @Token = params['Token']
          @RequestId = params['RequestId']
        end
      end

      # DescribeESAggregations请求参数结构体
      class DescribeESAggregationsRequest < TencentCloud::Common::AbstractModel
        # @param Query: ES聚合条件JSON
        # @type Query: String

        attr_accessor :Query

        def initialize(query=nil)
          @Query = query
        end

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

      # DescribeESAggregations返回参数结构体
      class DescribeESAggregationsResponse < TencentCloud::Common::AbstractModel
        # @param Data: ES聚合结果JSON
        # @type Data: String
        # @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)
          @Data = params['Data']
          @RequestId = params['RequestId']
        end
      end

      # DescribeEmergencyResponseList请求参数结构体
      class DescribeEmergencyResponseListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Keyword- String - 是否必填:否 - 关键词过滤,</li>
        # <li>Uuids - String - 是否必填:否 - 主机id过滤</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,最大值为100
        # @type Limit: Integer
        # @param Offset: 排序步长
        # @type Offset: Integer
        # @param Order: 排序方法
        # @type Order: String
        # @param By: 排序字段 StartTime,EndTime
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

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

      # DescribeEmergencyResponseList返回参数结构体
      class DescribeEmergencyResponseListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 应急响应列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              emergencyresponseinfo_tmp = EmergencyResponseInfo.new
              emergencyresponseinfo_tmp.deserialize(i)
              @List << emergencyresponseinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeEmergencyVulList请求参数结构体
      class DescribeEmergencyVulListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Status - String - 是否必填:是 - 漏洞状态筛选,0//未检测 1有风险 ,2无风险 ,3 检查中展示progress</li>
        # <li>Level - String - 是否必填:否 - 漏洞等级筛选 1:低 2:中 3:高 4:提示</li>
        # <li>VulName- String - 是否必填:否 - 漏洞名称搜索</li>
        # <li>Uuids- String - 是否必填:否 - 主机uuid</li>
        # <li>IsSupportDefense - int- 是否必填:否 - 是否支持防御 0:不支持 1:支持</li>
        # @type Filters: Array
        # @param Order: 排序方式 desc , asc
        # @type Order: String
        # @param By: 排序字段 PublishDate  LastScanTime HostCount
        # @type By: String
        # @param HotspotAttack: 是否热点漏洞
        # @type HotspotAttack: Boolean

        attr_accessor :Limit, :Offset, :Filters, :Order, :By, :HotspotAttack

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil, hotspotattack=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
          @HotspotAttack = hotspotattack
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filters_tmp = Filters.new
              filters_tmp.deserialize(i)
              @Filters << filters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
          @HotspotAttack = params['HotspotAttack']
        end
      end

      # DescribeEmergencyVulList返回参数结构体
      class DescribeEmergencyVulListResponse < TencentCloud::Common::AbstractModel
        # @param List: 漏洞列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 漏洞总条数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param ExistsRisk: 是否存在风险
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ExistsRisk: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :ExistsRisk, :RequestId

        def initialize(list=nil, totalcount=nil, existsrisk=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @ExistsRisk = existsrisk
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              emergencyvul_tmp = EmergencyVul.new
              emergencyvul_tmp.deserialize(i)
              @List << emergencyvul_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @ExistsRisk = params['ExistsRisk']
          @RequestId = params['RequestId']
        end
      end

      # DescribeEventByTable请求参数结构体
      class DescribeEventByTableRequest < TencentCloud::Common::AbstractModel
        # @param TableName: 事件表名
        # @type TableName: String
        # @param Ids: 事件表id号
        # @type Ids: Array

        attr_accessor :TableName, :Ids

        def initialize(tablename=nil, ids=nil)
          @TableName = tablename
          @Ids = ids
        end

        def deserialize(params)
          @TableName = params['TableName']
          @Ids = params['Ids']
        end
      end

      # DescribeEventByTable返回参数结构体
      class DescribeEventByTableResponse < TencentCloud::Common::AbstractModel
        # @param Type: 告警类型,爆破bruteattack,高危命令bash,恶意文件malware,恶意请求risk_dns,本地提权privilege_escalation,反弹shell reverse_shell,内存马java_shell
        # @type Type: String
        # @param Value: 事件内容的json编码字符串,字段结构对齐事件表
        # @type Value: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Type, :Value, :RequestId

        def initialize(type=nil, value=nil, requestid=nil)
          @Type = type
          @Value = value
          @RequestId = requestid
        end

        def deserialize(params)
          @Type = params['Type']
          @Value = params['Value']
          @RequestId = params['RequestId']
        end
      end

      # DescribeExpertServiceList请求参数结构体
      class DescribeExpertServiceListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Keyword- String - 是否必填:否 - 关键词过滤,</li>
        # <li>Uuids - String - 是否必填:否 - 主机id过滤</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,最大值为100
        # @type Limit: Integer
        # @param Offset: 排序步长
        # @type Offset: Integer
        # @param Order: 排序方法
        # @type Order: String
        # @param By: 排序字段 StartTime,EndTime
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

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

      # DescribeExpertServiceList返回参数结构体
      class DescribeExpertServiceListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 安全管家数据
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              securitybutlerinfo_tmp = SecurityButlerInfo.new
              securitybutlerinfo_tmp.deserialize(i)
              @List << securitybutlerinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeExpertServiceOrderList请求参数结构体
      class DescribeExpertServiceOrderListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>InquireType- String - 是否必填:否 - 订单类型过滤,</li>
        # @type Filters: Array
        # @param Limit: 分页条数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页步长
        # @type Offset: Integer

        attr_accessor :Filters, :Limit, :Offset

        def initialize(filters=nil, limit=nil, offset=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
        end

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

      # DescribeExpertServiceOrderList返回参数结构体
      class DescribeExpertServiceOrderListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 订单列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              expertserviceorderinfo_tmp = ExpertServiceOrderInfo.new
              expertserviceorderinfo_tmp.deserialize(i)
              @List << expertserviceorderinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeExportMachines请求参数结构体
      class DescribeExportMachinesRequest < TencentCloud::Common::AbstractModel
        # @param MachineType: 云主机类型。
        # <li>CVM:表示虚拟主机</li>
        # <li>BM:  表示黑石物理机</li>
        # @type MachineType: String
        # @param MachineRegion: 机器所属地域。如:ap-guangzhou,ap-shanghai
        # @type MachineRegion: String
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 查询关键字 </li>
        # <li>Status - String - 是否必填:否 - 客户端在线状态(OFFLINE: 离线 | ONLINE: 在线 | UNINSTALLED:未安装)</li>
        # <li>Version - String  是否必填:否 - 当前防护版本( PRO_VERSION:专业版 | BASIC_VERSION:基础版)</li>
        # 每个过滤条件只支持一个值,暂不支持多个值“或”关系查询
        # @type Filters: Array
        # @param ProjectIds: 机器所属业务ID列表
        # @type ProjectIds: Array

        attr_accessor :MachineType, :MachineRegion, :Limit, :Offset, :Filters, :ProjectIds

        def initialize(machinetype=nil, machineregion=nil, limit=nil, offset=nil, filters=nil, projectids=nil)
          @MachineType = machinetype
          @MachineRegion = machineregion
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @ProjectIds = projectids
        end

        def deserialize(params)
          @MachineType = params['MachineType']
          @MachineRegion = params['MachineRegion']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @ProjectIds = params['ProjectIds']
        end
      end

      # DescribeExportMachines返回参数结构体
      class DescribeExportMachinesResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # DescribeFastAnalysis请求参数结构体
      class DescribeFastAnalysisRequest < TencentCloud::Common::AbstractModel
        # @param From: 起始时间,单位ms
        # @type From: Integer
        # @param To: 结束时间,单位ms
        # @type To: Integer
        # @param Query: 查询语句,语句长度最大为4096
        # @type Query: String
        # @param FieldName: 日志字段名称
        # @type FieldName: String

        attr_accessor :From, :To, :Query, :FieldName

        def initialize(from=nil, to=nil, query=nil, fieldname=nil)
          @From = from
          @To = to
          @Query = query
          @FieldName = fieldname
        end

        def deserialize(params)
          @From = params['From']
          @To = params['To']
          @Query = params['Query']
          @FieldName = params['FieldName']
        end
      end

      # DescribeFastAnalysis返回参数结构体
      class DescribeFastAnalysisResponse < TencentCloud::Common::AbstractModel
        # @param FieldValueRatioInfos: 分析统计信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FieldValueRatioInfos: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FieldValueRatioInfos, :TotalCount, :RequestId

        def initialize(fieldvalueratioinfos=nil, totalcount=nil, requestid=nil)
          @FieldValueRatioInfos = fieldvalueratioinfos
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['FieldValueRatioInfos'].nil?
            @FieldValueRatioInfos = []
            params['FieldValueRatioInfos'].each do |i|
              fieldvalueratioinfo_tmp = FieldValueRatioInfo.new
              fieldvalueratioinfo_tmp.deserialize(i)
              @FieldValueRatioInfos << fieldvalueratioinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeFileTamperEventRuleInfo请求参数结构体
      class DescribeFileTamperEventRuleInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 事件id
        # @type Id: Integer
        # @param Limit: 一页多少个 控制返回的uuids条数
        # @type Limit: Integer
        # @param Offset: 控制返回的uuids条数
        # @type Offset: Integer

        attr_accessor :Id, :Limit, :Offset

        def initialize(id=nil, limit=nil, offset=nil)
          @Id = id
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @Id = params['Id']
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeFileTamperEventRuleInfo返回参数结构体
      class DescribeFileTamperEventRuleInfoResponse < TencentCloud::Common::AbstractModel
        # @param FileTamperRuleDetail: 规则详情信息
        # @type FileTamperRuleDetail: :class:`Tencentcloud::Cwp.v20180228.models.FileTamperRuleDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FileTamperRuleDetail, :RequestId

        def initialize(filetamperruledetail=nil, requestid=nil)
          @FileTamperRuleDetail = filetamperruledetail
          @RequestId = requestid
        end

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

      # DescribeFileTamperEvents请求参数结构体
      class DescribeFileTamperEventsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Status - String - 是否必填:否 - 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略</li>
        # <li>ModifyTime - String - 是否必填:否 - 最近发生时间</li>
        # <li>Uuid- String - 是否必填:否 - 主机uuid查询</li>
        # <li>RuleCategory- string - 是否必填:否 - 规则类别 0 系统规则 1 自定义规则</li>
        # <li>FileAction- string - 是否必填:否 - 威胁行为 read 读取文件 write 写文件</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式 ASC,DESC
        # @type Order: String
        # @param By: 排序字段 CreateTime、ModifyTime
        # @type By: String

        attr_accessor :Filters, :Offset, :Limit, :Order, :By

        def initialize(filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

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

      # DescribeFileTamperEvents返回参数结构体
      class DescribeFileTamperEventsResponse < TencentCloud::Common::AbstractModel
        # @param List: 核心文件事件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 数据总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              filetamperevent_tmp = FileTamperEvent.new
              filetamperevent_tmp.deserialize(i)
              @List << filetamperevent_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeFileTamperRuleCount请求参数结构体
      class DescribeFileTamperRuleCountRequest < TencentCloud::Common::AbstractModel
        # @param Uuids: 查询的主机uuids 一次性最多只能查100个
        # @type Uuids: Array

        attr_accessor :Uuids

        def initialize(uuids=nil)
          @Uuids = uuids
        end

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

      # DescribeFileTamperRuleCount返回参数结构体
      class DescribeFileTamperRuleCountResponse < TencentCloud::Common::AbstractModel
        # @param List: 主机关联核心文件规则数量信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeFileTamperRuleInfo请求参数结构体
      class DescribeFileTamperRuleInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则id
        # @type Id: Integer
        # @param Limit: 控制返回的uuids 数量
        # @type Limit: Integer
        # @param Offset: 控制返回的uuids 数量,起始位置
        # @type Offset: Integer

        attr_accessor :Id, :Limit, :Offset

        def initialize(id=nil, limit=nil, offset=nil)
          @Id = id
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @Id = params['Id']
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeFileTamperRuleInfo返回参数结构体
      class DescribeFileTamperRuleInfoResponse < TencentCloud::Common::AbstractModel
        # @param FileTamperRuleDetail: 规则详情信息
        # @type FileTamperRuleDetail: :class:`Tencentcloud::Cwp.v20180228.models.FileTamperRuleDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FileTamperRuleDetail, :RequestId

        def initialize(filetamperruledetail=nil, requestid=nil)
          @FileTamperRuleDetail = filetamperruledetail
          @RequestId = requestid
        end

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

      # DescribeFileTamperRules请求参数结构体
      class DescribeFileTamperRulesRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>RuleCategory- string- 规则类别  0=系统规则,1=用户规则</li>
        # <li>Name- String - 规则名称</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式 ASC,DESC
        # @type Order: String
        # @param By: 排序字段 CreateTime、ModifyTime、HostCount
        # @type By: String

        attr_accessor :Filters, :Offset, :Limit, :Order, :By

        def initialize(filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

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

      # DescribeFileTamperRules返回参数结构体
      class DescribeFileTamperRulesResponse < TencentCloud::Common::AbstractModel
        # @param List: 规则列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              filetamperruleinfo_tmp = FileTamperRuleInfo.new
              filetamperruleinfo_tmp.deserialize(i)
              @List << filetamperruleinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeGeneralStat请求参数结构体
      class DescribeGeneralStatRequest < TencentCloud::Common::AbstractModel
        # @param MachineType: 云主机类型。
        # <li>CVM:表示腾讯云服务器</li>
        # <li>BM:  表示黑石物理机</li>
        # <li>ECM:  表示边缘计算服务器</li>
        # <li>LH:  表示轻量应用服务器</li>
        # <li>Other:  表示混合云机器</li>
        # @type MachineType: String
        # @param MachineRegion: 机器所属地域。如:ap-guangzhou,ap-shanghai
        # @type MachineRegion: String

        attr_accessor :MachineType, :MachineRegion

        def initialize(machinetype=nil, machineregion=nil)
          @MachineType = machinetype
          @MachineRegion = machineregion
        end

        def deserialize(params)
          @MachineType = params['MachineType']
          @MachineRegion = params['MachineRegion']
        end
      end

      # DescribeGeneralStat返回参数结构体
      class DescribeGeneralStatResponse < TencentCloud::Common::AbstractModel
        # @param MachinesAll: 云主机总数
        # @type MachinesAll: Integer
        # @param MachinesUninstalled: 云主机没有安装主机安全客户端的总数
        # @type MachinesUninstalled: Integer
        # @param AgentsAll: 主机安全客户端总数的总数
        # @type AgentsAll: Integer
        # @param AgentsOnline: 主机安全客户端在线的总数
        # @type AgentsOnline: Integer
        # @param AgentsOffline: 主机安全客户端 离线+关机 的总数
        # @type AgentsOffline: Integer
        # @param AgentsPro: 主机安全客户端专业版的总数
        # @type AgentsPro: Integer
        # @param AgentsBasic: 主机安全客户端基础版的总数
        # @type AgentsBasic: Integer
        # @param AgentsProExpireWithInSevenDays: 7天内到期的预付费专业版总数
        # @type AgentsProExpireWithInSevenDays: Integer
        # @param RiskMachine: 风险主机总数
        # @type RiskMachine: Integer
        # @param Shutdown: 已关机总数
        # @type Shutdown: Integer
        # @param Offline: 已离线总数
        # @type Offline: Integer
        # @param FlagshipMachineCnt: 旗舰版主机数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FlagshipMachineCnt: Integer
        # @param ProtectDays: 保护天数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ProtectDays: Integer
        # @param AddedOnTheFifteen: 15天内新增的主机数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AddedOnTheFifteen: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MachinesAll, :MachinesUninstalled, :AgentsAll, :AgentsOnline, :AgentsOffline, :AgentsPro, :AgentsBasic, :AgentsProExpireWithInSevenDays, :RiskMachine, :Shutdown, :Offline, :FlagshipMachineCnt, :ProtectDays, :AddedOnTheFifteen, :RequestId

        def initialize(machinesall=nil, machinesuninstalled=nil, agentsall=nil, agentsonline=nil, agentsoffline=nil, agentspro=nil, agentsbasic=nil, agentsproexpirewithinsevendays=nil, riskmachine=nil, shutdown=nil, offline=nil, flagshipmachinecnt=nil, protectdays=nil, addedonthefifteen=nil, requestid=nil)
          @MachinesAll = machinesall
          @MachinesUninstalled = machinesuninstalled
          @AgentsAll = agentsall
          @AgentsOnline = agentsonline
          @AgentsOffline = agentsoffline
          @AgentsPro = agentspro
          @AgentsBasic = agentsbasic
          @AgentsProExpireWithInSevenDays = agentsproexpirewithinsevendays
          @RiskMachine = riskmachine
          @Shutdown = shutdown
          @Offline = offline
          @FlagshipMachineCnt = flagshipmachinecnt
          @ProtectDays = protectdays
          @AddedOnTheFifteen = addedonthefifteen
          @RequestId = requestid
        end

        def deserialize(params)
          @MachinesAll = params['MachinesAll']
          @MachinesUninstalled = params['MachinesUninstalled']
          @AgentsAll = params['AgentsAll']
          @AgentsOnline = params['AgentsOnline']
          @AgentsOffline = params['AgentsOffline']
          @AgentsPro = params['AgentsPro']
          @AgentsBasic = params['AgentsBasic']
          @AgentsProExpireWithInSevenDays = params['AgentsProExpireWithInSevenDays']
          @RiskMachine = params['RiskMachine']
          @Shutdown = params['Shutdown']
          @Offline = params['Offline']
          @FlagshipMachineCnt = params['FlagshipMachineCnt']
          @ProtectDays = params['ProtectDays']
          @AddedOnTheFifteen = params['AddedOnTheFifteen']
          @RequestId = params['RequestId']
        end
      end

      # DescribeHistoryAccounts请求参数结构体
      class DescribeHistoryAccountsRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 云镜客户端唯一Uuid。
        # @type Uuid: String
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Username - String - 是否必填:否 - 帐号名</li>
        # @type Filters: Array

        attr_accessor :Uuid, :Limit, :Offset, :Filters

        def initialize(uuid=nil, limit=nil, offset=nil, filters=nil)
          @Uuid = uuid
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeHistoryAccounts返回参数结构体
      class DescribeHistoryAccountsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 帐号变更历史列表记录总数。
        # @type TotalCount: Integer
        # @param HistoryAccounts: 帐号变更历史数据数组。
        # @type HistoryAccounts: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :HistoryAccounts, :RequestId

        def initialize(totalcount=nil, historyaccounts=nil, requestid=nil)
          @TotalCount = totalcount
          @HistoryAccounts = historyaccounts
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['HistoryAccounts'].nil?
            @HistoryAccounts = []
            params['HistoryAccounts'].each do |i|
              historyaccount_tmp = HistoryAccount.new
              historyaccount_tmp.deserialize(i)
              @HistoryAccounts << historyaccount_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeHistoryService请求参数结构体
      class DescribeHistoryServiceRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeHistoryService返回参数结构体
      class DescribeHistoryServiceResponse < TencentCloud::Common::AbstractModel
        # @param BuyStatus: 1 可购买 2 只能升降配 3 只能跳到续费管理页
        # @type BuyStatus: Integer
        # @param InquireNum: 用户已购容量 单位 G
        # @type InquireNum: Integer
        # @param EndTime: 到期时间
        # @type EndTime: String
        # @param IsAutoOpenRenew: 是否自动续费,0 初始值, 1 开通 2 没开通
        # @type IsAutoOpenRenew: Integer
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param Status: 0 没开通 1 正常 2隔离 3销毁
        # @type Status: Integer
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BuyStatus, :InquireNum, :EndTime, :IsAutoOpenRenew, :ResourceId, :Status, :StartTime, :RequestId

        def initialize(buystatus=nil, inquirenum=nil, endtime=nil, isautoopenrenew=nil, resourceid=nil, status=nil, starttime=nil, requestid=nil)
          @BuyStatus = buystatus
          @InquireNum = inquirenum
          @EndTime = endtime
          @IsAutoOpenRenew = isautoopenrenew
          @ResourceId = resourceid
          @Status = status
          @StartTime = starttime
          @RequestId = requestid
        end

        def deserialize(params)
          @BuyStatus = params['BuyStatus']
          @InquireNum = params['InquireNum']
          @EndTime = params['EndTime']
          @IsAutoOpenRenew = params['IsAutoOpenRenew']
          @ResourceId = params['ResourceId']
          @Status = params['Status']
          @StartTime = params['StartTime']
          @RequestId = params['RequestId']
        end
      end

      # DescribeHostInfo请求参数结构体
      class DescribeHostInfoRequest < TencentCloud::Common::AbstractModel
        # @param QuuidList: 主机Quuid数组
        # @type QuuidList: Array
        # @param Uuids: Uuids 查询,Quuid查询时填空
        # @type Uuids: Array

        attr_accessor :QuuidList, :Uuids

        def initialize(quuidlist=nil, uuids=nil)
          @QuuidList = quuidlist
          @Uuids = uuids
        end

        def deserialize(params)
          @QuuidList = params['QuuidList']
          @Uuids = params['Uuids']
        end
      end

      # DescribeHostInfo返回参数结构体
      class DescribeHostInfoResponse < TencentCloud::Common::AbstractModel
        # @param HostInfoList: 主机信息与标签信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostInfoList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :HostInfoList, :RequestId

        def initialize(hostinfolist=nil, requestid=nil)
          @HostInfoList = hostinfolist
          @RequestId = requestid
        end

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

      # DescribeHostLoginList请求参数结构体
      class DescribeHostLoginListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 需要返回的数量,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>Uuid - String - 是否必填:否 - 主机安全唯一Uuid</li>
        # <li>Quuid - String - 是否必填:否 - 云服务器uuid</li>
        # <li>UserName - String - 是否必填:否 - 用户名筛选</li>
        # <li>LoginTimeBegin - String - 是否必填:否 - 按照修改时间段筛选,开始时间</li>
        # <li>LoginTimeEnd - String - 是否必填:否 - 按照修改时间段筛选,结束时间</li>
        # <li>SrcIp - String - 是否必填:否 - 来源ip筛选</li>
        # <li>Status - int - 是否必填:否 - 状态筛选1:正常登录;5:已加白,14:已处理,15:已忽略</li>
        # <li>RiskLevel - int - 是否必填:否 - 状态筛选0:高危;1:可疑</li>
        # @type Filters: Array
        # @param Order: 排序方式:根据请求次数排序:asc-升序/desc-降序
        # @type Order: String
        # @param By: 排序字段:LoginTime-发生时间
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeHostLoginList返回参数结构体
      class DescribeHostLoginListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param HostLoginList: 登录审计列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostLoginList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :HostLoginList, :RequestId

        def initialize(totalcount=nil, hostloginlist=nil, requestid=nil)
          @TotalCount = totalcount
          @HostLoginList = hostloginlist
          @RequestId = requestid
        end

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

      # DescribeHotVulTop请求参数结构体
      class DescribeHotVulTopRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeHotVulTop返回参数结构体
      class DescribeHotVulTopResponse < TencentCloud::Common::AbstractModel
        # @param List: 漏洞信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeIgnoreBaselineRule请求参数结构体
      class DescribeIgnoreBaselineRuleRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param RuleName: 检测项名称
        # @type RuleName: String

        attr_accessor :Limit, :Offset, :RuleName

        def initialize(limit=nil, offset=nil, rulename=nil)
          @Limit = limit
          @Offset = offset
          @RuleName = rulename
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          @RuleName = params['RuleName']
        end
      end

      # DescribeIgnoreBaselineRule返回参数结构体
      class DescribeIgnoreBaselineRuleResponse < TencentCloud::Common::AbstractModel
        # @param IgnoreBaselineRuleList: 忽略基线检测项列表信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IgnoreBaselineRuleList: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :IgnoreBaselineRuleList, :TotalCount, :RequestId

        def initialize(ignorebaselinerulelist=nil, totalcount=nil, requestid=nil)
          @IgnoreBaselineRuleList = ignorebaselinerulelist
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['IgnoreBaselineRuleList'].nil?
            @IgnoreBaselineRuleList = []
            params['IgnoreBaselineRuleList'].each do |i|
              ignorebaselinerule_tmp = IgnoreBaselineRule.new
              ignorebaselinerule_tmp.deserialize(i)
              @IgnoreBaselineRuleList << ignorebaselinerule_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeIgnoreHostAndItemConfig请求参数结构体
      class DescribeIgnoreHostAndItemConfigRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>ItemId - int64 - 是否必填:否 - 项Id</i>
        # <li>RuleId - int64 - 是否必填:否 - 规则Id</li>
        # <li>HostId - string - 是否必填:否 - 主机Id</li>
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

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

      # DescribeIgnoreHostAndItemConfig返回参数结构体
      class DescribeIgnoreHostAndItemConfigResponse < TencentCloud::Common::AbstractModel
        # @param ItemSet: 受影响检测项
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ItemSet: Array
        # @param HostSet: 受影响主机
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostSet: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ItemSet, :HostSet, :RequestId

        def initialize(itemset=nil, hostset=nil, requestid=nil)
          @ItemSet = itemset
          @HostSet = hostset
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['ItemSet'].nil?
            @ItemSet = []
            params['ItemSet'].each do |i|
              baselineiteminfo_tmp = BaselineItemInfo.new
              baselineiteminfo_tmp.deserialize(i)
              @ItemSet << baselineiteminfo_tmp
            end
          end
          unless params['HostSet'].nil?
            @HostSet = []
            params['HostSet'].each do |i|
              baselinehost_tmp = BaselineHost.new
              baselinehost_tmp.deserialize(i)
              @HostSet << baselinehost_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeIgnoreRuleEffectHostList请求参数结构体
      class DescribeIgnoreRuleEffectHostListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param RuleId: 检测项id
        # @type RuleId: Integer
        # @param Filters: 过滤条件。
        # <li>AliasName- String- 主机别名</li>
        # @type Filters: Array
        # @param TagNames: 主机标签名
        # @type TagNames: Array

        attr_accessor :Limit, :Offset, :RuleId, :Filters, :TagNames

        def initialize(limit=nil, offset=nil, ruleid=nil, filters=nil, tagnames=nil)
          @Limit = limit
          @Offset = offset
          @RuleId = ruleid
          @Filters = filters
          @TagNames = tagnames
        end

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

      # DescribeIgnoreRuleEffectHostList返回参数结构体
      class DescribeIgnoreRuleEffectHostListResponse < TencentCloud::Common::AbstractModel
        # @param IgnoreRuleEffectHostList: 忽略检测项影响主机列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IgnoreRuleEffectHostList: Array
        # @param TotalCount: 分页查询记录总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :IgnoreRuleEffectHostList, :TotalCount, :RequestId

        def initialize(ignoreruleeffecthostlist=nil, totalcount=nil, requestid=nil)
          @IgnoreRuleEffectHostList = ignoreruleeffecthostlist
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['IgnoreRuleEffectHostList'].nil?
            @IgnoreRuleEffectHostList = []
            params['IgnoreRuleEffectHostList'].each do |i|
              ignoreruleeffecthostinfo_tmp = IgnoreRuleEffectHostInfo.new
              ignoreruleeffecthostinfo_tmp.deserialize(i)
              @IgnoreRuleEffectHostList << ignoreruleeffecthostinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeImportMachineInfo请求参数结构体
      class DescribeImportMachineInfoRequest < TencentCloud::Common::AbstractModel
        # @param MachineList: 服务器内网IP(默认)/ 服务器名称 / 服务器ID 数组 (最大 1000条)
        # @type MachineList: Array
        # @param ImportType: 批量导入的数据类型:Ip、Name、Id 三选一
        # @type ImportType: String
        # @param IsQueryProMachine: 该参数已作废.
        # @type IsQueryProMachine: Boolean
        # @param Filters: 过滤条件:
        # <li>Version - String  是否必填:否 - 当前防护版本( PRO_VERSION:专业版 | BASIC_VERSION:基础版 | Flagship:旗舰版 | ProtectedMachines:专业版+旗舰版) | BASIC_PROPOST_GENERAL_DISCOUNT:普惠版+专业版按量计费+基础版主机 | UnFlagship:专业版预付费+专业版后付费+基础版+普惠版</li>
        # @type Filters: Array

        attr_accessor :MachineList, :ImportType, :IsQueryProMachine, :Filters

        def initialize(machinelist=nil, importtype=nil, isquerypromachine=nil, filters=nil)
          @MachineList = machinelist
          @ImportType = importtype
          @IsQueryProMachine = isquerypromachine
          @Filters = filters
        end

        def deserialize(params)
          @MachineList = params['MachineList']
          @ImportType = params['ImportType']
          @IsQueryProMachine = params['IsQueryProMachine']
          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

      # DescribeImportMachineInfo返回参数结构体
      class DescribeImportMachineInfoResponse < TencentCloud::Common::AbstractModel
        # @param EffectiveMachineInfoList: 有效的机器信息列表:机器名称、机器公网/内网ip、机器标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EffectiveMachineInfoList: Array
        # @param InvalidMachineList: 用户批量导入失败的机器列表(例如机器不存在等...)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InvalidMachineList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :EffectiveMachineInfoList, :InvalidMachineList, :RequestId

        def initialize(effectivemachineinfolist=nil, invalidmachinelist=nil, requestid=nil)
          @EffectiveMachineInfoList = effectivemachineinfolist
          @InvalidMachineList = invalidmachinelist
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['EffectiveMachineInfoList'].nil?
            @EffectiveMachineInfoList = []
            params['EffectiveMachineInfoList'].each do |i|
              effectivemachineinfo_tmp = EffectiveMachineInfo.new
              effectivemachineinfo_tmp.deserialize(i)
              @EffectiveMachineInfoList << effectivemachineinfo_tmp
            end
          end
          @InvalidMachineList = params['InvalidMachineList']
          @RequestId = params['RequestId']
        end
      end

      # DescribeIndexList请求参数结构体
      class DescribeIndexListRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeIndexList返回参数结构体
      class DescribeIndexListResponse < TencentCloud::Common::AbstractModel
        # @param Data: ES 索引信息
        # @type Data: String
        # @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)
          @Data = params['Data']
          @RequestId = params['RequestId']
        end
      end

      # DescribeJavaMemShellInfo请求参数结构体
      class DescribeJavaMemShellInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 事件Id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeJavaMemShellInfo返回参数结构体
      class DescribeJavaMemShellInfoResponse < TencentCloud::Common::AbstractModel
        # @param Info: java内存马事件详细信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Info: :class:`Tencentcloud::Cwp.v20180228.models.JavaMemShellDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Info, :RequestId

        def initialize(info=nil, requestid=nil)
          @Info = info
          @RequestId = requestid
        end

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

      # DescribeJavaMemShellList请求参数结构体
      class DescribeJavaMemShellListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:Keywords: ip或者主机名模糊查询, Type,Status精确匹配,CreateBeginTime,CreateEndTime时间段
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Filters, :Offset, :Limit

        def initialize(filters=nil, offset=nil, limit=nil)
          @Filters = filters
          @Offset = offset
          @Limit = limit
        end

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

      # DescribeJavaMemShellList返回参数结构体
      class DescribeJavaMemShellListResponse < TencentCloud::Common::AbstractModel
        # @param List: 事件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              javamemshellinfo_tmp = JavaMemShellInfo.new
              javamemshellinfo_tmp.deserialize(i)
              @List << javamemshellinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeJavaMemShellPluginInfo请求参数结构体
      class DescribeJavaMemShellPluginInfoRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机quuid
        # @type Quuid: String
        # @param Filters: 过滤条件:Pid精确匹配,MainClass模糊匹配
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Quuid, :Filters, :Offset, :Limit

        def initialize(quuid=nil, filters=nil, offset=nil, limit=nil)
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
        end

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

      # DescribeJavaMemShellPluginInfo返回参数结构体
      class DescribeJavaMemShellPluginInfoResponse < TencentCloud::Common::AbstractModel
        # @param List: java内存马插件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              javamemshellplugininfo_tmp = JavaMemShellPluginInfo.new
              javamemshellplugininfo_tmp.deserialize(i)
              @List << javamemshellplugininfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeJavaMemShellPluginList请求参数结构体
      class DescribeJavaMemShellPluginListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:Keywords: ip或者主机名模糊查询, JavaShellStatus,Exception精确匹配
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Filters, :Offset, :Limit

        def initialize(filters=nil, offset=nil, limit=nil)
          @Filters = filters
          @Offset = offset
          @Limit = limit
        end

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

      # DescribeJavaMemShellPluginList返回参数结构体
      class DescribeJavaMemShellPluginListResponse < TencentCloud::Common::AbstractModel
        # @param List: java内存马插件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              javamemshellpluginsetting_tmp = JavaMemShellPluginSetting.new
              javamemshellpluginsetting_tmp.deserialize(i)
              @List << javamemshellpluginsetting_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeLicenseBindList请求参数结构体
      class DescribeLicenseBindListRequest < TencentCloud::Common::AbstractModel
        # @param LicenseId: 授权ID
        # @type LicenseId: Integer
        # @param LicenseType: 授权类型
        # @type LicenseType: Integer
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param Filters: <li>InstanceID、IP、

        # MachineName 模糊查询</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10.
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0.
        # @type Offset: Integer

        attr_accessor :LicenseId, :LicenseType, :ResourceId, :Filters, :Limit, :Offset

        def initialize(licenseid=nil, licensetype=nil, resourceid=nil, filters=nil, limit=nil, offset=nil)
          @LicenseId = licenseid
          @LicenseType = licensetype
          @ResourceId = resourceid
          @Filters = filters
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @LicenseId = params['LicenseId']
          @LicenseType = params['LicenseType']
          @ResourceId = params['ResourceId']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filters_tmp = Filters.new
              filters_tmp.deserialize(i)
              @Filters << filters_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeLicenseBindList返回参数结构体
      class DescribeLicenseBindListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 绑定机器列表信息
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              licensebinddetail_tmp = LicenseBindDetail.new
              licensebinddetail_tmp.deserialize(i)
              @List << licensebinddetail_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeLicenseBindSchedule请求参数结构体
      class DescribeLicenseBindScheduleRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID
        # @type TaskId: Integer
        # @param Limit: 限制条数,默认10.
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Filters: 过滤参数
        # Status 绑定进度状态 0 进行中 1 已完成 2 失败
        # @type Filters: Array

        attr_accessor :TaskId, :Limit, :Offset, :Filters

        def initialize(taskid=nil, limit=nil, offset=nil, filters=nil)
          @TaskId = taskid
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeLicenseBindSchedule返回参数结构体
      class DescribeLicenseBindScheduleResponse < TencentCloud::Common::AbstractModel
        # @param Schedule: 进度
        # @type Schedule: Integer
        # @param List: 绑定任务详情
        # @type List: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Schedule, :List, :TotalCount, :RequestId

        def initialize(schedule=nil, list=nil, totalcount=nil, requestid=nil)
          @Schedule = schedule
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          @Schedule = params['Schedule']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              licensebindtaskdetail_tmp = LicenseBindTaskDetail.new
              licensebindtaskdetail_tmp.deserialize(i)
              @List << licensebindtaskdetail_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeLicenseGeneral请求参数结构体
      class DescribeLicenseGeneralRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeLicenseGeneral返回参数结构体
      class DescribeLicenseGeneralResponse < TencentCloud::Common::AbstractModel
        # @param LicenseCnt: 总授权数 (包含隔离,过期等不可用状态)
        # @type LicenseCnt: Integer
        # @param AvailableLicenseCnt: 可用授权数
        # @type AvailableLicenseCnt: Integer
        # @param AvailableProVersionLicenseCnt: 可用专业版授权数(包含后付费).
        # @type AvailableProVersionLicenseCnt: Integer
        # @param AvailableFlagshipVersionLicenseCnt: 可用旗舰版授权数
        # @type AvailableFlagshipVersionLicenseCnt: Integer
        # @param NearExpiryLicenseCnt: 即将到期授权数 (15天内到期的)
        # @type NearExpiryLicenseCnt: Integer
        # @param ExpireLicenseCnt: 已到期授权数(不包含已删除的记录)
        # @type ExpireLicenseCnt: Integer
        # @param AutoOpenStatus: 自动升级开关状态,默认 false,  true 开启, false 关闭
        # @type AutoOpenStatus: Boolean
        # @param ProtectType: PROVERSION_POSTPAY 专业版-后付费, PROVERSION_PREPAY 专业版-预付费, FLAGSHIP_PREPAY 旗舰版-预付费
        # @type ProtectType: String
        # @param IsOpenStatusHistory: 历史是否开通过自动升级开关
        # @type IsOpenStatusHistory: Boolean
        # @param UsedLicenseCnt: 已使用授权数
        # @type UsedLicenseCnt: Integer
        # @param NotExpiredLicenseCnt: 未到期授权数
        # @type NotExpiredLicenseCnt: Integer
        # @param FlagshipVersionLicenseCnt: 旗舰版总授权数(有效订单)
        # @type FlagshipVersionLicenseCnt: Integer
        # @param ProVersionLicenseCnt: 专业版总授权数(有效订单)
        # @type ProVersionLicenseCnt: Integer
        # @param CwpVersionLicenseCnt: 普惠版总授权数(有效订单的授权数)
        # @type CwpVersionLicenseCnt: Integer
        # @param AvailableLHLicenseCnt: 可用惠普版授权数
        # @type AvailableLHLicenseCnt: Integer
        # @param AutoRepurchaseSwitch: 自动加购开关, true 开启, false 关闭
        # @type AutoRepurchaseSwitch: Boolean
        # @param AutoRepurchaseRenewSwitch: 自动加购订单是否自动续费 ,true 开启, false 关闭
        # @type AutoRepurchaseRenewSwitch: Boolean
        # @param DestroyOrderNum: 已销毁订单数
        # @type DestroyOrderNum: Integer
        # @param RepurchaseRenewSwitch: 是否自动续费开关,true 开启,false 关闭
        # @type RepurchaseRenewSwitch: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :LicenseCnt, :AvailableLicenseCnt, :AvailableProVersionLicenseCnt, :AvailableFlagshipVersionLicenseCnt, :NearExpiryLicenseCnt, :ExpireLicenseCnt, :AutoOpenStatus, :ProtectType, :IsOpenStatusHistory, :UsedLicenseCnt, :NotExpiredLicenseCnt, :FlagshipVersionLicenseCnt, :ProVersionLicenseCnt, :CwpVersionLicenseCnt, :AvailableLHLicenseCnt, :AutoRepurchaseSwitch, :AutoRepurchaseRenewSwitch, :DestroyOrderNum, :RepurchaseRenewSwitch, :RequestId

        def initialize(licensecnt=nil, availablelicensecnt=nil, availableproversionlicensecnt=nil, availableflagshipversionlicensecnt=nil, nearexpirylicensecnt=nil, expirelicensecnt=nil, autoopenstatus=nil, protecttype=nil, isopenstatushistory=nil, usedlicensecnt=nil, notexpiredlicensecnt=nil, flagshipversionlicensecnt=nil, proversionlicensecnt=nil, cwpversionlicensecnt=nil, availablelhlicensecnt=nil, autorepurchaseswitch=nil, autorepurchaserenewswitch=nil, destroyordernum=nil, repurchaserenewswitch=nil, requestid=nil)
          @LicenseCnt = licensecnt
          @AvailableLicenseCnt = availablelicensecnt
          @AvailableProVersionLicenseCnt = availableproversionlicensecnt
          @AvailableFlagshipVersionLicenseCnt = availableflagshipversionlicensecnt
          @NearExpiryLicenseCnt = nearexpirylicensecnt
          @ExpireLicenseCnt = expirelicensecnt
          @AutoOpenStatus = autoopenstatus
          @ProtectType = protecttype
          @IsOpenStatusHistory = isopenstatushistory
          @UsedLicenseCnt = usedlicensecnt
          @NotExpiredLicenseCnt = notexpiredlicensecnt
          @FlagshipVersionLicenseCnt = flagshipversionlicensecnt
          @ProVersionLicenseCnt = proversionlicensecnt
          @CwpVersionLicenseCnt = cwpversionlicensecnt
          @AvailableLHLicenseCnt = availablelhlicensecnt
          @AutoRepurchaseSwitch = autorepurchaseswitch
          @AutoRepurchaseRenewSwitch = autorepurchaserenewswitch
          @DestroyOrderNum = destroyordernum
          @RepurchaseRenewSwitch = repurchaserenewswitch
          @RequestId = requestid
        end

        def deserialize(params)
          @LicenseCnt = params['LicenseCnt']
          @AvailableLicenseCnt = params['AvailableLicenseCnt']
          @AvailableProVersionLicenseCnt = params['AvailableProVersionLicenseCnt']
          @AvailableFlagshipVersionLicenseCnt = params['AvailableFlagshipVersionLicenseCnt']
          @NearExpiryLicenseCnt = params['NearExpiryLicenseCnt']
          @ExpireLicenseCnt = params['ExpireLicenseCnt']
          @AutoOpenStatus = params['AutoOpenStatus']
          @ProtectType = params['ProtectType']
          @IsOpenStatusHistory = params['IsOpenStatusHistory']
          @UsedLicenseCnt = params['UsedLicenseCnt']
          @NotExpiredLicenseCnt = params['NotExpiredLicenseCnt']
          @FlagshipVersionLicenseCnt = params['FlagshipVersionLicenseCnt']
          @ProVersionLicenseCnt = params['ProVersionLicenseCnt']
          @CwpVersionLicenseCnt = params['CwpVersionLicenseCnt']
          @AvailableLHLicenseCnt = params['AvailableLHLicenseCnt']
          @AutoRepurchaseSwitch = params['AutoRepurchaseSwitch']
          @AutoRepurchaseRenewSwitch = params['AutoRepurchaseRenewSwitch']
          @DestroyOrderNum = params['DestroyOrderNum']
          @RepurchaseRenewSwitch = params['RepurchaseRenewSwitch']
          @RequestId = params['RequestId']
        end
      end

      # DescribeLicenseList请求参数结构体
      class DescribeLicenseListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 多个条件筛选时 LicenseStatus,DeadlineStatus,ResourceId,Keywords 取交集
        # <li> LicenseStatus 授权状态信息,0 未使用,1 部分使用, 2 已用完, 3 不可用  4 可使用</li>
        # <li> BuyTime 购买时间</li>
        # <li> LicenseType  授权类型, 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月</li>
        # <li>DeadlineStatus 到期状态 NotExpired 未过期, Expire 已过期(包含已销毁) NearExpiry 即将到期</li>
        # <li>ResourceId 资源ID</li>
        # <li>Keywords IP筛选</li>
        # <li>PayMode 付费模式 0 按量计费 , 1 包年包月</li>
        # <li>OrderStatus 订单状态 1 正常 2 隔离 3 销毁</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10.
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0.
        # @type Offset: Integer
        # @param Tags: 标签筛选,平台标签能力,这里传入 标签键,标签值作为一个对象
        # @type Tags: Array

        attr_accessor :Filters, :Limit, :Offset, :Tags

        def initialize(filters=nil, limit=nil, offset=nil, tags=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Tags = tags
        end

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

      # DescribeLicenseList返回参数结构体
      class DescribeLicenseListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 授权数列表信息
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              licensedetail_tmp = LicenseDetail.new
              licensedetail_tmp.deserialize(i)
              @List << licensedetail_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeLicense请求参数结构体
      class DescribeLicenseRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeLicense返回参数结构体
      class DescribeLicenseResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DescribeLicenseWhiteConfig请求参数结构体
      class DescribeLicenseWhiteConfigRequest < TencentCloud::Common::AbstractModel
        # @param RuleName: 规则名称,例如: cwp
        # @type RuleName: String

        attr_accessor :RuleName

        def initialize(rulename=nil)
          @RuleName = rulename
        end

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

      # DescribeLicenseWhiteConfig返回参数结构体
      class DescribeLicenseWhiteConfigResponse < TencentCloud::Common::AbstractModel
        # @param FlagShip: 旗舰版 配置信息
        # @type FlagShip: :class:`Tencentcloud::Cwp.v20180228.models.VersionWhiteConfig`
        # @param Professional: 专业版 配置信息
        # @type Professional: :class:`Tencentcloud::Cwp.v20180228.models.VersionWhiteConfig`
        # @param PrattWhitney: 普惠版 配置信息
        # @type PrattWhitney: :class:`Tencentcloud::Cwp.v20180228.models.VersionWhiteConfig`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FlagShip, :Professional, :PrattWhitney, :RequestId

        def initialize(flagship=nil, professional=nil, prattwhitney=nil, requestid=nil)
          @FlagShip = flagship
          @Professional = professional
          @PrattWhitney = prattwhitney
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['FlagShip'].nil?
            @FlagShip = VersionWhiteConfig.new
            @FlagShip.deserialize(params['FlagShip'])
          end
          unless params['Professional'].nil?
            @Professional = VersionWhiteConfig.new
            @Professional.deserialize(params['Professional'])
          end
          unless params['PrattWhitney'].nil?
            @PrattWhitney = VersionWhiteConfig.new
            @PrattWhitney.deserialize(params['PrattWhitney'])
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeLogDeliveryKafkaOptions请求参数结构体
      class DescribeLogDeliveryKafkaOptionsRequest < TencentCloud::Common::AbstractModel
        # @param InstanceID: kafka实例id
        # @type InstanceID: String

        attr_accessor :InstanceID

        def initialize(instanceid=nil)
          @InstanceID = instanceid
        end

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

      # DescribeLogDeliveryKafkaOptions返回参数结构体
      class DescribeLogDeliveryKafkaOptionsResponse < TencentCloud::Common::AbstractModel
        # @param InstanceList: 实例列表
        # @type InstanceList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :InstanceList, :RequestId

        def initialize(instancelist=nil, requestid=nil)
          @InstanceList = instancelist
          @RequestId = requestid
        end

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

      # DescribeLogExports请求参数结构体
      class DescribeLogExportsRequest < TencentCloud::Common::AbstractModel
        # @param Offset: 分页的偏移量,默认值为0
        # @type Offset: Integer
        # @param Limit: 分页单页限制数目,默认值为20,最大值100
        # @type Limit: Integer

        attr_accessor :Offset, :Limit

        def initialize(offset=nil, limit=nil)
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeLogExports返回参数结构体
      class DescribeLogExportsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数目
        # @type TotalCount: Integer
        # @param Exports: 日志导出列表
        # @type Exports: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :Exports, :RequestId

        def initialize(totalcount=nil, exports=nil, requestid=nil)
          @TotalCount = totalcount
          @Exports = exports
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['Exports'].nil?
            @Exports = []
            params['Exports'].each do |i|
              exportinfo_tmp = ExportInfo.new
              exportinfo_tmp.deserialize(i)
              @Exports << exportinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeLogHistogram请求参数结构体
      class DescribeLogHistogramRequest < TencentCloud::Common::AbstractModel
        # @param StartTime: 要查询的日志的起始时间,Unix时间戳,单位ms
        # @type StartTime: Integer
        # @param EndTime: 要查询的日志的结束时间,Unix时间戳,单位ms
        # @type EndTime: Integer
        # @param QueryString: 查询语句
        # @type QueryString: String
        # @param Interval: 时间间隔: 单位ms
        # @type Interval: Integer

        attr_accessor :StartTime, :EndTime, :QueryString, :Interval

        def initialize(starttime=nil, endtime=nil, querystring=nil, interval=nil)
          @StartTime = starttime
          @EndTime = endtime
          @QueryString = querystring
          @Interval = interval
        end

        def deserialize(params)
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @QueryString = params['QueryString']
          @Interval = params['Interval']
        end
      end

      # DescribeLogHistogram返回参数结构体
      class DescribeLogHistogramResponse < TencentCloud::Common::AbstractModel
        # @param Data: 周期内统计结果详情
        # @type Data: Array
        # @param Period: 统计周期: 单位ms
        # @type Period: Integer
        # @param TotalCount: 命中关键字的日志总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Data, :Period, :TotalCount, :RequestId

        def initialize(data=nil, period=nil, totalcount=nil, requestid=nil)
          @Data = data
          @Period = period
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Data'].nil?
            @Data = []
            params['Data'].each do |i|
              loghistogram_tmp = LogHistogram.new
              loghistogram_tmp.deserialize(i)
              @Data << loghistogram_tmp
            end
          end
          @Period = params['Period']
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeLogIndex请求参数结构体
      class DescribeLogIndexRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeLogIndex返回参数结构体
      class DescribeLogIndexResponse < TencentCloud::Common::AbstractModel
        # @param Status: 是否生效
        # @type Status: Boolean
        # @param Rule: 索引规则
        # @type Rule: :class:`Tencentcloud::Cwp.v20180228.models.RuleInfo`
        # @param ModifyTime: 索引修改时间,初始值为索引创建时间
        # @type ModifyTime: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Status, :Rule, :ModifyTime, :RequestId

        def initialize(status=nil, rule=nil, modifytime=nil, requestid=nil)
          @Status = status
          @Rule = rule
          @ModifyTime = modifytime
          @RequestId = requestid
        end

        def deserialize(params)
          @Status = params['Status']
          unless params['Rule'].nil?
            @Rule = RuleInfo.new
            @Rule.deserialize(params['Rule'])
          end
          @ModifyTime = params['ModifyTime']
          @RequestId = params['RequestId']
        end
      end

      # DescribeLogKafkaDeliverInfo请求参数结构体
      class DescribeLogKafkaDeliverInfoRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeLogKafkaDeliverInfo返回参数结构体
      class DescribeLogKafkaDeliverInfoResponse < TencentCloud::Common::AbstractModel
        # @param KafkaEnvName: 实例环境
        # @type KafkaEnvName: String
        # @param KafkaId: 实例id
        # @type KafkaId: String
        # @param Zone: 地域
        # @type Zone: String
        # @param Az: 可用区
        # @type Az: String
        # @param VpcId: 所属网络
        # @type VpcId: String
        # @param SubnetId: 所在子网
        # @type SubnetId: String
        # @param AccessType: 接入方式,1公网域名接入,2支撑环境接入
        # @type AccessType: Integer
        # @param AccessAddr: 接入地址
        # @type AccessAddr: String
        # @param DeliverStatus: 投递状态,1:健康,2:告警,3:异常
        # @type DeliverStatus: Integer
        # @param InsVersion: kafka版本
        # @type InsVersion: String
        # @param BandWidth: 峰值带宽
        # @type BandWidth: Integer
        # @param DiskSize: 磁盘容量
        # @type DiskSize: Integer
        # @param Username: 用户名
        # @type Username: String
        # @param DeliverTypeDetails: xx
        # @type DeliverTypeDetails: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :KafkaEnvName, :KafkaId, :Zone, :Az, :VpcId, :SubnetId, :AccessType, :AccessAddr, :DeliverStatus, :InsVersion, :BandWidth, :DiskSize, :Username, :DeliverTypeDetails, :RequestId

        def initialize(kafkaenvname=nil, kafkaid=nil, zone=nil, az=nil, vpcid=nil, subnetid=nil, accesstype=nil, accessaddr=nil, deliverstatus=nil, insversion=nil, bandwidth=nil, disksize=nil, username=nil, delivertypedetails=nil, requestid=nil)
          @KafkaEnvName = kafkaenvname
          @KafkaId = kafkaid
          @Zone = zone
          @Az = az
          @VpcId = vpcid
          @SubnetId = subnetid
          @AccessType = accesstype
          @AccessAddr = accessaddr
          @DeliverStatus = deliverstatus
          @InsVersion = insversion
          @BandWidth = bandwidth
          @DiskSize = disksize
          @Username = username
          @DeliverTypeDetails = delivertypedetails
          @RequestId = requestid
        end

        def deserialize(params)
          @KafkaEnvName = params['KafkaEnvName']
          @KafkaId = params['KafkaId']
          @Zone = params['Zone']
          @Az = params['Az']
          @VpcId = params['VpcId']
          @SubnetId = params['SubnetId']
          @AccessType = params['AccessType']
          @AccessAddr = params['AccessAddr']
          @DeliverStatus = params['DeliverStatus']
          @InsVersion = params['InsVersion']
          @BandWidth = params['BandWidth']
          @DiskSize = params['DiskSize']
          @Username = params['Username']
          unless params['DeliverTypeDetails'].nil?
            @DeliverTypeDetails = []
            params['DeliverTypeDetails'].each do |i|
              delivertypedetails_tmp = DeliverTypeDetails.new
              delivertypedetails_tmp.deserialize(i)
              @DeliverTypeDetails << delivertypedetails_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeLogStorageConfig请求参数结构体
      class DescribeLogStorageConfigRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeLogStorageConfig返回参数结构体
      class DescribeLogStorageConfigResponse < TencentCloud::Common::AbstractModel
        # @param Type: 存储类型,string数组
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Type: Array
        # @param Period: 日志存储天数,3640表示不限
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Period: Integer
        # @param PeriodModifyCount: 本月Period的修改次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PeriodModifyCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Type, :Period, :PeriodModifyCount, :RequestId

        def initialize(type=nil, period=nil, periodmodifycount=nil, requestid=nil)
          @Type = type
          @Period = period
          @PeriodModifyCount = periodmodifycount
          @RequestId = requestid
        end

        def deserialize(params)
          @Type = params['Type']
          @Period = params['Period']
          @PeriodModifyCount = params['PeriodModifyCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeLogStorageRecord请求参数结构体
      class DescribeLogStorageRecordRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeLogStorageRecord返回参数结构体
      class DescribeLogStorageRecordResponse < TencentCloud::Common::AbstractModel
        # @param Records: 存储量记录
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Records: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Records, :RequestId

        def initialize(records=nil, requestid=nil)
          @Records = records
          @RequestId = requestid
        end

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

      # DescribeLogStorageStatistic请求参数结构体
      class DescribeLogStorageStatisticRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeLogStorageStatistic返回参数结构体
      class DescribeLogStorageStatisticResponse < TencentCloud::Common::AbstractModel
        # @param TotalSize: 总容量(单位:GB)
        # @type TotalSize: Integer
        # @param UsedSize: 已使用容量(单位:GB)
        # @type UsedSize: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalSize, :UsedSize, :RequestId

        def initialize(totalsize=nil, usedsize=nil, requestid=nil)
          @TotalSize = totalsize
          @UsedSize = usedsize
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalSize = params['TotalSize']
          @UsedSize = params['UsedSize']
          @RequestId = params['RequestId']
        end
      end

      # DescribeLogType请求参数结构体
      class DescribeLogTypeRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeLogType返回参数结构体
      class DescribeLogTypeResponse < TencentCloud::Common::AbstractModel
        # @param Data: cls日志类型信息
        # @type Data: String
        # @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)
          @Data = params['Data']
          @RequestId = params['RequestId']
        end
      end

      # DescribeLoginWhiteCombinedList请求参数结构体
      class DescribeLoginWhiteCombinedListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>UserName - String - 是否必填:否 - 用户名筛选</li>
        # <li>ModifyBeginTime - String - 是否必填:否 - 按照修改时间段筛选,开始时间</li>
        # <li>ModifyEndTime - String - 是否必填:否 - 按照修改时间段筛选,结束时间</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeLoginWhiteCombinedList返回参数结构体
      class DescribeLoginWhiteCombinedListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数量
        # @type TotalCount: Integer
        # @param LoginWhiteCombinedInfos: 合并后的白名单列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LoginWhiteCombinedInfos: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :LoginWhiteCombinedInfos, :RequestId

        def initialize(totalcount=nil, loginwhitecombinedinfos=nil, requestid=nil)
          @TotalCount = totalcount
          @LoginWhiteCombinedInfos = loginwhitecombinedinfos
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['LoginWhiteCombinedInfos'].nil?
            @LoginWhiteCombinedInfos = []
            params['LoginWhiteCombinedInfos'].each do |i|
              loginwhitecombinedinfo_tmp = LoginWhiteCombinedInfo.new
              loginwhitecombinedinfo_tmp.deserialize(i)
              @LoginWhiteCombinedInfos << loginwhitecombinedinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeLoginWhiteHostList请求参数结构体
      class DescribeLoginWhiteHostListRequest < TencentCloud::Common::AbstractModel
        # @param Id: 白名单ID
        # @type Id: Integer
        # @param Limit: 需要返回的数量,最大值为1000
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件 <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # @type Filters: Array

        attr_accessor :Id, :Limit, :Offset, :Filters

        def initialize(id=nil, limit=nil, offset=nil, filters=nil)
          @Id = id
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Id = params['Id']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
        end
      end

      # DescribeLoginWhiteHostList返回参数结构体
      class DescribeLoginWhiteHostListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param Hosts: 服务器列表
        # @type Hosts: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :Hosts, :RequestId

        def initialize(totalcount=nil, hosts=nil, requestid=nil)
          @TotalCount = totalcount
          @Hosts = hosts
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['Hosts'].nil?
            @Hosts = []
            params['Hosts'].each do |i|
              hostdesc_tmp = HostDesc.new
              hostdesc_tmp.deserialize(i)
              @Hosts << hostdesc_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeLoginWhiteList请求参数结构体
      class DescribeLoginWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>IpOrAlias - String - 是否必填:否 - 查询关键字 </li>
        # <li>UserName - String - 是否必填:否 - 用户名筛选 </li>
        # <li>ModifyBeginTime - String - 是否必填:否 - 按照修改时间段筛选,开始时间 </li>
        # <li>ModifyEndTime - String - 是否必填:否 - 按照修改时间段筛选,结束时间 </li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeLoginWhiteList返回参数结构体
      class DescribeLoginWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 记录总数
        # @type TotalCount: Integer
        # @param LoginWhiteLists: 异地登录白名单数组
        # @type LoginWhiteLists: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :LoginWhiteLists, :RequestId

        def initialize(totalcount=nil, loginwhitelists=nil, requestid=nil)
          @TotalCount = totalcount
          @LoginWhiteLists = loginwhitelists
          @RequestId = requestid
        end

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

      # DescribeMachineClearHistory请求参数结构体
      class DescribeMachineClearHistoryRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 筛选条件
        # 多个条件筛选时 Keywords,TimeBetween,取交集
        # <li> Keywords 实例名称/内网/公网IP</li>
        # <li> TimeBetween 时间区间</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10 ,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 正序, ASC , 倒序 DESC , 默认ASC
        # @type Order: String
        # @param By: AgentLastOfflineTime 客户端最后离线时间
        # AutoClearTime 清理时间
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

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

      # DescribeMachineClearHistory返回参数结构体
      class DescribeMachineClearHistoryResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 列表数据
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              machineclearhistory_tmp = MachineClearHistory.new
              machineclearhistory_tmp.deserialize(i)
              @List << machineclearhistory_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineDefenseCnt请求参数结构体
      class DescribeMachineDefenseCntRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Uuids- String - 是否必填:否 - 主机uuid</li>
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

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

      # DescribeMachineDefenseCnt返回参数结构体
      class DescribeMachineDefenseCntResponse < TencentCloud::Common::AbstractModel
        # @param AttackLogs: 攻击检测统计
        # @type AttackLogs: Integer
        # @param FileTamper: 核心文件监控统计
        # @type FileTamper: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AttackLogs, :FileTamper, :RequestId

        def initialize(attacklogs=nil, filetamper=nil, requestid=nil)
          @AttackLogs = attacklogs
          @FileTamper = filetamper
          @RequestId = requestid
        end

        def deserialize(params)
          @AttackLogs = params['AttackLogs']
          @FileTamper = params['FileTamper']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineFileTamperRules请求参数结构体
      class DescribeMachineFileTamperRulesRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer

        attr_accessor :Uuid, :Offset, :Limit

        def initialize(uuid=nil, offset=nil, limit=nil)
          @Uuid = uuid
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeMachineFileTamperRules返回参数结构体
      class DescribeMachineFileTamperRulesResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param List: 查询主机相关核心文件监控规则详情
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              machinefiletamperrule_tmp = MachineFileTamperRule.new
              machinefiletamperrule_tmp.deserialize(i)
              @List << machinefiletamperrule_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineGeneral请求参数结构体
      class DescribeMachineGeneralRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeMachineGeneral返回参数结构体
      class DescribeMachineGeneralResponse < TencentCloud::Common::AbstractModel
        # @param MachineCnt: 资产总数
        # @type MachineCnt: Integer
        # @param TencentCloudMachineCnt: 腾讯云服务商机器数
        # @type TencentCloudMachineCnt: Integer
        # @param AliCloudMachineCnt: 阿里云服务商机器数
        # @type AliCloudMachineCnt: Integer
        # @param BaiduCloudMachineCnt: 百度云服务商机器数
        # @type BaiduCloudMachineCnt: Integer
        # @param IDCMachineCnt: IDC机器数
        # @type IDCMachineCnt: Integer
        # @param OtherCloudMachineCnt: 其他云服务商机器数
        # @type OtherCloudMachineCnt: Integer
        # @param ProtectMachineCnt: 已防护机器数
        # @type ProtectMachineCnt: Integer
        # @param BaseMachineCnt: 已防护基础版机器数
        # @type BaseMachineCnt: Integer
        # @param SpecialtyMachineCnt: 已防护专业版机器数
        # @type SpecialtyMachineCnt: Integer
        # @param FlagshipMachineCnt: 已防护旗舰版机器数
        # @type FlagshipMachineCnt: Integer
        # @param RiskMachineCnt: 存在风险的机器数
        # @type RiskMachineCnt: Integer
        # @param CompareYesterdayRiskMachineCnt: 比较昨日风险机器数
        # @type CompareYesterdayRiskMachineCnt: Integer
        # @param CompareYesterdayNotProtectMachineCnt: 比较昨日未防护机器数
        # @type CompareYesterdayNotProtectMachineCnt: Integer
        # @param CompareYesterdayDeadlineMachineCnt: 比较昨日即将到期的机器数
        # @type CompareYesterdayDeadlineMachineCnt: Integer
        # @param DeadlineMachineCnt: 即将到期的机器数
        # @type DeadlineMachineCnt: Integer
        # @param NotProtectMachineCnt: 未防护机器数
        # @type NotProtectMachineCnt: Integer
        # @param LHGeneralDiscountCnt: 已防护普惠版机器数(Lighthouse机器)
        # @type LHGeneralDiscountCnt: Integer
        # @param CompareYesterdayMachineCnt: 比较昨日新增的主机数
        # @type CompareYesterdayMachineCnt: Integer
        # @param MachineDestroyAfterOfflineHours: 自动清理时间,最大720小时,最小0, 默认0 ,0=关闭
        # @type MachineDestroyAfterOfflineHours: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MachineCnt, :TencentCloudMachineCnt, :AliCloudMachineCnt, :BaiduCloudMachineCnt, :IDCMachineCnt, :OtherCloudMachineCnt, :ProtectMachineCnt, :BaseMachineCnt, :SpecialtyMachineCnt, :FlagshipMachineCnt, :RiskMachineCnt, :CompareYesterdayRiskMachineCnt, :CompareYesterdayNotProtectMachineCnt, :CompareYesterdayDeadlineMachineCnt, :DeadlineMachineCnt, :NotProtectMachineCnt, :LHGeneralDiscountCnt, :CompareYesterdayMachineCnt, :MachineDestroyAfterOfflineHours, :RequestId

        def initialize(machinecnt=nil, tencentcloudmachinecnt=nil, alicloudmachinecnt=nil, baiducloudmachinecnt=nil, idcmachinecnt=nil, othercloudmachinecnt=nil, protectmachinecnt=nil, basemachinecnt=nil, specialtymachinecnt=nil, flagshipmachinecnt=nil, riskmachinecnt=nil, compareyesterdayriskmachinecnt=nil, compareyesterdaynotprotectmachinecnt=nil, compareyesterdaydeadlinemachinecnt=nil, deadlinemachinecnt=nil, notprotectmachinecnt=nil, lhgeneraldiscountcnt=nil, compareyesterdaymachinecnt=nil, machinedestroyafterofflinehours=nil, requestid=nil)
          @MachineCnt = machinecnt
          @TencentCloudMachineCnt = tencentcloudmachinecnt
          @AliCloudMachineCnt = alicloudmachinecnt
          @BaiduCloudMachineCnt = baiducloudmachinecnt
          @IDCMachineCnt = idcmachinecnt
          @OtherCloudMachineCnt = othercloudmachinecnt
          @ProtectMachineCnt = protectmachinecnt
          @BaseMachineCnt = basemachinecnt
          @SpecialtyMachineCnt = specialtymachinecnt
          @FlagshipMachineCnt = flagshipmachinecnt
          @RiskMachineCnt = riskmachinecnt
          @CompareYesterdayRiskMachineCnt = compareyesterdayriskmachinecnt
          @CompareYesterdayNotProtectMachineCnt = compareyesterdaynotprotectmachinecnt
          @CompareYesterdayDeadlineMachineCnt = compareyesterdaydeadlinemachinecnt
          @DeadlineMachineCnt = deadlinemachinecnt
          @NotProtectMachineCnt = notprotectmachinecnt
          @LHGeneralDiscountCnt = lhgeneraldiscountcnt
          @CompareYesterdayMachineCnt = compareyesterdaymachinecnt
          @MachineDestroyAfterOfflineHours = machinedestroyafterofflinehours
          @RequestId = requestid
        end

        def deserialize(params)
          @MachineCnt = params['MachineCnt']
          @TencentCloudMachineCnt = params['TencentCloudMachineCnt']
          @AliCloudMachineCnt = params['AliCloudMachineCnt']
          @BaiduCloudMachineCnt = params['BaiduCloudMachineCnt']
          @IDCMachineCnt = params['IDCMachineCnt']
          @OtherCloudMachineCnt = params['OtherCloudMachineCnt']
          @ProtectMachineCnt = params['ProtectMachineCnt']
          @BaseMachineCnt = params['BaseMachineCnt']
          @SpecialtyMachineCnt = params['SpecialtyMachineCnt']
          @FlagshipMachineCnt = params['FlagshipMachineCnt']
          @RiskMachineCnt = params['RiskMachineCnt']
          @CompareYesterdayRiskMachineCnt = params['CompareYesterdayRiskMachineCnt']
          @CompareYesterdayNotProtectMachineCnt = params['CompareYesterdayNotProtectMachineCnt']
          @CompareYesterdayDeadlineMachineCnt = params['CompareYesterdayDeadlineMachineCnt']
          @DeadlineMachineCnt = params['DeadlineMachineCnt']
          @NotProtectMachineCnt = params['NotProtectMachineCnt']
          @LHGeneralDiscountCnt = params['LHGeneralDiscountCnt']
          @CompareYesterdayMachineCnt = params['CompareYesterdayMachineCnt']
          @MachineDestroyAfterOfflineHours = params['MachineDestroyAfterOfflineHours']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineInfo请求参数结构体
      class DescribeMachineInfoRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机安全客户端唯一Uuid。
        # @type Uuid: String
        # @param Quuid: Quuid , Uuid 必填一项
        # @type Quuid: String

        attr_accessor :Uuid, :Quuid

        def initialize(uuid=nil, quuid=nil)
          @Uuid = uuid
          @Quuid = quuid
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
        end
      end

      # DescribeMachineInfo返回参数结构体
      class DescribeMachineInfoResponse < TencentCloud::Common::AbstractModel
        # @param MachineIp: 机器ip。
        # @type MachineIp: String
        # @param ProtectDays: 受主机安全保护天数。
        # @type ProtectDays: Integer
        # @param MachineOs: 操作系统。
        # @type MachineOs: String
        # @param MachineName: 主机名称。
        # @type MachineName: String
        # @param MachineStatus: 在线状态。
        # <li>ONLINE: 在线</li>
        # <li>OFFLINE:离线</li>
        # @type MachineStatus: String
        # @param InstanceId: CVM或BM主机唯一标识。
        # @type InstanceId: String
        # @param MachineWanIp: 主机外网IP。
        # @type MachineWanIp: String
        # @param Quuid: CVM或BM主机唯一Uuid。
        # @type Quuid: String
        # @param Uuid: 主机安全客户端唯一Uuid。
        # @type Uuid: String
        # @param IsProVersion: 是否开通专业版。
        # <li>true:是</li>
        # <li>false:否</li>
        # @type IsProVersion: Boolean
        # @param ProVersionOpenDate: 专业版开通时间。
        # @type ProVersionOpenDate: String
        # @param MachineType: 云服务器类型。
        # <li>CVM: 腾讯云服务器</li>
        # <li>BM: 黑石物理机</li>
        # <li>ECM: 边缘计算服务器</li>
        # <li>LH: 轻量应用服务器</li>
        # <li>Other: 混合云机器</li>
        # @type MachineType: String
        # @param MachineRegion: 机器所属地域。如:ap-guangzhou,ap-shanghai
        # @type MachineRegion: String
        # @param PayMode: 主机状态。
        # <li>POSTPAY: 表示后付费,即按量计费  </li>
        # <li>PREPAY: 表示预付费,即包年包月</li>
        # @type PayMode: String
        # @param FreeMalwaresLeft: 免费木马剩余检测数量。
        # @type FreeMalwaresLeft: Integer
        # @param FreeVulsLeft: 免费漏洞剩余检测数量。
        # @type FreeVulsLeft: Integer
        # @param AgentVersion: agent版本号
        # @type AgentVersion: String
        # @param ProVersionDeadline: 专业版到期时间(仅预付费)
        # @type ProVersionDeadline: String
        # @param HasAssetScan: 是否有资产扫描记录,0无,1有
        # @type HasAssetScan: Integer
        # @param ProtectType: 防护版本:BASIC_VERSION 基础版,PRO_VERSION 专业版,Flagship 旗舰版,GENERAL_DISCOUNT 普惠版
        # @type ProtectType: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MachineIp, :ProtectDays, :MachineOs, :MachineName, :MachineStatus, :InstanceId, :MachineWanIp, :Quuid, :Uuid, :IsProVersion, :ProVersionOpenDate, :MachineType, :MachineRegion, :PayMode, :FreeMalwaresLeft, :FreeVulsLeft, :AgentVersion, :ProVersionDeadline, :HasAssetScan, :ProtectType, :RequestId

        def initialize(machineip=nil, protectdays=nil, machineos=nil, machinename=nil, machinestatus=nil, instanceid=nil, machinewanip=nil, quuid=nil, uuid=nil, isproversion=nil, proversionopendate=nil, machinetype=nil, machineregion=nil, paymode=nil, freemalwaresleft=nil, freevulsleft=nil, agentversion=nil, proversiondeadline=nil, hasassetscan=nil, protecttype=nil, requestid=nil)
          @MachineIp = machineip
          @ProtectDays = protectdays
          @MachineOs = machineos
          @MachineName = machinename
          @MachineStatus = machinestatus
          @InstanceId = instanceid
          @MachineWanIp = machinewanip
          @Quuid = quuid
          @Uuid = uuid
          @IsProVersion = isproversion
          @ProVersionOpenDate = proversionopendate
          @MachineType = machinetype
          @MachineRegion = machineregion
          @PayMode = paymode
          @FreeMalwaresLeft = freemalwaresleft
          @FreeVulsLeft = freevulsleft
          @AgentVersion = agentversion
          @ProVersionDeadline = proversiondeadline
          @HasAssetScan = hasassetscan
          @ProtectType = protecttype
          @RequestId = requestid
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @ProtectDays = params['ProtectDays']
          @MachineOs = params['MachineOs']
          @MachineName = params['MachineName']
          @MachineStatus = params['MachineStatus']
          @InstanceId = params['InstanceId']
          @MachineWanIp = params['MachineWanIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @IsProVersion = params['IsProVersion']
          @ProVersionOpenDate = params['ProVersionOpenDate']
          @MachineType = params['MachineType']
          @MachineRegion = params['MachineRegion']
          @PayMode = params['PayMode']
          @FreeMalwaresLeft = params['FreeMalwaresLeft']
          @FreeVulsLeft = params['FreeVulsLeft']
          @AgentVersion = params['AgentVersion']
          @ProVersionDeadline = params['ProVersionDeadline']
          @HasAssetScan = params['HasAssetScan']
          @ProtectType = params['ProtectType']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineLicenseDetail请求参数结构体
      class DescribeMachineLicenseDetailRequest < TencentCloud::Common::AbstractModel
        # @param Quuids: 主机quuid
        # @type Quuids: Array

        attr_accessor :Quuids

        def initialize(quuids=nil)
          @Quuids = quuids
        end

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

      # DescribeMachineLicenseDetail返回参数结构体
      class DescribeMachineLicenseDetailResponse < TencentCloud::Common::AbstractModel
        # @param MachineLicense: 授权信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineLicense: Array
        # @param TotalCount: 总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MachineLicense, :TotalCount, :RequestId

        def initialize(machinelicense=nil, totalcount=nil, requestid=nil)
          @MachineLicense = machinelicense
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['MachineLicense'].nil?
            @MachineLicense = []
            params['MachineLicense'].each do |i|
              machinelicensedetail_tmp = MachineLicenseDetail.new
              machinelicensedetail_tmp.deserialize(i)
              @MachineLicense << machinelicensedetail_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineList请求参数结构体
      class DescribeMachineListRequest < TencentCloud::Common::AbstractModel
        # @param MachineType: 云主机类型。
        # <li>CVM:表示虚拟主机</li>
        # <li>BM:  表示黑石物理机</li>
        # <li>ECM:  表示边缘计算服务器</li>
        # <li>LH:  表示轻量应用服务器</li>
        # <li>Other:  表示混合云机器</li>
        # @type MachineType: String
        # @param MachineRegion: 机器所属地域。如:ap-guangzhou,ap-shanghai
        # @type MachineRegion: String
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 查询关键字 </li>
        # <li>Status - String - 是否必填:否 - 客户端在线状态(OFFLINE: 离线 | ONLINE: 在线 | UNINSTALLED:未安装)</li>
        # <li>Version - String  是否必填:否 - 当前防护版本( PRO_VERSION:专业版 | BASIC_VERSION:基础版)</li>
        # 每个过滤条件只支持一个值,暂不支持多个值“或”关系查询
        # @type Filters: Array

        attr_accessor :MachineType, :MachineRegion, :Limit, :Offset, :Filters

        def initialize(machinetype=nil, machineregion=nil, limit=nil, offset=nil, filters=nil)
          @MachineType = machinetype
          @MachineRegion = machineregion
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @MachineType = params['MachineType']
          @MachineRegion = params['MachineRegion']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
        end
      end

      # DescribeMachineList返回参数结构体
      class DescribeMachineListResponse < TencentCloud::Common::AbstractModel
        # @param Machines: 主机列表
        # @type Machines: Array
        # @param TotalCount: 主机数量
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Machines, :TotalCount, :RequestId

        def initialize(machines=nil, totalcount=nil, requestid=nil)
          @Machines = machines
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Machines'].nil?
            @Machines = []
            params['Machines'].each do |i|
              machine_tmp = Machine.new
              machine_tmp.deserialize(i)
              @Machines << machine_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineOsList请求参数结构体
      class DescribeMachineOsListRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeMachineOsList返回参数结构体
      class DescribeMachineOsListResponse < TencentCloud::Common::AbstractModel
        # @param List: 操作系统列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeMachineRegionList请求参数结构体
      class DescribeMachineRegionListRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeMachineRegionList返回参数结构体
      class DescribeMachineRegionListResponse < TencentCloud::Common::AbstractModel
        # @param RegionList: 云服务器类型地域列表
        # @type RegionList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RegionList, :RequestId

        def initialize(regionlist=nil, requestid=nil)
          @RegionList = regionlist
          @RequestId = requestid
        end

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

      # DescribeMachineRegions请求参数结构体
      class DescribeMachineRegionsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeMachineRegions返回参数结构体
      class DescribeMachineRegionsResponse < TencentCloud::Common::AbstractModel
        # @param CVM: CVM 云服务器地域列表
        # @type CVM: Array
        # @param BM: BM 黑石机器地域列表
        # @type BM: Array
        # @param LH: LH 轻量应用服务器地域列表
        # @type LH: Array
        # @param ECM: ECM 边缘计算服务器地域列表
        # @type ECM: Array
        # @param Other: Other 混合云地域列表
        # @type Other: Array
        # @param ALL: 所有地域列表(包含以上所有地域)
        # @type ALL: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :CVM, :BM, :LH, :ECM, :Other, :ALL, :RequestId

        def initialize(cvm=nil, bm=nil, lh=nil, ecm=nil, other=nil, all=nil, requestid=nil)
          @CVM = cvm
          @BM = bm
          @LH = lh
          @ECM = ecm
          @Other = other
          @ALL = all
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['CVM'].nil?
            @CVM = []
            params['CVM'].each do |i|
              regioninfo_tmp = RegionInfo.new
              regioninfo_tmp.deserialize(i)
              @CVM << regioninfo_tmp
            end
          end
          unless params['BM'].nil?
            @BM = []
            params['BM'].each do |i|
              regioninfo_tmp = RegionInfo.new
              regioninfo_tmp.deserialize(i)
              @BM << regioninfo_tmp
            end
          end
          unless params['LH'].nil?
            @LH = []
            params['LH'].each do |i|
              regioninfo_tmp = RegionInfo.new
              regioninfo_tmp.deserialize(i)
              @LH << regioninfo_tmp
            end
          end
          unless params['ECM'].nil?
            @ECM = []
            params['ECM'].each do |i|
              regioninfo_tmp = RegionInfo.new
              regioninfo_tmp.deserialize(i)
              @ECM << regioninfo_tmp
            end
          end
          unless params['Other'].nil?
            @Other = []
            params['Other'].each do |i|
              regioninfo_tmp = RegionInfo.new
              regioninfo_tmp.deserialize(i)
              @Other << regioninfo_tmp
            end
          end
          unless params['ALL'].nil?
            @ALL = []
            params['ALL'].each do |i|
              regioninfo_tmp = RegionInfo.new
              regioninfo_tmp.deserialize(i)
              @ALL << regioninfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineRiskCnt请求参数结构体
      class DescribeMachineRiskCntRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Uuids- String - 是否必填:否 - 主机uuid</li>
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

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

      # DescribeMachineRiskCnt返回参数结构体
      class DescribeMachineRiskCntResponse < TencentCloud::Common::AbstractModel
        # @param HostLogin: 异地登录
        # @type HostLogin: Integer
        # @param BruteAttack: 密码破解
        # @type BruteAttack: Integer
        # @param MaliciousRequest: 恶意请求
        # @type MaliciousRequest: Integer
        # @param ReverseShell: 反弹shell
        # @type ReverseShell: Integer
        # @param Bash: 高危命令
        # @type Bash: Integer
        # @param PrivilegeEscalation: 本地提权
        # @type PrivilegeEscalation: Integer
        # @param Malware: 木马
        # @type Malware: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :HostLogin, :BruteAttack, :MaliciousRequest, :ReverseShell, :Bash, :PrivilegeEscalation, :Malware, :RequestId

        def initialize(hostlogin=nil, bruteattack=nil, maliciousrequest=nil, reverseshell=nil, bash=nil, privilegeescalation=nil, malware=nil, requestid=nil)
          @HostLogin = hostlogin
          @BruteAttack = bruteattack
          @MaliciousRequest = maliciousrequest
          @ReverseShell = reverseshell
          @Bash = bash
          @PrivilegeEscalation = privilegeescalation
          @Malware = malware
          @RequestId = requestid
        end

        def deserialize(params)
          @HostLogin = params['HostLogin']
          @BruteAttack = params['BruteAttack']
          @MaliciousRequest = params['MaliciousRequest']
          @ReverseShell = params['ReverseShell']
          @Bash = params['Bash']
          @PrivilegeEscalation = params['PrivilegeEscalation']
          @Malware = params['Malware']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachineSnapshot请求参数结构体
      class DescribeMachineSnapshotRequest < TencentCloud::Common::AbstractModel
        # @param Quuids: cvm id 集合
        # @type Quuids: Array
        # @param Type: 查询快照类型0 最近一个 1所有
        # @type Type: Integer
        # @param Limit: 分页个数
        # @type Limit: Integer
        # @param Offset: 分页步长
        # @type Offset: Integer

        attr_accessor :Quuids, :Type, :Limit, :Offset

        def initialize(quuids=nil, type=nil, limit=nil, offset=nil)
          @Quuids = quuids
          @Type = type
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @Quuids = params['Quuids']
          @Type = params['Type']
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeMachineSnapshot返回参数结构体
      class DescribeMachineSnapshotResponse < TencentCloud::Common::AbstractModel
        # @param List: 主机快照列表
        # @type List: Array
        # @param TotalCount: 总个数
        # @type TotalCount: Integer
        # @param SnapshotCheck: 是否都有24小时内创建的快照
        # @type SnapshotCheck: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :SnapshotCheck, :RequestId

        def initialize(list=nil, totalcount=nil, snapshotcheck=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @SnapshotCheck = snapshotcheck
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              machinesnapshotinfo_tmp = MachineSnapshotInfo.new
              machinesnapshotinfo_tmp.deserialize(i)
              @List << machinesnapshotinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @SnapshotCheck = params['SnapshotCheck']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachines请求参数结构体
      class DescribeMachinesRequest < TencentCloud::Common::AbstractModel
        # @param MachineType: 机器所属专区类型
        # CVM 云服务器
        # BM 黑石
        # ECM 边缘计算
        # LH 轻量应用服务器
        # Other 混合云专区
        # @type MachineType: String
        # @param MachineRegion: 机器所属地域。如:ap-guangzhou,ap-shanghai
        # @type MachineRegion: String
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Ips - String - 是否必填:否 - 通过ip查询 </li>
        # <li>Names - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>InstanceIds - String - 是否必填:否 - 通过实例id查询 </li>
        # <li>Status - String - 是否必填:否 - 客户端在线状态(OFFLINE: 离线/关机 | ONLINE: 在线 | UNINSTALLED:未安装 | AGENT_OFFLINE 离线| AGENT_SHUTDOWN 已关机)</li>
        # <li>Version - String  是否必填:否 - 当前防护版本( PRO_VERSION:专业版 | BASIC_VERSION:基础版 | Flagship : 旗舰版 | ProtectedMachines: 专业版+旗舰版)</li>
        # <li>Risk - String 是否必填: 否 - 风险主机( yes ) </li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )
        # 每个过滤条件只支持一个值,暂不支持多个值“或”关系查询
        # <li>Quuid - String - 是否必填: 否 - 云服务器uuid  最大100条.</li>
        # <li>AddedOnTheFifteen- String 是否必填: 否 - 是否只查询15天内新增的主机( 1:是) </li>
        # <li> TagId- String 是否必填: 否 - 查询指定标签关联的主机列表 </li>
        # @type Filters: Array
        # @param ProjectIds: 机器所属业务ID列表
        # @type ProjectIds: Array

        attr_accessor :MachineType, :MachineRegion, :Limit, :Offset, :Filters, :ProjectIds

        def initialize(machinetype=nil, machineregion=nil, limit=nil, offset=nil, filters=nil, projectids=nil)
          @MachineType = machinetype
          @MachineRegion = machineregion
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @ProjectIds = projectids
        end

        def deserialize(params)
          @MachineType = params['MachineType']
          @MachineRegion = params['MachineRegion']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @ProjectIds = params['ProjectIds']
        end
      end

      # DescribeMachines返回参数结构体
      class DescribeMachinesResponse < TencentCloud::Common::AbstractModel
        # @param Machines: 主机列表
        # @type Machines: Array
        # @param TotalCount: 主机数量
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Machines, :TotalCount, :RequestId

        def initialize(machines=nil, totalcount=nil, requestid=nil)
          @Machines = machines
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Machines'].nil?
            @Machines = []
            params['Machines'].each do |i|
              machine_tmp = Machine.new
              machine_tmp.deserialize(i)
              @Machines << machine_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMachinesSimple请求参数结构体
      class DescribeMachinesSimpleRequest < TencentCloud::Common::AbstractModel
        # @param MachineType: 机器所属专区类型
        # CVM 云服务器
        # BM 黑石
        # ECM 边缘计算
        # LH 轻量应用服务器
        # Other 混合云专区
        # @type MachineType: String
        # @param MachineRegion: 机器所属地域。如:ap-guangzhou,ap-shanghai
        # @type MachineRegion: String
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 查询关键字 </li>
        # <li>Version - String  是否必填:否 - 当前防护版本( PRO_VERSION:专业版 | BASIC_VERSION:基础版 | Flagship : 旗舰版 | ProtectedMachines: 专业版+旗舰版 | UnFlagship : 非旗舰版 | PRO_POST_PAY:专业版按量计费 | PRO_PRE_PAY:专业版包年包月)</li>
        # <li>TagId - String - 是否必填:否 - 标签ID </li>
        # @type Filters: Array
        # @param ProjectIds: 机器所属业务ID列表
        # @type ProjectIds: Array

        attr_accessor :MachineType, :MachineRegion, :Limit, :Offset, :Filters, :ProjectIds

        def initialize(machinetype=nil, machineregion=nil, limit=nil, offset=nil, filters=nil, projectids=nil)
          @MachineType = machinetype
          @MachineRegion = machineregion
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @ProjectIds = projectids
        end

        def deserialize(params)
          @MachineType = params['MachineType']
          @MachineRegion = params['MachineRegion']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @ProjectIds = params['ProjectIds']
        end
      end

      # DescribeMachinesSimple返回参数结构体
      class DescribeMachinesSimpleResponse < TencentCloud::Common::AbstractModel
        # @param Machines: 主机列表
        # @type Machines: Array
        # @param TotalCount: 主机数量
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Machines, :TotalCount, :RequestId

        def initialize(machines=nil, totalcount=nil, requestid=nil)
          @Machines = machines
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Machines'].nil?
            @Machines = []
            params['Machines'].each do |i|
              machinesimple_tmp = MachineSimple.new
              machinesimple_tmp.deserialize(i)
              @Machines << machinesimple_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMalWareList请求参数结构体
      class DescribeMalWareListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>FilePath - String - 是否必填:否 - 路径筛选</li>
        # <li>VirusName - String - 是否必填:否 - 描述筛选</li>
        # <li>CreateBeginTime - String - 是否必填:否 - 创建时间筛选-开始时间</li>
        # <li>CreateEndTime - String - 是否必填:否 - 创建时间筛选-结束时间</li>
        # <li>Status - String - 是否必填:否 - 状态筛选 4待处理,5信任,6已隔离,10隔离中,11恢复隔离中,14 已处理</li>
        # @type Filters: Array
        # @param By: 检测排序 CreateTime
        # @type By: String
        # @param Order: 排序方式 ASC,DESC
        # @type Order: String

        attr_accessor :Limit, :Offset, :Filters, :By, :Order

        def initialize(limit=nil, offset=nil, filters=nil, by=nil, order=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @By = by
          @Order = order
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @By = params['By']
          @Order = params['Order']
        end
      end

      # DescribeMalWareList返回参数结构体
      class DescribeMalWareListResponse < TencentCloud::Common::AbstractModel
        # @param MalWareList: 木马列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MalWareList: Array
        # @param TotalCount: 总数量
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MalWareList, :TotalCount, :RequestId

        def initialize(malwarelist=nil, totalcount=nil, requestid=nil)
          @MalWareList = malwarelist
          @TotalCount = totalcount
          @RequestId = requestid
        end

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

      # DescribeMaliciousRequestWhiteList请求参数结构体
      class DescribeMaliciousRequestWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。

        # <li>Domain  - String - 基线名称</li>
        # @type Filters: Array
        # @param Order: 排序方式 [asc:升序|desc:降序]
        # @type Order: String
        # @param By: 排序字段
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # DescribeMaliciousRequestWhiteList返回参数结构体
      class DescribeMaliciousRequestWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param List: 白名单信息列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              maliciousrequestwhitelistinfo_tmp = MaliciousRequestWhiteListInfo.new
              maliciousrequestwhitelistinfo_tmp.deserialize(i)
              @List << maliciousrequestwhitelistinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMalwareFile请求参数结构体
      class DescribeMalwareFileRequest < TencentCloud::Common::AbstractModel
        # @param Id: 木马记录ID
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeMalwareFile返回参数结构体
      class DescribeMalwareFileResponse < TencentCloud::Common::AbstractModel
        # @param FileUrl: 木马文件下载地址
        # @type FileUrl: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FileUrl, :RequestId

        def initialize(fileurl=nil, requestid=nil)
          @FileUrl = fileurl
          @RequestId = requestid
        end

        def deserialize(params)
          @FileUrl = params['FileUrl']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMalwareInfo请求参数结构体
      class DescribeMalwareInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 唯一ID
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeMalwareInfo返回参数结构体
      class DescribeMalwareInfoResponse < TencentCloud::Common::AbstractModel
        # @param MalwareInfo: 恶意文件详情信息
        # @type MalwareInfo: :class:`Tencentcloud::Cwp.v20180228.models.MalwareInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MalwareInfo, :RequestId

        def initialize(malwareinfo=nil, requestid=nil)
          @MalwareInfo = malwareinfo
          @RequestId = requestid
        end

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

      # DescribeMalwareRiskOverview请求参数结构体
      class DescribeMalwareRiskOverviewRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeMalwareRiskOverview返回参数结构体
      class DescribeMalwareRiskOverviewResponse < TencentCloud::Common::AbstractModel
        # @param Data: 无
        # @type Data: :class:`Tencentcloud::Cwp.v20180228.models.MalwareRiskOverview`
        # @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 = MalwareRiskOverview.new
            @Data.deserialize(params['Data'])
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeMalwareRiskWarning请求参数结构体
      class DescribeMalwareRiskWarningRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeMalwareRiskWarning返回参数结构体
      class DescribeMalwareRiskWarningResponse < TencentCloud::Common::AbstractModel
        # @param IsCheckRisk: 是否开启自动扫描:true-开启,false-未开启
        # @type IsCheckRisk: Boolean
        # @param List: 风险文件列表信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param IsPop: 是否弹出提示 true 弹出, false不弹
        # @type IsPop: Boolean
        # @param ProcessList: 异常进程列表信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ProcessList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :IsCheckRisk, :List, :IsPop, :ProcessList, :RequestId

        def initialize(ischeckrisk=nil, list=nil, ispop=nil, processlist=nil, requestid=nil)
          @IsCheckRisk = ischeckrisk
          @List = list
          @IsPop = ispop
          @ProcessList = processlist
          @RequestId = requestid
        end

        def deserialize(params)
          @IsCheckRisk = params['IsCheckRisk']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              malwarerisk_tmp = MalwareRisk.new
              malwarerisk_tmp.deserialize(i)
              @List << malwarerisk_tmp
            end
          end
          @IsPop = params['IsPop']
          unless params['ProcessList'].nil?
            @ProcessList = []
            params['ProcessList'].each do |i|
              malwarerisk_tmp = MalwareRisk.new
              malwarerisk_tmp.deserialize(i)
              @ProcessList << malwarerisk_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeMalwareTimingScanSetting请求参数结构体
      class DescribeMalwareTimingScanSettingRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeMalwareTimingScanSetting返回参数结构体
      class DescribeMalwareTimingScanSettingResponse < TencentCloud::Common::AbstractModel
        # @param CheckPattern: 检测模式 0 全盘检测  1快速检测
        # @type CheckPattern: Integer
        # @param StartTime: 检测周期 开始时间
        # @type StartTime: String
        # @param EndTime: 检测周期 超时结束时间
        # @type EndTime: String
        # @param IsGlobal: 是否全部服务器 1 全部 2 自选
        # @type IsGlobal: Integer
        # @param QuuidList: 自选服务器时必须 主机quuid的string数组
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type QuuidList: Array
        # @param MonitoringPattern: 监控模式 0 标准 1深度
        # @type MonitoringPattern: Integer
        # @param Cycle: 周期 1每天
        # @type Cycle: Integer
        # @param EnableScan: 定时检测开关 0 关闭1 开启
        # @type EnableScan: Integer
        # @param Id: 唯一ID
        # @type Id: Integer
        # @param RealTimeMonitoring: 实时监控0 关闭 1开启
        # @type RealTimeMonitoring: Integer
        # @param AutoIsolation: 是否自动隔离:1-是,0-否
        # @type AutoIsolation: Integer
        # @param ClickTimeout: 一键扫描超时时长,如:1800秒(s)
        # @type ClickTimeout: Integer
        # @param KillProcess: 是否杀掉进程 1杀掉 0不杀掉 只有开启自动隔离才生效
        # @type KillProcess: Integer
        # @param EngineType: 1标准模式(只报严重、高危)、2增强模式(报严重、高危、中危)、3严格模式(报严重、高、中、低、提示)
        # @type EngineType: Integer
        # @param EnableInspiredEngine: 启发引擎 0 关闭 1开启
        # @type EnableInspiredEngine: Integer
        # @param EnableMemShellScan: 是否开启恶意进程查杀[0:未开启,1:开启]
        # @type EnableMemShellScan: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :CheckPattern, :StartTime, :EndTime, :IsGlobal, :QuuidList, :MonitoringPattern, :Cycle, :EnableScan, :Id, :RealTimeMonitoring, :AutoIsolation, :ClickTimeout, :KillProcess, :EngineType, :EnableInspiredEngine, :EnableMemShellScan, :RequestId

        def initialize(checkpattern=nil, starttime=nil, endtime=nil, isglobal=nil, quuidlist=nil, monitoringpattern=nil, cycle=nil, enablescan=nil, id=nil, realtimemonitoring=nil, autoisolation=nil, clicktimeout=nil, killprocess=nil, enginetype=nil, enableinspiredengine=nil, enablememshellscan=nil, requestid=nil)
          @CheckPattern = checkpattern
          @StartTime = starttime
          @EndTime = endtime
          @IsGlobal = isglobal
          @QuuidList = quuidlist
          @MonitoringPattern = monitoringpattern
          @Cycle = cycle
          @EnableScan = enablescan
          @Id = id
          @RealTimeMonitoring = realtimemonitoring
          @AutoIsolation = autoisolation
          @ClickTimeout = clicktimeout
          @KillProcess = killprocess
          @EngineType = enginetype
          @EnableInspiredEngine = enableinspiredengine
          @EnableMemShellScan = enablememshellscan
          @RequestId = requestid
        end

        def deserialize(params)
          @CheckPattern = params['CheckPattern']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @IsGlobal = params['IsGlobal']
          @QuuidList = params['QuuidList']
          @MonitoringPattern = params['MonitoringPattern']
          @Cycle = params['Cycle']
          @EnableScan = params['EnableScan']
          @Id = params['Id']
          @RealTimeMonitoring = params['RealTimeMonitoring']
          @AutoIsolation = params['AutoIsolation']
          @ClickTimeout = params['ClickTimeout']
          @KillProcess = params['KillProcess']
          @EngineType = params['EngineType']
          @EnableInspiredEngine = params['EnableInspiredEngine']
          @EnableMemShellScan = params['EnableMemShellScan']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMalwareWhiteListAffectList请求参数结构体
      class DescribeMalwareWhiteListAffectListRequest < TencentCloud::Common::AbstractModel
        # @param WhiteListId: 白名单规则id
        # @type WhiteListId: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Filters: 过滤条件。
        # <li>HostIp - String - 是否必填:否 - 主机ip查询 </li>
        # <li>FileName - String - 是否必填:否 - 文件名称查询 </li>
        # <li>FileDirectory - String - 是否必填:否 - 文件目录查询 </li>
        # <li>FileExtension - String - 是否必填:否 - 文件后缀查询 </li>
        # <li>Mode - String - 是否必填:否 - 规则类型 0 MD5,1自定义</li>
        # <li>Md5 - String - 是否必填:否 - MD5查询 </li>
        # @type Filters: Array
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [CreateTime]
        # @type By: String

        attr_accessor :WhiteListId, :Offset, :Limit, :Filters, :Order, :By

        def initialize(whitelistid=nil, offset=nil, limit=nil, filters=nil, order=nil, by=nil)
          @WhiteListId = whitelistid
          @Offset = offset
          @Limit = limit
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @WhiteListId = params['WhiteListId']
          @Offset = params['Offset']
          @Limit = params['Limit']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeMalwareWhiteListAffectList返回参数结构体
      class DescribeMalwareWhiteListAffectListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总记录数
        # @type TotalCount: Integer
        # @param AffectList: 白名单规则影响事件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AffectList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :AffectList, :RequestId

        def initialize(totalcount=nil, affectlist=nil, requestid=nil)
          @TotalCount = totalcount
          @AffectList = affectlist
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['AffectList'].nil?
            @AffectList = []
            params['AffectList'].each do |i|
              malwarewhitelistaffectevent_tmp = MalwareWhiteListAffectEvent.new
              malwarewhitelistaffectevent_tmp.deserialize(i)
              @AffectList << malwarewhitelistaffectevent_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeMalwareWhiteList请求参数结构体
      class DescribeMalwareWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Filters: 过滤条件。
        # <li>HostIp - String - 是否必填:否 - 主机ip查询 </li>
        # <li>FileName - String - 是否必填:否 - 文件名称查询 </li>
        # <li>FileDirectory - String - 是否必填:否 - 文件目录查询 </li>
        # <li>FileExtension - String - 是否必填:否 - 文件后缀查询 </li>
        # <li>Mode - String - 是否必填:否 - 规则类型 0 MD5,1自定义</li>
        # <li>Md5 - String - 是否必填:否 - MD5查询 </li>
        # @type Filters: Array
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [EventsCount]
        # @type By: String

        attr_accessor :Offset, :Limit, :Filters, :Order, :By

        def initialize(offset=nil, limit=nil, filters=nil, order=nil, by=nil)
          @Offset = offset
          @Limit = limit
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Offset = params['Offset']
          @Limit = params['Limit']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeMalwareWhiteList返回参数结构体
      class DescribeMalwareWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总记录数
        # @type TotalCount: Integer
        # @param WhiteList: 白名单列表
        # @type WhiteList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :WhiteList, :RequestId

        def initialize(totalcount=nil, whitelist=nil, requestid=nil)
          @TotalCount = totalcount
          @WhiteList = whitelist
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['WhiteList'].nil?
            @WhiteList = []
            params['WhiteList'].each do |i|
              malwarewhitelistinfo_tmp = MalwareWhiteListInfo.new
              malwarewhitelistinfo_tmp.deserialize(i)
              @WhiteList << malwarewhitelistinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeMonthInspectionReport请求参数结构体
      class DescribeMonthInspectionReportRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页大小
        # @type Limit: Integer
        # @param Offset: 分页步长
        # @type Offset: Integer

        attr_accessor :Limit, :Offset

        def initialize(limit=nil, offset=nil)
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeMonthInspectionReport返回参数结构体
      class DescribeMonthInspectionReportResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 巡检报告列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              monthinspectionreport_tmp = MonthInspectionReport.new
              monthinspectionreport_tmp.deserialize(i)
              @List << monthinspectionreport_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeNetAttackSetting请求参数结构体
      class DescribeNetAttackSettingRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeNetAttackSetting返回参数结构体
      class DescribeNetAttackSettingResponse < TencentCloud::Common::AbstractModel
        # @param NetAttackEnable: 0 关闭网络攻击检测,1开启网络攻击检测
        # @type NetAttackEnable: Integer
        # @param NetAttackAlarmStatus: 0 新增告警事件默认待处理,1新增告警事件默认已处理,3新增告警事件默认忽略
        # @type NetAttackAlarmStatus: Integer
        # @param Scope: 1 全部旗舰版主机,0 InstanceIds列表主机
        # @type Scope: Integer
        # @param InstanceIds: 自选主机
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceIds: Array
        # @param ExcludeInstanceIds: 自选排除主机
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ExcludeInstanceIds: Array
        # @param AutoInclude: 新增资产自动包含 0 不包含 1包含
        # @type AutoInclude: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :NetAttackEnable, :NetAttackAlarmStatus, :Scope, :InstanceIds, :ExcludeInstanceIds, :AutoInclude, :RequestId

        def initialize(netattackenable=nil, netattackalarmstatus=nil, scope=nil, instanceids=nil, excludeinstanceids=nil, autoinclude=nil, requestid=nil)
          @NetAttackEnable = netattackenable
          @NetAttackAlarmStatus = netattackalarmstatus
          @Scope = scope
          @InstanceIds = instanceids
          @ExcludeInstanceIds = excludeinstanceids
          @AutoInclude = autoinclude
          @RequestId = requestid
        end

        def deserialize(params)
          @NetAttackEnable = params['NetAttackEnable']
          @NetAttackAlarmStatus = params['NetAttackAlarmStatus']
          @Scope = params['Scope']
          @InstanceIds = params['InstanceIds']
          @ExcludeInstanceIds = params['ExcludeInstanceIds']
          @AutoInclude = params['AutoInclude']
          @RequestId = params['RequestId']
        end
      end

      # DescribeNetAttackWhiteList请求参数结构体
      class DescribeNetAttackWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip查询 </li>
        # <li>SrcIP- String - 是否必填:否 - 白名单ip查询 </li>
        # @type Filters: Array
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [CreateTime]
        # @type By: String

        attr_accessor :Offset, :Limit, :Filters, :Order, :By

        def initialize(offset=nil, limit=nil, filters=nil, order=nil, by=nil)
          @Offset = offset
          @Limit = limit
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Offset = params['Offset']
          @Limit = params['Limit']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeNetAttackWhiteList返回参数结构体
      class DescribeNetAttackWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总记录数
        # @type TotalCount: Integer
        # @param WhiteList: 白名单列表
        # @type WhiteList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :WhiteList, :RequestId

        def initialize(totalcount=nil, whitelist=nil, requestid=nil)
          @TotalCount = totalcount
          @WhiteList = whitelist
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['WhiteList'].nil?
            @WhiteList = []
            params['WhiteList'].each do |i|
              netattackwhiterule_tmp = NetAttackWhiteRule.new
              netattackwhiterule_tmp.deserialize(i)
              @WhiteList << netattackwhiterule_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeOpenPortStatistics请求参数结构体
      class DescribeOpenPortStatisticsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Port - Uint64 - 是否必填:否 - 端口号</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeOpenPortStatistics返回参数结构体
      class DescribeOpenPortStatisticsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 端口统计列表总数
        # @type TotalCount: Integer
        # @param OpenPortStatistics: 端口统计数据列表
        # @type OpenPortStatistics: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :OpenPortStatistics, :RequestId

        def initialize(totalcount=nil, openportstatistics=nil, requestid=nil)
          @TotalCount = totalcount
          @OpenPortStatistics = openportstatistics
          @RequestId = requestid
        end

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

      # DescribeOverviewStatistics请求参数结构体
      class DescribeOverviewStatisticsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeOverviewStatistics返回参数结构体
      class DescribeOverviewStatisticsResponse < TencentCloud::Common::AbstractModel
        # @param OnlineMachineNum: 服务器在线数。
        # @type OnlineMachineNum: Integer
        # @param ProVersionMachineNum: 专业服务器数。
        # @type ProVersionMachineNum: Integer
        # @param MalwareNum: 木马文件数。
        # @type MalwareNum: Integer
        # @param NonlocalLoginNum: 异地登录数。
        # @type NonlocalLoginNum: Integer
        # @param BruteAttackSuccessNum: 暴力破解成功数。
        # @type BruteAttackSuccessNum: Integer
        # @param VulNum: 漏洞数。
        # @type VulNum: Integer
        # @param BaseLineNum: 安全基线数。
        # @type BaseLineNum: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :OnlineMachineNum, :ProVersionMachineNum, :MalwareNum, :NonlocalLoginNum, :BruteAttackSuccessNum, :VulNum, :BaseLineNum, :RequestId

        def initialize(onlinemachinenum=nil, proversionmachinenum=nil, malwarenum=nil, nonlocalloginnum=nil, bruteattacksuccessnum=nil, vulnum=nil, baselinenum=nil, requestid=nil)
          @OnlineMachineNum = onlinemachinenum
          @ProVersionMachineNum = proversionmachinenum
          @MalwareNum = malwarenum
          @NonlocalLoginNum = nonlocalloginnum
          @BruteAttackSuccessNum = bruteattacksuccessnum
          @VulNum = vulnum
          @BaseLineNum = baselinenum
          @RequestId = requestid
        end

        def deserialize(params)
          @OnlineMachineNum = params['OnlineMachineNum']
          @ProVersionMachineNum = params['ProVersionMachineNum']
          @MalwareNum = params['MalwareNum']
          @NonlocalLoginNum = params['NonlocalLoginNum']
          @BruteAttackSuccessNum = params['BruteAttackSuccessNum']
          @VulNum = params['VulNum']
          @BaseLineNum = params['BaseLineNum']
          @RequestId = params['RequestId']
        end
      end

      # DescribePrivilegeEventInfo请求参数结构体
      class DescribePrivilegeEventInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 事件id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribePrivilegeEventInfo返回参数结构体
      class DescribePrivilegeEventInfoResponse < TencentCloud::Common::AbstractModel
        # @param PrivilegeEventInfo: 本地提权详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PrivilegeEventInfo: :class:`Tencentcloud::Cwp.v20180228.models.PrivilegeEventInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PrivilegeEventInfo, :RequestId

        def initialize(privilegeeventinfo=nil, requestid=nil)
          @PrivilegeEventInfo = privilegeeventinfo
          @RequestId = requestid
        end

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

      # DescribePrivilegeEvents请求参数结构体
      class DescribePrivilegeEventsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 关键词(主机IP)</li>
        # @type Filters: Array
        # @param Order: 排序方式:根据请求次数排序:asc-升序/desc-降序
        # @type Order: String
        # @param By: 排序字段:CreateTime-发现时间
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribePrivilegeEvents返回参数结构体
      class DescribePrivilegeEventsResponse < TencentCloud::Common::AbstractModel
        # @param List: 数据列表
        # @type List: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              privilegeescalationprocess_tmp = PrivilegeEscalationProcess.new
              privilegeescalationprocess_tmp.deserialize(i)
              @List << privilegeescalationprocess_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribePrivilegeRules请求参数结构体
      class DescribePrivilegeRulesRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 关键字(进程名称)</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribePrivilegeRules返回参数结构体
      class DescribePrivilegeRulesResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表内容
        # @type List: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              privilegerule_tmp = PrivilegeRule.new
              privilegerule_tmp.deserialize(i)
              @List << privilegerule_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeProVersionInfo请求参数结构体
      class DescribeProVersionInfoRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeProVersionInfo返回参数结构体
      class DescribeProVersionInfoResponse < TencentCloud::Common::AbstractModel
        # @param PostPayCost: 后付费昨日扣费
        # @type PostPayCost: Integer
        # @param IsAutoOpenProVersion: 新增主机是否自动开通专业版
        # @type IsAutoOpenProVersion: Boolean
        # @param ProVersionNum: 开通专业版主机数
        # @type ProVersionNum: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PostPayCost, :IsAutoOpenProVersion, :ProVersionNum, :RequestId

        def initialize(postpaycost=nil, isautoopenproversion=nil, proversionnum=nil, requestid=nil)
          @PostPayCost = postpaycost
          @IsAutoOpenProVersion = isautoopenproversion
          @ProVersionNum = proversionnum
          @RequestId = requestid
        end

        def deserialize(params)
          @PostPayCost = params['PostPayCost']
          @IsAutoOpenProVersion = params['IsAutoOpenProVersion']
          @ProVersionNum = params['ProVersionNum']
          @RequestId = params['RequestId']
        end
      end

      # DescribeProVersionStatus请求参数结构体
      class DescribeProVersionStatusRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机安全客户端UUID、填写"all"表示所有主机。
        # @type Uuid: String

        attr_accessor :Uuid

        def initialize(uuid=nil)
          @Uuid = uuid
        end

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

      # DescribeProVersionStatus返回参数结构体
      class DescribeProVersionStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DescribeProcessStatistics请求参数结构体
      class DescribeProcessStatisticsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>ProcessName - String - 是否必填:否 - 进程名</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeProcessStatistics返回参数结构体
      class DescribeProcessStatisticsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 进程统计列表记录总数。
        # @type TotalCount: Integer
        # @param ProcessStatistics: 进程统计列表数据数组。
        # @type ProcessStatistics: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :ProcessStatistics, :RequestId

        def initialize(totalcount=nil, processstatistics=nil, requestid=nil)
          @TotalCount = totalcount
          @ProcessStatistics = processstatistics
          @RequestId = requestid
        end

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

      # DescribeProductStatus请求参数结构体
      class DescribeProductStatusRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeProductStatus返回参数结构体
      class DescribeProductStatusResponse < TencentCloud::Common::AbstractModel
        # @param ReturnCode: 接口调用返回状态码
        # @type ReturnCode: Integer
        # @param ReturnMsg: 接口调用返回信息
        # @type ReturnMsg: String
        # @param Data: 防护状态及试用信息
        # @type Data: :class:`Tencentcloud::Cwp.v20180228.models.ProductStatusInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ReturnCode, :ReturnMsg, :Data, :RequestId

        def initialize(returncode=nil, returnmsg=nil, data=nil, requestid=nil)
          @ReturnCode = returncode
          @ReturnMsg = returnmsg
          @Data = data
          @RequestId = requestid
        end

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

      # DescribeProtectDirList请求参数结构体
      class DescribeProtectDirListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页条数 最大100条
        # @type Limit: Integer
        # @param Offset: 偏移量
        # @type Offset: Integer
        # @param Filters: DirName 网站名称
        # DirPath 网站防护目录地址
        # @type Filters: Array
        # @param Order: asc:升序/desc:降序
        # @type Order: String
        # @param By: 排序字段
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeProtectDirList返回参数结构体
      class DescribeProtectDirListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param List: 防护目录列表信息
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              protectdirinfo_tmp = ProtectDirInfo.new
              protectdirinfo_tmp.deserialize(i)
              @List << protectdirinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeProtectDirRelatedServer请求参数结构体
      class DescribeProtectDirRelatedServerRequest < TencentCloud::Common::AbstractModel
        # @param Id: 唯一ID
        # @type Id: String
        # @param Limit: 分页条数 最大100条
        # @type Limit: Integer
        # @param Offset: 偏移量
        # @type Offset: Integer
        # @param Filters: 过滤参数 ProtectStatus
        # @type Filters: Array
        # @param Order: 排序方式
        # @type Order: String
        # @param By: 排序值
        # @type By: String

        attr_accessor :Id, :Limit, :Offset, :Filters, :Order, :By

        def initialize(id=nil, limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Id = id
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Id = params['Id']
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeProtectDirRelatedServer返回参数结构体
      class DescribeProtectDirRelatedServerResponse < TencentCloud::Common::AbstractModel
        # @param List: 网站关联服务器列表信息
        # @type List: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param ProtectServerCount: 已开启防护总数
        # @type ProtectServerCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :ProtectServerCount, :RequestId

        def initialize(list=nil, totalcount=nil, protectservercount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @ProtectServerCount = protectservercount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              protectdirrelatedserver_tmp = ProtectDirRelatedServer.new
              protectdirrelatedserver_tmp.deserialize(i)
              @List << protectdirrelatedserver_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @ProtectServerCount = params['ProtectServerCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeProtectNetList请求参数结构体
      class DescribeProtectNetListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Keyword- String - 是否必填:否 - 关键词过滤,</li>
        # <li>Uuids - String - 是否必填:否 - 主机id过滤</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,最大值为100
        # @type Limit: Integer
        # @param Offset: 排序步长
        # @type Offset: Integer
        # @param Order: 排序方法
        # @type Order: String
        # @param By: 排序字段 StartTime,EndTime
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

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

      # DescribeProtectNetList返回参数结构体
      class DescribeProtectNetListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param List: 安全管家数据
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              protectnetinfo_tmp = ProtectNetInfo.new
              protectnetinfo_tmp.deserialize(i)
              @List << protectnetinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribePublicProxyInstallCommand请求参数结构体
      class DescribePublicProxyInstallCommandRequest < TencentCloud::Common::AbstractModel
        # @param Ip: nginx主机ip列表,逗号分隔
        # @type Ip: String

        attr_accessor :Ip

        def initialize(ip=nil)
          @Ip = ip
        end

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

      # DescribePublicProxyInstallCommand返回参数结构体
      class DescribePublicProxyInstallCommandResponse < TencentCloud::Common::AbstractModel
        # @param NginxCommand: Nginx安装命令
        # @type NginxCommand: String
        # @param KeepAliveCommand: Keepalived安装命令
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type KeepAliveCommand: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :NginxCommand, :KeepAliveCommand, :RequestId

        def initialize(nginxcommand=nil, keepalivecommand=nil, requestid=nil)
          @NginxCommand = nginxcommand
          @KeepAliveCommand = keepalivecommand
          @RequestId = requestid
        end

        def deserialize(params)
          @NginxCommand = params['NginxCommand']
          @KeepAliveCommand = params['KeepAliveCommand']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseBackupList请求参数结构体
      class DescribeRansomDefenseBackupListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Status - Int - 是否必填:否 - 通过勒索状态查询:0未勒索,1已勒索 </li>
        # <li>CreateTimeBegin - string - 是否必填:否 - 创建时间开始 </li>
        # <li>CreateTimeEnd - string - 是否必填:否 - 创建时间结束 </li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime
        # @type By: String

        attr_accessor :Limit, :Offset, :Quuid, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, quuid=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filters_tmp = Filters.new
              filters_tmp.deserialize(i)
              @Filters << filters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeRansomDefenseBackupList返回参数结构体
      class DescribeRansomDefenseBackupListResponse < TencentCloud::Common::AbstractModel
        # @param List: 备份列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              ransomdefensebackup_tmp = RansomDefenseBackup.new
              ransomdefensebackup_tmp.deserialize(i)
              @List << ransomdefensebackup_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseEventsList请求参数结构体
      class DescribeRansomDefenseEventsListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>HostName- string- 主机名称</li>
        # <li>Status - Uint64 - 0待处理,1已处理,2已信任</li>
        # <li>HostIp- String - 主机ip</li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # DescribeRansomDefenseEventsList返回参数结构体
      class DescribeRansomDefenseEventsListResponse < TencentCloud::Common::AbstractModel
        # @param List: 事件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              ransomdefenseevent_tmp = RansomDefenseEvent.new
              ransomdefenseevent_tmp.deserialize(i)
              @List << ransomdefenseevent_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseMachineList请求参数结构体
      class DescribeRansomDefenseMachineListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Ips - String - 是否必填:否 - 通过ip查询 </li>
        # <li>MachineNames - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>Names - String - 是否必填:否 - 通过策略名查询 </li>
        # <li>Status - String - 是否必填:否 - 策略状态:0备份中,1备份成功,2备份失败, 9暂无备份 </li>
        # <li>LastBackupStatus - String - 是否必填:否 - 上次备份状态:0备份中,1备份成功,2备份失败, 9暂无备份 </li>
        # <li>LastBackupTimeBegin - String - 是否必填:否 - 最近一次备份时间开始</li>
        # <li>LastBackupTimeEnd - String - 是否必填:否 - 最近一次备份时间结束</li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime、LastBackupTime、BackupCount
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # DescribeRansomDefenseMachineList返回参数结构体
      class DescribeRansomDefenseMachineListResponse < TencentCloud::Common::AbstractModel
        # @param List: 主机列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              ransomdefensestrategymachinebackupinfo_tmp = RansomDefenseStrategyMachineBackupInfo.new
              ransomdefensestrategymachinebackupinfo_tmp.deserialize(i)
              @List << ransomdefensestrategymachinebackupinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseMachineStrategyInfo请求参数结构体
      class DescribeRansomDefenseMachineStrategyInfoRequest < TencentCloud::Common::AbstractModel
        # @param Quuids: 主机Quuid列表
        # @type Quuids: Array

        attr_accessor :Quuids

        def initialize(quuids=nil)
          @Quuids = quuids
        end

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

      # DescribeRansomDefenseMachineStrategyInfo返回参数结构体
      class DescribeRansomDefenseMachineStrategyInfoResponse < TencentCloud::Common::AbstractModel
        # @param StrategyIds: 策略ID列表,0表示未绑定任何策略
        # @type StrategyIds: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :StrategyIds, :RequestId

        def initialize(strategyids=nil, requestid=nil)
          @StrategyIds = strategyids
          @RequestId = requestid
        end

        def deserialize(params)
          @StrategyIds = params['StrategyIds']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseRollBackTaskList请求参数结构体
      class DescribeRansomDefenseRollBackTaskListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Ips- string- 主机名称</li>
        # <li>Status - Uint64 - 0进行中,1成功,2失败</li>
        # <li>Names- String - 主机名称</li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime、ModifyTime
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # DescribeRansomDefenseRollBackTaskList返回参数结构体
      class DescribeRansomDefenseRollBackTaskListResponse < TencentCloud::Common::AbstractModel
        # @param List: 任务列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              ransomdefenserollbacktask_tmp = RansomDefenseRollbackTask.new
              ransomdefenserollbacktask_tmp.deserialize(i)
              @List << ransomdefenserollbacktask_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseState请求参数结构体
      class DescribeRansomDefenseStateRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeRansomDefenseState返回参数结构体
      class DescribeRansomDefenseStateResponse < TencentCloud::Common::AbstractModel
        # @param StrategyCount: 已开启防御策略数量
        # @type StrategyCount: Integer
        # @param MachineCount: 已开启防御机器数
        # @type MachineCount: Integer
        # @param SnapshotSize: 快照总容量
        # @type SnapshotSize: Integer
        # @param RollBackTaskCount: 恢复备份任务数量
        # @type RollBackTaskCount: Integer
        # @param ProgressingSnapshotTaskCount: 进行中的创建快照任务数
        # @type ProgressingSnapshotTaskCount: Integer
        # @param ProgressingRollBackTaskCount: 进行中的恢复备份任务数
        # @type ProgressingRollBackTaskCount: Integer
        # @param MachineTotal: 机器总数
        # @type MachineTotal: Integer
        # @param StrategyTotal: 策略总数
        # @type StrategyTotal: Integer
        # @param BalanceStatus: 账户状态:0未欠费,1已欠费
        # @type BalanceStatus: Integer
        # @param BackupMachineCount: 已备份主机数
        # @type BackupMachineCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :StrategyCount, :MachineCount, :SnapshotSize, :RollBackTaskCount, :ProgressingSnapshotTaskCount, :ProgressingRollBackTaskCount, :MachineTotal, :StrategyTotal, :BalanceStatus, :BackupMachineCount, :RequestId

        def initialize(strategycount=nil, machinecount=nil, snapshotsize=nil, rollbacktaskcount=nil, progressingsnapshottaskcount=nil, progressingrollbacktaskcount=nil, machinetotal=nil, strategytotal=nil, balancestatus=nil, backupmachinecount=nil, requestid=nil)
          @StrategyCount = strategycount
          @MachineCount = machinecount
          @SnapshotSize = snapshotsize
          @RollBackTaskCount = rollbacktaskcount
          @ProgressingSnapshotTaskCount = progressingsnapshottaskcount
          @ProgressingRollBackTaskCount = progressingrollbacktaskcount
          @MachineTotal = machinetotal
          @StrategyTotal = strategytotal
          @BalanceStatus = balancestatus
          @BackupMachineCount = backupmachinecount
          @RequestId = requestid
        end

        def deserialize(params)
          @StrategyCount = params['StrategyCount']
          @MachineCount = params['MachineCount']
          @SnapshotSize = params['SnapshotSize']
          @RollBackTaskCount = params['RollBackTaskCount']
          @ProgressingSnapshotTaskCount = params['ProgressingSnapshotTaskCount']
          @ProgressingRollBackTaskCount = params['ProgressingRollBackTaskCount']
          @MachineTotal = params['MachineTotal']
          @StrategyTotal = params['StrategyTotal']
          @BalanceStatus = params['BalanceStatus']
          @BackupMachineCount = params['BackupMachineCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseStrategyDetail请求参数结构体
      class DescribeRansomDefenseStrategyDetailRequest < TencentCloud::Common::AbstractModel
        # @param Id: 策略ID
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeRansomDefenseStrategyDetail返回参数结构体
      class DescribeRansomDefenseStrategyDetailResponse < TencentCloud::Common::AbstractModel
        # @param Strategy: 策略详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Strategy: :class:`Tencentcloud::Cwp.v20180228.models.RansomDefenseStrategyDetail`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Strategy, :RequestId

        def initialize(strategy=nil, requestid=nil)
          @Strategy = strategy
          @RequestId = requestid
        end

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

      # DescribeRansomDefenseStrategyList请求参数结构体
      class DescribeRansomDefenseStrategyListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Ips - String - 是否必填:否 - 通过ip查询 </li>
        # <li>MachineNames - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>Names - String - 是否必填:否 - 通过防勒索策略名查询 </li>
        # <li>Dirs - String - 是否必填:否 - 诱饵目录 </li>
        # <li>Status - String - 是否必填:否 - 策略状态:0关闭,1开启 </li>
        # <li>BackupType - String - 是否必填:否 - 备份模式:0-按周;1-按天 </li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime, MachineCount
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # DescribeRansomDefenseStrategyList返回参数结构体
      class DescribeRansomDefenseStrategyListResponse < TencentCloud::Common::AbstractModel
        # @param List: 策略列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              ransomdefensestrategy_tmp = RansomDefenseStrategy.new
              ransomdefensestrategy_tmp.deserialize(i)
              @List << ransomdefensestrategy_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseStrategyMachines请求参数结构体
      class DescribeRansomDefenseStrategyMachinesRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页参数 最大100条
        # @type Limit: Integer
        # @param Offset: 分页参数
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Ips- string- 主机名称</li>
        # <li>Status - Uint64 - 0未绑定,1已绑定</li>
        # <li>Names- String - 主机名称</li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime
        # @type By: String
        # @param Id: 防勒索策略ID
        # @type Id: Integer

        attr_accessor :Limit, :Offset, :Filters, :Order, :By, :Id

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil, id=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
          @Id = id
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filters_tmp = Filters.new
              filters_tmp.deserialize(i)
              @Filters << filters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
          @Id = params['Id']
        end
      end

      # DescribeRansomDefenseStrategyMachines返回参数结构体
      class DescribeRansomDefenseStrategyMachinesResponse < TencentCloud::Common::AbstractModel
        # @param List: 主机列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 分页查询记录总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              ransomdefensestrategymachinedetail_tmp = RansomDefenseStrategyMachineDetail.new
              ransomdefensestrategymachinedetail_tmp.deserialize(i)
              @List << ransomdefensestrategymachinedetail_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRansomDefenseTrend请求参数结构体
      class DescribeRansomDefenseTrendRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeRansomDefenseTrend返回参数结构体
      class DescribeRansomDefenseTrendResponse < TencentCloud::Common::AbstractModel
        # @param EventCount: 勒索事件数量
        # @type EventCount: Integer
        # @param IndustryCount: 影响行业数量
        # @type IndustryCount: Integer
        # @param CompanyCount: 开通勒索的公司数量
        # @type CompanyCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :EventCount, :IndustryCount, :CompanyCount, :RequestId

        def initialize(eventcount=nil, industrycount=nil, companycount=nil, requestid=nil)
          @EventCount = eventcount
          @IndustryCount = industrycount
          @CompanyCount = companycount
          @RequestId = requestid
        end

        def deserialize(params)
          @EventCount = params['EventCount']
          @IndustryCount = params['IndustryCount']
          @CompanyCount = params['CompanyCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRecommendedProtectCpu请求参数结构体
      class DescribeRecommendedProtectCpuRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeRecommendedProtectCpu返回参数结构体
      class DescribeRecommendedProtectCpuResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DescribeReverseShellEventInfo请求参数结构体
      class DescribeReverseShellEventInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 事件id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeReverseShellEventInfo返回参数结构体
      class DescribeReverseShellEventInfoResponse < TencentCloud::Common::AbstractModel
        # @param ReverseShellEventInfo: 反弹shell详情信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ReverseShellEventInfo: :class:`Tencentcloud::Cwp.v20180228.models.ReverseShellEventInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ReverseShellEventInfo, :RequestId

        def initialize(reverseshelleventinfo=nil, requestid=nil)
          @ReverseShellEventInfo = reverseshelleventinfo
          @RequestId = requestid
        end

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

      # DescribeReverseShellEvents请求参数结构体
      class DescribeReverseShellEventsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 关键字(主机内网IP|进程名)</li>
        # @type Filters: Array
        # @param Order: 排序方式:根据请求次数排序:asc-升序/desc-降序
        # @type Order: String
        # @param By: 排序字段:CreateTime-发生时间
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeReverseShellEvents返回参数结构体
      class DescribeReverseShellEventsResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表内容
        # @type List: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              reverseshell_tmp = ReverseShell.new
              reverseshell_tmp.deserialize(i)
              @List << reverseshell_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeReverseShellRules请求参数结构体
      class DescribeReverseShellRulesRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 关键字(进程名称)</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :Filters

        def initialize(limit=nil, offset=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeReverseShellRules返回参数结构体
      class DescribeReverseShellRulesResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表内容
        # @type List: Array
        # @param TotalCount: 总条数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              reverseshellrule_tmp = ReverseShellRule.new
              reverseshellrule_tmp.deserialize(i)
              @List << reverseshellrule_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRiskBatchStatus请求参数结构体
      class DescribeRiskBatchStatusRequest < TencentCloud::Common::AbstractModel
        # @param RiskType: 操作事件类型,文件查杀:MALWARE,异常登录:HOST_LOGIN,密码破解:BRUTE_ATTACK,恶意请求:MALICIOUS_REQUEST,高危命令:BASH_EVENT,本地提权:PRIVILEGE_EVENT,反弹shell:REVERSE_SHELL
        # @type RiskType: String

        attr_accessor :RiskType

        def initialize(risktype=nil)
          @RiskType = risktype
        end

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

      # DescribeRiskBatchStatus返回参数结构体
      class DescribeRiskBatchStatusResponse < TencentCloud::Common::AbstractModel
        # @param Status: Handling:正在执行删除操作,
        # Pending:没有任务执行
        # @type Status: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Status, :RequestId

        def initialize(status=nil, requestid=nil)
          @Status = status
          @RequestId = requestid
        end

        def deserialize(params)
          @Status = params['Status']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRiskDnsEventInfo请求参数结构体
      class DescribeRiskDnsEventInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 恶意请求事件Id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeRiskDnsEventInfo返回参数结构体
      class DescribeRiskDnsEventInfoResponse < TencentCloud::Common::AbstractModel
        # @param Info: 恶意请求事件详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Info: :class:`Tencentcloud::Cwp.v20180228.models.RiskDnsEvent`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Info, :RequestId

        def initialize(info=nil, requestid=nil)
          @Info = info
          @RequestId = requestid
        end

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

      # DescribeRiskDnsEventList请求参数结构体
      class DescribeRiskDnsEventListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>IpOrName - String - 是否必填:否 - 主机Ip或别名筛选</li>
        # <li>HostId - String - 是否必填:否 - 主机Id</li>
        # <li>AgentId - String - 是否必填:否 - 客户端Id</li>
        # <li>PolicyType - String - 是否必填:否 - 策略类型,0:系统策略1:用户自定义策略</li>
        # <li>Domain - String - 是否必填:否 - 域名(先对域名做urlencode,再base64)</li>
        # <li>HandleStatus - String - 是否必填:否 - 状态筛选0:待处理;2:信任;3:不信任</li>
        # <li>BeginTime - String - 是否必填:否 - 最近访问开始时间</li>
        # <li>EndTime - String - 是否必填:否 - 最近访问结束时间</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式:根据请求次数排序:[asc:升序|desc:降序]
        # @type Order: String
        # @param By: 排序字段:[AccessCount:请求次数|LastTime:最近请求时间]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeRiskDnsEventList返回参数结构体
      class DescribeRiskDnsEventListResponse < TencentCloud::Common::AbstractModel
        # @param List: 恶意请求事件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              riskdnsevent_tmp = RiskDnsEvent.new
              riskdnsevent_tmp.deserialize(i)
              @List << riskdnsevent_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeRiskDnsInfo请求参数结构体
      class DescribeRiskDnsInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 恶意请求-事件Id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeRiskDnsInfo返回参数结构体
      class DescribeRiskDnsInfoResponse < TencentCloud::Common::AbstractModel
        # @param RiskDnsInfo: 恶意请求事件详情
        # @type RiskDnsInfo: :class:`Tencentcloud::Cwp.v20180228.models.RiskDnsList`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RiskDnsInfo, :RequestId

        def initialize(riskdnsinfo=nil, requestid=nil)
          @RiskDnsInfo = riskdnsinfo
          @RequestId = requestid
        end

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

      # DescribeRiskDnsList请求参数结构体
      class DescribeRiskDnsListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>Url - String - 是否必填:否 - Url筛选</li>
        # <li>Status - String - 是否必填:否 - 状态筛选0:待处理;2:信任;3:不信任</li>
        # <li>MergeBeginTime - String - 是否必填:否 - 最近访问开始时间</li>
        # <li>MergeEndTime - String - 是否必填:否 - 最近访问结束时间</li>
        # @type Filters: Array
        # @param Order: 排序方式:根据请求次数排序:asc-升序/desc-降序
        # @type Order: String
        # @param By: 排序字段:AccessCount-请求次数。MergeTime-最近请求时间
        # @type By: String

        attr_accessor :Limit, :Offset, :Filters, :Order, :By

        def initialize(limit=nil, offset=nil, filters=nil, order=nil, by=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeRiskDnsList返回参数结构体
      class DescribeRiskDnsListResponse < TencentCloud::Common::AbstractModel
        # @param RiskDnsList: 恶意请求列表数组
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskDnsList: Array
        # @param TotalCount: 总数量
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RiskDnsList, :TotalCount, :RequestId

        def initialize(riskdnslist=nil, totalcount=nil, requestid=nil)
          @RiskDnsList = riskdnslist
          @TotalCount = totalcount
          @RequestId = requestid
        end

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

      # DescribeRiskDnsPolicyList请求参数结构体
      class DescribeRiskDnsPolicyListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>PolicyType - int - 是否必填:否 - 策略类型</li>
        # <li>PolicyName - string - 是否必填:否 - 策略名称</li>
        # <li>Domain - string - 是否必填:否 - 域名(先对域名做urlencode,再base64)</li>
        # <li>PolicyAction- int - 是否必填:否 - 策略动作</li>
        # <li>IsEnabled - int - 是否必填:否 - 是否生效</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [HostScope|UpdateTime]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeRiskDnsPolicyList返回参数结构体
      class DescribeRiskDnsPolicyListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param List: 列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              riskdnspolicy_tmp = RiskDnsPolicy.new
              riskdnspolicy_tmp.deserialize(i)
              @List << riskdnspolicy_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeRiskProcessEvents请求参数结构体
      class DescribeRiskProcessEventsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>HostId - String - 是否必填:否 - 主机ID</li>
        # <li>IpOrName - String - 是否必填:否 - 主机IP或主机名</li>
        # <li>VirusName - String - 是否必填:否 - 病毒名</li>
        # <li>ProcessId - String - 是否必填:否 - 进程ID</li>
        # <li>FilePath - String - 是否必填:否 - 进程路径</li>
        # <li>BeginTime - String - 是否必填:否 - 进程启动时间-开始</li>
        # <li>EndTime - String - 是否必填:否 - 进程启动时间-结束</li>
        # <li>Status - String - 是否必填:否 - 状态筛选 0待处理;1查杀中;2已查杀;3已退出;4已信任</li>
        # @type Filters: Array
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Order: 排序方式 [ASC|DESC]
        # @type Order: String
        # @param By: [StartTime:进程启动时间|DetectTime:最后检测时间]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeRiskProcessEvents返回参数结构体
      class DescribeRiskProcessEventsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数量
        # @type TotalCount: Integer
        # @param List: 异常进程列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              riskprocessevent_tmp = RiskProcessEvent.new
              riskprocessevent_tmp.deserialize(i)
              @List << riskprocessevent_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeSafeInfo请求参数结构体
      class DescribeSafeInfoRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeSafeInfo返回参数结构体
      class DescribeSafeInfoResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DescribeScanMalwareSchedule请求参数结构体
      class DescribeScanMalwareScheduleRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScanMalwareSchedule返回参数结构体
      class DescribeScanMalwareScheduleResponse < TencentCloud::Common::AbstractModel
        # @param Schedule: 扫描进度(单位:%)
        # @type Schedule: Integer
        # @param RiskFileNumber: 风险文件数,当进度满了以后才有该值
        # @type RiskFileNumber: Integer
        # @param IsSchedule: 是否正在扫描中
        # @type IsSchedule: Boolean
        # @param ScanStatus: 0 从未扫描过、 1 扫描中、 2扫描完成、 3停止中、 4停止完成
        # @type ScanStatus: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Schedule, :RiskFileNumber, :IsSchedule, :ScanStatus, :RequestId

        def initialize(schedule=nil, riskfilenumber=nil, isschedule=nil, scanstatus=nil, requestid=nil)
          @Schedule = schedule
          @RiskFileNumber = riskfilenumber
          @IsSchedule = isschedule
          @ScanStatus = scanstatus
          @RequestId = requestid
        end

        def deserialize(params)
          @Schedule = params['Schedule']
          @RiskFileNumber = params['RiskFileNumber']
          @IsSchedule = params['IsSchedule']
          @ScanStatus = params['ScanStatus']
          @RequestId = params['RequestId']
        end
      end

      # DescribeScanSchedule请求参数结构体
      class DescribeScanScheduleRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务id
        # @type TaskId: Integer

        attr_accessor :TaskId

        def initialize(taskid=nil)
          @TaskId = taskid
        end

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

      # DescribeScanSchedule返回参数结构体
      class DescribeScanScheduleResponse < TencentCloud::Common::AbstractModel
        # @param Schedule: 检测进度
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Schedule: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Schedule, :RequestId

        def initialize(schedule=nil, requestid=nil)
          @Schedule = schedule
          @RequestId = requestid
        end

        def deserialize(params)
          @Schedule = params['Schedule']
          @RequestId = params['RequestId']
        end
      end

      # DescribeScanState请求参数结构体
      class DescribeScanStateRequest < TencentCloud::Common::AbstractModel
        # @param ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        # @type ModuleType: String
        # @param Filters: 过滤参数;
        # <li>StrategyId 基线策略ID ,仅ModuleType 为 Baseline 时需要</li>
        # @type Filters: Array

        attr_accessor :ModuleType, :Filters

        def initialize(moduletype=nil, filters=nil)
          @ModuleType = moduletype
          @Filters = filters
        end

        def deserialize(params)
          @ModuleType = params['ModuleType']
          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

      # DescribeScanState返回参数结构体
      class DescribeScanStateResponse < TencentCloud::Common::AbstractModel
        # @param ScanState: 0 从未扫描过、 1 扫描中、 2扫描完成、 3停止中、 4停止完成
        # @type ScanState: Integer
        # @param Schedule: 扫描进度
        # @type Schedule: Integer
        # @param TaskId: 任务Id
        # @type TaskId: Integer
        # @param VulId: 任务扫描的漏洞id
        # @type VulId: Array
        # @param Type: 0一键检测 1定时检测
        # @type Type: Integer
        # @param ScanBeginTime: 开始扫描时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanBeginTime: String
        # @param RiskEventCount: 扫描漏洞数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskEventCount: Integer
        # @param ScanEndTime: 扫描结束时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanEndTime: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ScanState, :Schedule, :TaskId, :VulId, :Type, :ScanBeginTime, :RiskEventCount, :ScanEndTime, :RequestId

        def initialize(scanstate=nil, schedule=nil, taskid=nil, vulid=nil, type=nil, scanbegintime=nil, riskeventcount=nil, scanendtime=nil, requestid=nil)
          @ScanState = scanstate
          @Schedule = schedule
          @TaskId = taskid
          @VulId = vulid
          @Type = type
          @ScanBeginTime = scanbegintime
          @RiskEventCount = riskeventcount
          @ScanEndTime = scanendtime
          @RequestId = requestid
        end

        def deserialize(params)
          @ScanState = params['ScanState']
          @Schedule = params['Schedule']
          @TaskId = params['TaskId']
          @VulId = params['VulId']
          @Type = params['Type']
          @ScanBeginTime = params['ScanBeginTime']
          @RiskEventCount = params['RiskEventCount']
          @ScanEndTime = params['ScanEndTime']
          @RequestId = params['RequestId']
        end
      end

      # DescribeScanTaskDetails请求参数结构体
      class DescribeScanTaskDetailsRequest < TencentCloud::Common::AbstractModel
        # @param ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        # @type ModuleType: String
        # @param TaskId: 任务ID
        # @type TaskId: Integer
        # @param Filters: 过滤参数
        # @type Filters: Array
        # @param Limit: 需要返回的数量,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer

        attr_accessor :ModuleType, :TaskId, :Filters, :Limit, :Offset

        def initialize(moduletype=nil, taskid=nil, filters=nil, limit=nil, offset=nil)
          @ModuleType = moduletype
          @TaskId = taskid
          @Filters = filters
          @Limit = limit
          @Offset = offset
        end

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

      # DescribeScanTaskDetails返回参数结构体
      class DescribeScanTaskDetailsResponse < TencentCloud::Common::AbstractModel
        # @param ScanTaskDetailList: 扫描任务信息列表
        # @type ScanTaskDetailList: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param ScanMachineCount: 扫描机器总数
        # @type ScanMachineCount: Integer
        # @param RiskMachineCount: 发现风险机器数
        # @type RiskMachineCount: Integer
        # @param ScanBeginTime: 扫描开始时间
        # @type ScanBeginTime: String
        # @param ScanEndTime: 扫描结束时间
        # @type ScanEndTime: String
        # @param ScanTime: 检测时间
        # @type ScanTime: Integer
        # @param ScanProgress: 扫描进度
        # @type ScanProgress: Integer
        # @param ScanLeftTime: 扫描剩余时间
        # @type ScanLeftTime: Integer
        # @param ScanContent: 扫描内容
        # @type ScanContent: Array
        # @param VulInfo: 漏洞信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulInfo: Array
        # @param RiskEventCount: 风险事件个数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskEventCount: Integer
        # @param Type: 0一键检测 1定时检测
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Type: Integer
        # @param StoppingAll: 任务是否全部正在被停止 ture是
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StoppingAll: Boolean
        # @param VulCount: 扫描出漏洞个数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ScanTaskDetailList, :TotalCount, :ScanMachineCount, :RiskMachineCount, :ScanBeginTime, :ScanEndTime, :ScanTime, :ScanProgress, :ScanLeftTime, :ScanContent, :VulInfo, :RiskEventCount, :Type, :StoppingAll, :VulCount, :RequestId

        def initialize(scantaskdetaillist=nil, totalcount=nil, scanmachinecount=nil, riskmachinecount=nil, scanbegintime=nil, scanendtime=nil, scantime=nil, scanprogress=nil, scanlefttime=nil, scancontent=nil, vulinfo=nil, riskeventcount=nil, type=nil, stoppingall=nil, vulcount=nil, requestid=nil)
          @ScanTaskDetailList = scantaskdetaillist
          @TotalCount = totalcount
          @ScanMachineCount = scanmachinecount
          @RiskMachineCount = riskmachinecount
          @ScanBeginTime = scanbegintime
          @ScanEndTime = scanendtime
          @ScanTime = scantime
          @ScanProgress = scanprogress
          @ScanLeftTime = scanlefttime
          @ScanContent = scancontent
          @VulInfo = vulinfo
          @RiskEventCount = riskeventcount
          @Type = type
          @StoppingAll = stoppingall
          @VulCount = vulcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['ScanTaskDetailList'].nil?
            @ScanTaskDetailList = []
            params['ScanTaskDetailList'].each do |i|
              scantaskdetails_tmp = ScanTaskDetails.new
              scantaskdetails_tmp.deserialize(i)
              @ScanTaskDetailList << scantaskdetails_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @ScanMachineCount = params['ScanMachineCount']
          @RiskMachineCount = params['RiskMachineCount']
          @ScanBeginTime = params['ScanBeginTime']
          @ScanEndTime = params['ScanEndTime']
          @ScanTime = params['ScanTime']
          @ScanProgress = params['ScanProgress']
          @ScanLeftTime = params['ScanLeftTime']
          @ScanContent = params['ScanContent']
          unless params['VulInfo'].nil?
            @VulInfo = []
            params['VulInfo'].each do |i|
              vuldetailinfo_tmp = VulDetailInfo.new
              vuldetailinfo_tmp.deserialize(i)
              @VulInfo << vuldetailinfo_tmp
            end
          end
          @RiskEventCount = params['RiskEventCount']
          @Type = params['Type']
          @StoppingAll = params['StoppingAll']
          @VulCount = params['VulCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeScanTaskStatus请求参数结构体
      class DescribeScanTaskStatusRequest < TencentCloud::Common::AbstractModel
        # @param ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        # @type ModuleType: String

        attr_accessor :ModuleType

        def initialize(moduletype=nil)
          @ModuleType = moduletype
        end

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

      # DescribeScanTaskStatus返回参数结构体
      class DescribeScanTaskStatusResponse < TencentCloud::Common::AbstractModel
        # @param State: 任务扫描状态列表
        # @type State: :class:`Tencentcloud::Cwp.v20180228.models.TaskStatus`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :State, :RequestId

        def initialize(state=nil, requestid=nil)
          @State = state
          @RequestId = requestid
        end

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

      # DescribeScanVulSetting请求参数结构体
      class DescribeScanVulSettingRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScanVulSetting返回参数结构体
      class DescribeScanVulSettingResponse < TencentCloud::Common::AbstractModel
        # @param VulCategories: 漏洞类型:1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        # @type VulCategories: String
        # @param VulLevels: 危害等级:1-低危;2-中危;3-高危;4-严重 (多选英文逗号分隔)
        # @type VulLevels: String
        # @param TimerInterval: 定期检测间隔时间(天)
        # @type TimerInterval: Integer
        # @param TimerTime: 定期检测时间,如:00:00
        # @type TimerTime: String
        # @param VulEmergency: 是否紧急漏洞:0-否 1-是
        # @type VulEmergency: Integer
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EnableScan: 是否开启
        # @type EnableScan: Integer
        # @param EndTime: 结束时间
        # @type EndTime: String
        # @param ClickTimeout: 一键扫描超时时长,如:1800秒(s)
        # @type ClickTimeout: Integer
        # @param Uuids: 为空默认扫描全部专业版、旗舰版、普惠版主机,不为空只扫描选中主机
        # @type Uuids: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulCategories, :VulLevels, :TimerInterval, :TimerTime, :VulEmergency, :StartTime, :EnableScan, :EndTime, :ClickTimeout, :Uuids, :RequestId

        def initialize(vulcategories=nil, vullevels=nil, timerinterval=nil, timertime=nil, vulemergency=nil, starttime=nil, enablescan=nil, endtime=nil, clicktimeout=nil, uuids=nil, requestid=nil)
          @VulCategories = vulcategories
          @VulLevels = vullevels
          @TimerInterval = timerinterval
          @TimerTime = timertime
          @VulEmergency = vulemergency
          @StartTime = starttime
          @EnableScan = enablescan
          @EndTime = endtime
          @ClickTimeout = clicktimeout
          @Uuids = uuids
          @RequestId = requestid
        end

        def deserialize(params)
          @VulCategories = params['VulCategories']
          @VulLevels = params['VulLevels']
          @TimerInterval = params['TimerInterval']
          @TimerTime = params['TimerTime']
          @VulEmergency = params['VulEmergency']
          @StartTime = params['StartTime']
          @EnableScan = params['EnableScan']
          @EndTime = params['EndTime']
          @ClickTimeout = params['ClickTimeout']
          @Uuids = params['Uuids']
          @RequestId = params['RequestId']
        end
      end

      # DescribeScreenAttackHotspot请求参数结构体
      class DescribeScreenAttackHotspotRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScreenAttackHotspot返回参数结构体
      class DescribeScreenAttackHotspotResponse < TencentCloud::Common::AbstractModel
        # @param List: 攻击热点列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeScreenBroadcasts请求参数结构体
      class DescribeScreenBroadcastsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScreenBroadcasts返回参数结构体
      class DescribeScreenBroadcastsResponse < TencentCloud::Common::AbstractModel
        # @param List: 播报文章列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeScreenDefenseTrends请求参数结构体
      class DescribeScreenDefenseTrendsRequest < TencentCloud::Common::AbstractModel
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String

        attr_accessor :StartTime, :EndTime

        def initialize(starttime=nil, endtime=nil)
          @StartTime = starttime
          @EndTime = endtime
        end

        def deserialize(params)
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
        end
      end

      # DescribeScreenDefenseTrends返回参数结构体
      class DescribeScreenDefenseTrendsResponse < TencentCloud::Common::AbstractModel
        # @param TrendsChart: 统计详情图标数据
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TrendsChart: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TrendsChart, :RequestId

        def initialize(trendschart=nil, requestid=nil)
          @TrendsChart = trendschart
          @RequestId = requestid
        end

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

      # DescribeScreenEmergentMsg请求参数结构体
      class DescribeScreenEmergentMsgRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScreenEmergentMsg返回参数结构体
      class DescribeScreenEmergentMsgResponse < TencentCloud::Common::AbstractModel
        # @param MessageInfo: 通知内容
        # @type MessageInfo: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MessageInfo, :RequestId

        def initialize(messageinfo=nil, requestid=nil)
          @MessageInfo = messageinfo
          @RequestId = requestid
        end

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

      # DescribeScreenEventsCnt请求参数结构体
      class DescribeScreenEventsCntRequest < TencentCloud::Common::AbstractModel
        # @param BusinessType: 数据类型:0:待处理风险总数 1:影响资产总数,默认为0
        # @type BusinessType: Integer

        attr_accessor :BusinessType

        def initialize(businesstype=nil)
          @BusinessType = businesstype
        end

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

      # DescribeScreenEventsCnt返回参数结构体
      class DescribeScreenEventsCntResponse < TencentCloud::Common::AbstractModel
        # @param Info: 事件统计详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Info: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Info, :RequestId

        def initialize(info=nil, requestid=nil)
          @Info = info
          @RequestId = requestid
        end

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

      # DescribeScreenGeneralStat请求参数结构体
      class DescribeScreenGeneralStatRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScreenGeneralStat返回参数结构体
      class DescribeScreenGeneralStatResponse < TencentCloud::Common::AbstractModel
        # @param Machines: name 的值: 在线,关机/离线,未安装,
        # value : 表示对应的数量
        # @type Machines: Array
        # @param Protection: name 的值: 旗舰版,专业版,基础版
        # value : 表示对应的数量
        # @type Protection: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Machines, :Protection, :RequestId

        def initialize(machines=nil, protection=nil, requestid=nil)
          @Machines = machines
          @Protection = protection
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Machines'].nil?
            @Machines = []
            params['Machines'].each do |i|
              screennamevalue_tmp = ScreenNameValue.new
              screennamevalue_tmp.deserialize(i)
              @Machines << screennamevalue_tmp
            end
          end
          unless params['Protection'].nil?
            @Protection = []
            params['Protection'].each do |i|
              screennamevalue_tmp = ScreenNameValue.new
              screennamevalue_tmp.deserialize(i)
              @Protection << screennamevalue_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeScreenHostInvasion请求参数结构体
      class DescribeScreenHostInvasionRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机quuid
        # @type Quuid: String

        attr_accessor :Quuid

        def initialize(quuid=nil)
          @Quuid = quuid
        end

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

      # DescribeScreenHostInvasion返回参数结构体
      class DescribeScreenHostInvasionResponse < TencentCloud::Common::AbstractModel
        # @param DefendAttackLog: 网络攻击事件列表
        # @type DefendAttackLog: Array
        # @param InvasionEvents: 入侵检测事件列表
        # @type InvasionEvents: Array
        # @param Vul: 漏洞事件列表
        # @type Vul: Array
        # @param Baseline: 基线事件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Baseline: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DefendAttackLog, :InvasionEvents, :Vul, :Baseline, :RequestId

        def initialize(defendattacklog=nil, invasionevents=nil, vul=nil, baseline=nil, requestid=nil)
          @DefendAttackLog = defendattacklog
          @InvasionEvents = invasionevents
          @Vul = vul
          @Baseline = baseline
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['DefendAttackLog'].nil?
            @DefendAttackLog = []
            params['DefendAttackLog'].each do |i|
              screendefendattacklog_tmp = ScreenDefendAttackLog.new
              screendefendattacklog_tmp.deserialize(i)
              @DefendAttackLog << screendefendattacklog_tmp
            end
          end
          unless params['InvasionEvents'].nil?
            @InvasionEvents = []
            params['InvasionEvents'].each do |i|
              screeninvasion_tmp = ScreenInvasion.new
              screeninvasion_tmp.deserialize(i)
              @InvasionEvents << screeninvasion_tmp
            end
          end
          unless params['Vul'].nil?
            @Vul = []
            params['Vul'].each do |i|
              screenvulinfo_tmp = ScreenVulInfo.new
              screenvulinfo_tmp.deserialize(i)
              @Vul << screenvulinfo_tmp
            end
          end
          unless params['Baseline'].nil?
            @Baseline = []
            params['Baseline'].each do |i|
              screenbaselineinfo_tmp = ScreenBaselineInfo.new
              screenbaselineinfo_tmp.deserialize(i)
              @Baseline << screenbaselineinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeScreenMachineRegions请求参数结构体
      class DescribeScreenMachineRegionsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScreenMachineRegions返回参数结构体
      class DescribeScreenMachineRegionsResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeScreenMachines请求参数结构体
      class DescribeScreenMachinesRequest < TencentCloud::Common::AbstractModel
        # @param MachineRegion: 主机区域
        # @type MachineRegion: String
        # @param MachineIpOrAlias: IP 支持内网IP,主机别名
        # @type MachineIpOrAlias: String
        # @param SecurityStatus: 风险状态类型:0:全部类型,1:风险主机,2:潜在风险主机 , 3:已关机/离线主机,4:无风险主机
        # @type SecurityStatus: Integer

        attr_accessor :MachineRegion, :MachineIpOrAlias, :SecurityStatus

        def initialize(machineregion=nil, machineiporalias=nil, securitystatus=nil)
          @MachineRegion = machineregion
          @MachineIpOrAlias = machineiporalias
          @SecurityStatus = securitystatus
        end

        def deserialize(params)
          @MachineRegion = params['MachineRegion']
          @MachineIpOrAlias = params['MachineIpOrAlias']
          @SecurityStatus = params['SecurityStatus']
        end
      end

      # DescribeScreenMachines返回参数结构体
      class DescribeScreenMachinesResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeScreenProtectionCnt请求参数结构体
      class DescribeScreenProtectionCntRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScreenProtectionCnt返回参数结构体
      class DescribeScreenProtectionCntResponse < TencentCloud::Common::AbstractModel
        # @param List: 主机安全防护引擎介绍 内容
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeScreenProtectionStat请求参数结构体
      class DescribeScreenProtectionStatRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeScreenProtectionStat返回参数结构体
      class DescribeScreenProtectionStatResponse < TencentCloud::Common::AbstractModel
        # @param Info: 文件查杀 status:  0:从未检测过,或0资产付费情况, 1:已检测,存在恶意文件, 2:已检测,未开启隔离防护, 3:已检测且已开启防护且无风险
        # 暴力破解status: 0:未开启防护或0付费资产情况 1:已开启防护 2:存在带处理事件
        # 漏洞扫描status: 0:从未检测过,或0资产付费情况, 1:存在漏洞风险, 2:无风险
        # 基线检测status: 0:从未检测过,或0资产付费情况, 1:存在基线风险,2:无风险
        # @type Info: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Info, :RequestId

        def initialize(info=nil, requestid=nil)
          @Info = info
          @RequestId = requestid
        end

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

      # DescribeScreenRiskAssetsTop请求参数结构体
      class DescribeScreenRiskAssetsTopRequest < TencentCloud::Common::AbstractModel
        # @param BusinessType: 统计类型:0:潜在威胁 1:失陷 2:漏洞 3:基线
        # @type BusinessType: Integer

        attr_accessor :BusinessType

        def initialize(businesstype=nil)
          @BusinessType = businesstype
        end

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

      # DescribeScreenRiskAssetsTop返回参数结构体
      class DescribeScreenRiskAssetsTopResponse < TencentCloud::Common::AbstractModel
        # @param Chart: 统计详情图标数据 Name:展示主机ip 和地域, value:事件数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Chart: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Chart, :RequestId

        def initialize(chart=nil, requestid=nil)
          @Chart = chart
          @RequestId = requestid
        end

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

      # DescribeSearchLogs请求参数结构体
      class DescribeSearchLogsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeSearchLogs返回参数结构体
      class DescribeSearchLogsResponse < TencentCloud::Common::AbstractModel
        # @param Data: 历史搜索记录 保留最新的10条
        # @type Data: Array
        # @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)
          @Data = params['Data']
          @RequestId = params['RequestId']
        end
      end

      # DescribeSearchTemplates请求参数结构体
      class DescribeSearchTemplatesRequest < TencentCloud::Common::AbstractModel
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer

        attr_accessor :Offset, :Limit

        def initialize(offset=nil, limit=nil)
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeSearchTemplates返回参数结构体
      class DescribeSearchTemplatesResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param List: 模板列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              searchtemplate_tmp = SearchTemplate.new
              searchtemplate_tmp.deserialize(i)
              @List << searchtemplate_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeSecurityBroadcastInfo请求参数结构体
      class DescribeSecurityBroadcastInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 文章id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeSecurityBroadcastInfo返回参数结构体
      class DescribeSecurityBroadcastInfoResponse < TencentCloud::Common::AbstractModel
        # @param BroadcastInfo: 安全播报文章详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BroadcastInfo: :class:`Tencentcloud::Cwp.v20180228.models.BroadcastInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BroadcastInfo, :RequestId

        def initialize(broadcastinfo=nil, requestid=nil)
          @BroadcastInfo = broadcastinfo
          @RequestId = requestid
        end

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

      # DescribeSecurityBroadcasts请求参数结构体
      class DescribeSecurityBroadcastsRequest < TencentCloud::Common::AbstractModel
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10 ,0=全部
        # @type Limit: Integer
        # @param BeginDate: 筛选发布日期:开始时间
        # @type BeginDate: String
        # @param EndDate: 筛选发布日期:结束时间
        # @type EndDate: String
        # @param BroadcastType: 过滤安全播报类型:0-紧急通知,1-功能更新,2-行业荣誉,3-版本发布
        # @type BroadcastType: String

        attr_accessor :Offset, :Limit, :BeginDate, :EndDate, :BroadcastType

        def initialize(offset=nil, limit=nil, begindate=nil, enddate=nil, broadcasttype=nil)
          @Offset = offset
          @Limit = limit
          @BeginDate = begindate
          @EndDate = enddate
          @BroadcastType = broadcasttype
        end

        def deserialize(params)
          @Offset = params['Offset']
          @Limit = params['Limit']
          @BeginDate = params['BeginDate']
          @EndDate = params['EndDate']
          @BroadcastType = params['BroadcastType']
        end
      end

      # DescribeSecurityBroadcasts返回参数结构体
      class DescribeSecurityBroadcastsResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表
        # @type List: Array
        # @param TotalCount: 总共多少条
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              broadcasts_tmp = Broadcasts.new
              broadcasts_tmp.deserialize(i)
              @List << broadcasts_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeSecurityDynamics请求参数结构体
      class DescribeSecurityDynamicsRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer

        attr_accessor :Limit, :Offset

        def initialize(limit=nil, offset=nil)
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeSecurityDynamics返回参数结构体
      class DescribeSecurityDynamicsResponse < TencentCloud::Common::AbstractModel
        # @param SecurityDynamics: 安全事件消息数组。
        # @type SecurityDynamics: Array
        # @param TotalCount: 记录总数。
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :SecurityDynamics, :TotalCount, :RequestId

        def initialize(securitydynamics=nil, totalcount=nil, requestid=nil)
          @SecurityDynamics = securitydynamics
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['SecurityDynamics'].nil?
            @SecurityDynamics = []
            params['SecurityDynamics'].each do |i|
              securitydynamic_tmp = SecurityDynamic.new
              securitydynamic_tmp.deserialize(i)
              @SecurityDynamics << securitydynamic_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeSecurityEventStat请求参数结构体
      class DescribeSecurityEventStatRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 该接口无过滤条件
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

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

      # DescribeSecurityEventStat返回参数结构体
      class DescribeSecurityEventStatResponse < TencentCloud::Common::AbstractModel
        # @param MalwareStat: 木马事件统计
        # @type MalwareStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param HostLoginStat: 异地事件统计
        # @type HostLoginStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param BruteAttackStat: 爆破事件统计
        # @type BruteAttackStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param MaliciousRequestStat: 恶意请求事件统计
        # @type MaliciousRequestStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param PrivilegeStat: 本地提权事件统计
        # @type PrivilegeStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param ReverseShellStat: 反弹Shell事件统计
        # @type ReverseShellStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param HighRiskBashStat: 高危命令事件统计
        # @type HighRiskBashStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param AttackLogsStat: 网络攻击事件统计
        # @type AttackLogsStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param VulHighStat: 高危漏洞事件统计
        # @type VulHighStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param VulNormalStat: 中危漏洞事件统计
        # @type VulNormalStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param VulLowStat: 低危漏洞事件统计
        # @type VulLowStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param BaselineHighStat: 高危基线漏洞事件统计
        # @type BaselineHighStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param BaselineNormalStat: 中危基线漏事件统计
        # @type BaselineNormalStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param BaselineLowStat: 低危基线漏事件统计
        # @type BaselineLowStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param MachineTotalAffectNum: 有未处理安全事件的机器总数
        # @type MachineTotalAffectNum: Integer
        # @param InvasionTotalAffectNum: 有未处理入侵安全事件的机器总数
        # @type InvasionTotalAffectNum: Integer
        # @param VulTotalAffectNum: 有未处理漏洞安全事件的机器总数
        # @type VulTotalAffectNum: Integer
        # @param BaseLineTotalAffectNum: 有未处理基线安全事件的机器总数
        # @type BaseLineTotalAffectNum: Integer
        # @param CyberAttackTotalAffectNum: 有未处理网络攻击安全事件的机器总数
        # @type CyberAttackTotalAffectNum: Integer
        # @param VulRiskStat: 严重漏洞事件统计
        # @type VulRiskStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param BaselineRiskStat: 严重基线漏洞事件统计
        # @type BaselineRiskStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param VulStat: 漏洞数统计
        # @type VulStat: :class:`Tencentcloud::Cwp.v20180228.models.EventStat`
        # @param Score: 安全得分
        # @type Score: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MalwareStat, :HostLoginStat, :BruteAttackStat, :MaliciousRequestStat, :PrivilegeStat, :ReverseShellStat, :HighRiskBashStat, :AttackLogsStat, :VulHighStat, :VulNormalStat, :VulLowStat, :BaselineHighStat, :BaselineNormalStat, :BaselineLowStat, :MachineTotalAffectNum, :InvasionTotalAffectNum, :VulTotalAffectNum, :BaseLineTotalAffectNum, :CyberAttackTotalAffectNum, :VulRiskStat, :BaselineRiskStat, :VulStat, :Score, :RequestId

        def initialize(malwarestat=nil, hostloginstat=nil, bruteattackstat=nil, maliciousrequeststat=nil, privilegestat=nil, reverseshellstat=nil, highriskbashstat=nil, attacklogsstat=nil, vulhighstat=nil, vulnormalstat=nil, vullowstat=nil, baselinehighstat=nil, baselinenormalstat=nil, baselinelowstat=nil, machinetotalaffectnum=nil, invasiontotalaffectnum=nil, vultotalaffectnum=nil, baselinetotalaffectnum=nil, cyberattacktotalaffectnum=nil, vulriskstat=nil, baselineriskstat=nil, vulstat=nil, score=nil, requestid=nil)
          @MalwareStat = malwarestat
          @HostLoginStat = hostloginstat
          @BruteAttackStat = bruteattackstat
          @MaliciousRequestStat = maliciousrequeststat
          @PrivilegeStat = privilegestat
          @ReverseShellStat = reverseshellstat
          @HighRiskBashStat = highriskbashstat
          @AttackLogsStat = attacklogsstat
          @VulHighStat = vulhighstat
          @VulNormalStat = vulnormalstat
          @VulLowStat = vullowstat
          @BaselineHighStat = baselinehighstat
          @BaselineNormalStat = baselinenormalstat
          @BaselineLowStat = baselinelowstat
          @MachineTotalAffectNum = machinetotalaffectnum
          @InvasionTotalAffectNum = invasiontotalaffectnum
          @VulTotalAffectNum = vultotalaffectnum
          @BaseLineTotalAffectNum = baselinetotalaffectnum
          @CyberAttackTotalAffectNum = cyberattacktotalaffectnum
          @VulRiskStat = vulriskstat
          @BaselineRiskStat = baselineriskstat
          @VulStat = vulstat
          @Score = score
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['MalwareStat'].nil?
            @MalwareStat = EventStat.new
            @MalwareStat.deserialize(params['MalwareStat'])
          end
          unless params['HostLoginStat'].nil?
            @HostLoginStat = EventStat.new
            @HostLoginStat.deserialize(params['HostLoginStat'])
          end
          unless params['BruteAttackStat'].nil?
            @BruteAttackStat = EventStat.new
            @BruteAttackStat.deserialize(params['BruteAttackStat'])
          end
          unless params['MaliciousRequestStat'].nil?
            @MaliciousRequestStat = EventStat.new
            @MaliciousRequestStat.deserialize(params['MaliciousRequestStat'])
          end
          unless params['PrivilegeStat'].nil?
            @PrivilegeStat = EventStat.new
            @PrivilegeStat.deserialize(params['PrivilegeStat'])
          end
          unless params['ReverseShellStat'].nil?
            @ReverseShellStat = EventStat.new
            @ReverseShellStat.deserialize(params['ReverseShellStat'])
          end
          unless params['HighRiskBashStat'].nil?
            @HighRiskBashStat = EventStat.new
            @HighRiskBashStat.deserialize(params['HighRiskBashStat'])
          end
          unless params['AttackLogsStat'].nil?
            @AttackLogsStat = EventStat.new
            @AttackLogsStat.deserialize(params['AttackLogsStat'])
          end
          unless params['VulHighStat'].nil?
            @VulHighStat = EventStat.new
            @VulHighStat.deserialize(params['VulHighStat'])
          end
          unless params['VulNormalStat'].nil?
            @VulNormalStat = EventStat.new
            @VulNormalStat.deserialize(params['VulNormalStat'])
          end
          unless params['VulLowStat'].nil?
            @VulLowStat = EventStat.new
            @VulLowStat.deserialize(params['VulLowStat'])
          end
          unless params['BaselineHighStat'].nil?
            @BaselineHighStat = EventStat.new
            @BaselineHighStat.deserialize(params['BaselineHighStat'])
          end
          unless params['BaselineNormalStat'].nil?
            @BaselineNormalStat = EventStat.new
            @BaselineNormalStat.deserialize(params['BaselineNormalStat'])
          end
          unless params['BaselineLowStat'].nil?
            @BaselineLowStat = EventStat.new
            @BaselineLowStat.deserialize(params['BaselineLowStat'])
          end
          @MachineTotalAffectNum = params['MachineTotalAffectNum']
          @InvasionTotalAffectNum = params['InvasionTotalAffectNum']
          @VulTotalAffectNum = params['VulTotalAffectNum']
          @BaseLineTotalAffectNum = params['BaseLineTotalAffectNum']
          @CyberAttackTotalAffectNum = params['CyberAttackTotalAffectNum']
          unless params['VulRiskStat'].nil?
            @VulRiskStat = EventStat.new
            @VulRiskStat.deserialize(params['VulRiskStat'])
          end
          unless params['BaselineRiskStat'].nil?
            @BaselineRiskStat = EventStat.new
            @BaselineRiskStat.deserialize(params['BaselineRiskStat'])
          end
          unless params['VulStat'].nil?
            @VulStat = EventStat.new
            @VulStat.deserialize(params['VulStat'])
          end
          @Score = params['Score']
          @RequestId = params['RequestId']
        end
      end

      # DescribeSecurityEventsCnt请求参数结构体
      class DescribeSecurityEventsCntRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeSecurityEventsCnt返回参数结构体
      class DescribeSecurityEventsCntResponse < TencentCloud::Common::AbstractModel
        # @param Malware: 木马文件相关风险事件
        # @type Malware: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param HostLogin: 登录审计相关风险事件
        # @type HostLogin: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param BruteAttack: 密码破解相关风险事件
        # @type BruteAttack: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param RiskDns: 恶意请求相关风险事件
        # @type RiskDns: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param Bash: 高危命令相关风险事件
        # @type Bash: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param PrivilegeRules: 本地提权相关风险事件
        # @type PrivilegeRules: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param ReverseShell: 反弹Shell相关风险事件
        # @type ReverseShell: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param SysVul: 应用漏洞风险事件
        # @type SysVul: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param WebVul: Web应用漏洞相关风险事件
        # @type WebVul: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param EmergencyVul: 应急漏洞相关风险事件
        # @type EmergencyVul: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param BaseLine: 安全基线相关风险事件
        # @type BaseLine: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param AttackLogs: 攻击检测相关风险事件
        # @type AttackLogs: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param EffectMachineCount: 受影响机器数
        # @type EffectMachineCount: Integer
        # @param EventsCount: 所有事件总数
        # @type EventsCount: Integer
        # @param WindowVul: window 系统漏洞事件总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WindowVul: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param LinuxVul: linux系统漏洞事件总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LinuxVul: :class:`Tencentcloud::Cwp.v20180228.models.SecurityEventInfo`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Malware, :HostLogin, :BruteAttack, :RiskDns, :Bash, :PrivilegeRules, :ReverseShell, :SysVul, :WebVul, :EmergencyVul, :BaseLine, :AttackLogs, :EffectMachineCount, :EventsCount, :WindowVul, :LinuxVul, :RequestId

        def initialize(malware=nil, hostlogin=nil, bruteattack=nil, riskdns=nil, bash=nil, privilegerules=nil, reverseshell=nil, sysvul=nil, webvul=nil, emergencyvul=nil, baseline=nil, attacklogs=nil, effectmachinecount=nil, eventscount=nil, windowvul=nil, linuxvul=nil, requestid=nil)
          @Malware = malware
          @HostLogin = hostlogin
          @BruteAttack = bruteattack
          @RiskDns = riskdns
          @Bash = bash
          @PrivilegeRules = privilegerules
          @ReverseShell = reverseshell
          @SysVul = sysvul
          @WebVul = webvul
          @EmergencyVul = emergencyvul
          @BaseLine = baseline
          @AttackLogs = attacklogs
          @EffectMachineCount = effectmachinecount
          @EventsCount = eventscount
          @WindowVul = windowvul
          @LinuxVul = linuxvul
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Malware'].nil?
            @Malware = SecurityEventInfo.new
            @Malware.deserialize(params['Malware'])
          end
          unless params['HostLogin'].nil?
            @HostLogin = SecurityEventInfo.new
            @HostLogin.deserialize(params['HostLogin'])
          end
          unless params['BruteAttack'].nil?
            @BruteAttack = SecurityEventInfo.new
            @BruteAttack.deserialize(params['BruteAttack'])
          end
          unless params['RiskDns'].nil?
            @RiskDns = SecurityEventInfo.new
            @RiskDns.deserialize(params['RiskDns'])
          end
          unless params['Bash'].nil?
            @Bash = SecurityEventInfo.new
            @Bash.deserialize(params['Bash'])
          end
          unless params['PrivilegeRules'].nil?
            @PrivilegeRules = SecurityEventInfo.new
            @PrivilegeRules.deserialize(params['PrivilegeRules'])
          end
          unless params['ReverseShell'].nil?
            @ReverseShell = SecurityEventInfo.new
            @ReverseShell.deserialize(params['ReverseShell'])
          end
          unless params['SysVul'].nil?
            @SysVul = SecurityEventInfo.new
            @SysVul.deserialize(params['SysVul'])
          end
          unless params['WebVul'].nil?
            @WebVul = SecurityEventInfo.new
            @WebVul.deserialize(params['WebVul'])
          end
          unless params['EmergencyVul'].nil?
            @EmergencyVul = SecurityEventInfo.new
            @EmergencyVul.deserialize(params['EmergencyVul'])
          end
          unless params['BaseLine'].nil?
            @BaseLine = SecurityEventInfo.new
            @BaseLine.deserialize(params['BaseLine'])
          end
          unless params['AttackLogs'].nil?
            @AttackLogs = SecurityEventInfo.new
            @AttackLogs.deserialize(params['AttackLogs'])
          end
          @EffectMachineCount = params['EffectMachineCount']
          @EventsCount = params['EventsCount']
          unless params['WindowVul'].nil?
            @WindowVul = SecurityEventInfo.new
            @WindowVul.deserialize(params['WindowVul'])
          end
          unless params['LinuxVul'].nil?
            @LinuxVul = SecurityEventInfo.new
            @LinuxVul.deserialize(params['LinuxVul'])
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeSecurityProtectionStat请求参数结构体
      class DescribeSecurityProtectionStatRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeSecurityProtectionStat返回参数结构体
      class DescribeSecurityProtectionStatResponse < TencentCloud::Common::AbstractModel
        # @param AssetManageStat: 0 :0付费资产情况, 1:存在未安装agent情况 ,2:部分资产已是专业版/旗舰版, 3:全部资产已是专业版/旗舰版
        # @type AssetManageStat: Integer
        # @param VulManageStat: 0:从未检测过,或0资产付费情况, 1:存在漏洞风险, 2:无风险
        # @type VulManageStat: Integer
        # @param SecureBasicLineStat: 0:从未检测过,或0资产付费情况, 1:存在基线风险,2:无风险
        # @type SecureBasicLineStat: Integer
        # @param MalwareScanStat: 0:从未检测过,或0资产付费情况, 1:已检测,存在恶意文件, 2:已检测,未开启隔离防护, 3:已检测且已开启防护且无风险
        # @type MalwareScanStat: Integer
        # @param DefenseBruteAttackStat: 密码破解是否开启防护 0:未开启防护或0付费资产情况 1:已开启防护 2:存在带处理事件
        # @type DefenseBruteAttackStat: Integer
        # @param FileTamperStat: 核心文件监控 0:未开启防护(0付费资产情况),1: 已开通
        # @type FileTamperStat: Integer
        # @param WebPageStat: 网页防篡改  0:未开通, 1:已开通
        # @type WebPageStat: Integer
        # @param LoginLogStat: 异常登录 0:存在未处理风险,1:无风险,未配置白名单,2:无风险,已配置
        # @type LoginLogStat: Integer
        # @param DiscoverBruteAttackStat: 检测--密码破解有无存在风险  0:存在未处理风险, 1:无风险,正常检测
        # @type DiscoverBruteAttackStat: Integer
        # @param MaliciousRequestStat: 恶意请求 0 : 0台开通专业版/旗舰版, 1: 恶意请求 存在未处理风险, 2:已有付费资产,无风险
        # @type MaliciousRequestStat: Integer
        # @param PrivilegeStat: 本地提权 0:0台开通专业版/旗舰版, 1:存在未处理风险 2:已有付费资产,无风险
        # @type PrivilegeStat: Integer
        # @param ReverseShellStat: 反弹shell 0:0台开通专业版/旗舰版, 1:存在未处理风险 2:已有付费资产,无风险
        # @type ReverseShellStat: Integer
        # @param ExpertServiceStat: 专家服务 0:未开通服务, 1:已开通
        # @type ExpertServiceStat: Integer
        # @param LogAnalysisStat: 日志分析 0:未开通服务, 1:已开通
        # @type LogAnalysisStat: Integer
        # @param WarningSetStat: 安全告警 0:未开通设置(全部关闭) 1:已开通(只要开启1个就算)
        # @type WarningSetStat: Integer
        # @param EventBashStat: 高危命令,0:0台开通专业版/旗舰版, 1:存在未处理风险, 2:已有付费资产,无风险
        # @type EventBashStat: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AssetManageStat, :VulManageStat, :SecureBasicLineStat, :MalwareScanStat, :DefenseBruteAttackStat, :FileTamperStat, :WebPageStat, :LoginLogStat, :DiscoverBruteAttackStat, :MaliciousRequestStat, :PrivilegeStat, :ReverseShellStat, :ExpertServiceStat, :LogAnalysisStat, :WarningSetStat, :EventBashStat, :RequestId

        def initialize(assetmanagestat=nil, vulmanagestat=nil, securebasiclinestat=nil, malwarescanstat=nil, defensebruteattackstat=nil, filetamperstat=nil, webpagestat=nil, loginlogstat=nil, discoverbruteattackstat=nil, maliciousrequeststat=nil, privilegestat=nil, reverseshellstat=nil, expertservicestat=nil, loganalysisstat=nil, warningsetstat=nil, eventbashstat=nil, requestid=nil)
          @AssetManageStat = assetmanagestat
          @VulManageStat = vulmanagestat
          @SecureBasicLineStat = securebasiclinestat
          @MalwareScanStat = malwarescanstat
          @DefenseBruteAttackStat = defensebruteattackstat
          @FileTamperStat = filetamperstat
          @WebPageStat = webpagestat
          @LoginLogStat = loginlogstat
          @DiscoverBruteAttackStat = discoverbruteattackstat
          @MaliciousRequestStat = maliciousrequeststat
          @PrivilegeStat = privilegestat
          @ReverseShellStat = reverseshellstat
          @ExpertServiceStat = expertservicestat
          @LogAnalysisStat = loganalysisstat
          @WarningSetStat = warningsetstat
          @EventBashStat = eventbashstat
          @RequestId = requestid
        end

        def deserialize(params)
          @AssetManageStat = params['AssetManageStat']
          @VulManageStat = params['VulManageStat']
          @SecureBasicLineStat = params['SecureBasicLineStat']
          @MalwareScanStat = params['MalwareScanStat']
          @DefenseBruteAttackStat = params['DefenseBruteAttackStat']
          @FileTamperStat = params['FileTamperStat']
          @WebPageStat = params['WebPageStat']
          @LoginLogStat = params['LoginLogStat']
          @DiscoverBruteAttackStat = params['DiscoverBruteAttackStat']
          @MaliciousRequestStat = params['MaliciousRequestStat']
          @PrivilegeStat = params['PrivilegeStat']
          @ReverseShellStat = params['ReverseShellStat']
          @ExpertServiceStat = params['ExpertServiceStat']
          @LogAnalysisStat = params['LogAnalysisStat']
          @WarningSetStat = params['WarningSetStat']
          @EventBashStat = params['EventBashStat']
          @RequestId = params['RequestId']
        end
      end

      # DescribeSecurityTrends请求参数结构体
      class DescribeSecurityTrendsRequest < TencentCloud::Common::AbstractModel
        # @param BeginDate: 开始时间,如:2021-07-10
        # @type BeginDate: String
        # @param EndDate: 结束时间,如:2021-07-10
        # @type EndDate: String

        attr_accessor :BeginDate, :EndDate

        def initialize(begindate=nil, enddate=nil)
          @BeginDate = begindate
          @EndDate = enddate
        end

        def deserialize(params)
          @BeginDate = params['BeginDate']
          @EndDate = params['EndDate']
        end
      end

      # DescribeSecurityTrends返回参数结构体
      class DescribeSecurityTrendsResponse < TencentCloud::Common::AbstractModel
        # @param Malwares: 木马事件统计数据数组。
        # @type Malwares: Array
        # @param NonLocalLoginPlaces: 异地登录事件统计数据数组。
        # @type NonLocalLoginPlaces: Array
        # @param BruteAttacks: 密码破解事件统计数据数组。
        # @type BruteAttacks: Array
        # @param Vuls: 漏洞统计数据数组。
        # @type Vuls: Array
        # @param BaseLines: 基线统计数据数组。
        # @type BaseLines: Array
        # @param MaliciousRequests: 恶意请求统计数据数组。
        # @type MaliciousRequests: Array
        # @param HighRiskBashs: 高危命令统计数据数组。
        # @type HighRiskBashs: Array
        # @param ReverseShells: 反弹shell统计数据数组。
        # @type ReverseShells: Array
        # @param PrivilegeEscalations: 本地提权统计数据数组。
        # @type PrivilegeEscalations: Array
        # @param CyberAttacks: 网络攻击统计数据数组。
        # @type CyberAttacks: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Malwares, :NonLocalLoginPlaces, :BruteAttacks, :Vuls, :BaseLines, :MaliciousRequests, :HighRiskBashs, :ReverseShells, :PrivilegeEscalations, :CyberAttacks, :RequestId

        def initialize(malwares=nil, nonlocalloginplaces=nil, bruteattacks=nil, vuls=nil, baselines=nil, maliciousrequests=nil, highriskbashs=nil, reverseshells=nil, privilegeescalations=nil, cyberattacks=nil, requestid=nil)
          @Malwares = malwares
          @NonLocalLoginPlaces = nonlocalloginplaces
          @BruteAttacks = bruteattacks
          @Vuls = vuls
          @BaseLines = baselines
          @MaliciousRequests = maliciousrequests
          @HighRiskBashs = highriskbashs
          @ReverseShells = reverseshells
          @PrivilegeEscalations = privilegeescalations
          @CyberAttacks = cyberattacks
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['Malwares'].nil?
            @Malwares = []
            params['Malwares'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @Malwares << securitytrend_tmp
            end
          end
          unless params['NonLocalLoginPlaces'].nil?
            @NonLocalLoginPlaces = []
            params['NonLocalLoginPlaces'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @NonLocalLoginPlaces << securitytrend_tmp
            end
          end
          unless params['BruteAttacks'].nil?
            @BruteAttacks = []
            params['BruteAttacks'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @BruteAttacks << securitytrend_tmp
            end
          end
          unless params['Vuls'].nil?
            @Vuls = []
            params['Vuls'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @Vuls << securitytrend_tmp
            end
          end
          unless params['BaseLines'].nil?
            @BaseLines = []
            params['BaseLines'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @BaseLines << securitytrend_tmp
            end
          end
          unless params['MaliciousRequests'].nil?
            @MaliciousRequests = []
            params['MaliciousRequests'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @MaliciousRequests << securitytrend_tmp
            end
          end
          unless params['HighRiskBashs'].nil?
            @HighRiskBashs = []
            params['HighRiskBashs'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @HighRiskBashs << securitytrend_tmp
            end
          end
          unless params['ReverseShells'].nil?
            @ReverseShells = []
            params['ReverseShells'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @ReverseShells << securitytrend_tmp
            end
          end
          unless params['PrivilegeEscalations'].nil?
            @PrivilegeEscalations = []
            params['PrivilegeEscalations'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @PrivilegeEscalations << securitytrend_tmp
            end
          end
          unless params['CyberAttacks'].nil?
            @CyberAttacks = []
            params['CyberAttacks'].each do |i|
              securitytrend_tmp = SecurityTrend.new
              securitytrend_tmp.deserialize(i)
              @CyberAttacks << securitytrend_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeServerRelatedDirInfo请求参数结构体
      class DescribeServerRelatedDirInfoRequest < TencentCloud::Common::AbstractModel
        # @param Id: 唯一ID
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeServerRelatedDirInfo返回参数结构体
      class DescribeServerRelatedDirInfoResponse < TencentCloud::Common::AbstractModel
        # @param HostName: 服务器名称
        # @type HostName: String
        # @param HostIp: 服务器IP
        # @type HostIp: String
        # @param ProtectDirNum: 防护目录数量
        # @type ProtectDirNum: Integer
        # @param ProtectFileNum: 防护文件数量
        # @type ProtectFileNum: Integer
        # @param ProtectTamperNum: 防篡改数量
        # @type ProtectTamperNum: Integer
        # @param ProtectLinkNum: 防护软链数量
        # @type ProtectLinkNum: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :HostName, :HostIp, :ProtectDirNum, :ProtectFileNum, :ProtectTamperNum, :ProtectLinkNum, :RequestId

        def initialize(hostname=nil, hostip=nil, protectdirnum=nil, protectfilenum=nil, protecttampernum=nil, protectlinknum=nil, requestid=nil)
          @HostName = hostname
          @HostIp = hostip
          @ProtectDirNum = protectdirnum
          @ProtectFileNum = protectfilenum
          @ProtectTamperNum = protecttampernum
          @ProtectLinkNum = protectlinknum
          @RequestId = requestid
        end

        def deserialize(params)
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @ProtectDirNum = params['ProtectDirNum']
          @ProtectFileNum = params['ProtectFileNum']
          @ProtectTamperNum = params['ProtectTamperNum']
          @ProtectLinkNum = params['ProtectLinkNum']
          @RequestId = params['RequestId']
        end
      end

      # DescribeServersAndRiskAndFirstInfo请求参数结构体
      class DescribeServersAndRiskAndFirstInfoRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeServersAndRiskAndFirstInfo返回参数结构体
      class DescribeServersAndRiskAndFirstInfoResponse < TencentCloud::Common::AbstractModel
        # @param RiskFileCount: 风险文件数
        # @type RiskFileCount: Integer
        # @param AddRiskFileCount: 今日新增风险文件数
        # @type AddRiskFileCount: Integer
        # @param ServersCount: 受影响服务器台数
        # @type ServersCount: Integer
        # @param IsFirstCheck: 是否试用:true-是,false-否
        # @type IsFirstCheck: Boolean
        # @param ScanTime: 木马最近检测时间
        # @type ScanTime: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RiskFileCount, :AddRiskFileCount, :ServersCount, :IsFirstCheck, :ScanTime, :RequestId

        def initialize(riskfilecount=nil, addriskfilecount=nil, serverscount=nil, isfirstcheck=nil, scantime=nil, requestid=nil)
          @RiskFileCount = riskfilecount
          @AddRiskFileCount = addriskfilecount
          @ServersCount = serverscount
          @IsFirstCheck = isfirstcheck
          @ScanTime = scantime
          @RequestId = requestid
        end

        def deserialize(params)
          @RiskFileCount = params['RiskFileCount']
          @AddRiskFileCount = params['AddRiskFileCount']
          @ServersCount = params['ServersCount']
          @IsFirstCheck = params['IsFirstCheck']
          @ScanTime = params['ScanTime']
          @RequestId = params['RequestId']
        end
      end

      # DescribeStrategyExist请求参数结构体
      class DescribeStrategyExistRequest < TencentCloud::Common::AbstractModel
        # @param StrategyName: 策略名
        # @type StrategyName: String

        attr_accessor :StrategyName

        def initialize(strategyname=nil)
          @StrategyName = strategyname
        end

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

      # DescribeStrategyExist返回参数结构体
      class DescribeStrategyExistResponse < TencentCloud::Common::AbstractModel
        # @param IfExist: 策略是否存在, 1是 0否
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IfExist: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :IfExist, :RequestId

        def initialize(ifexist=nil, requestid=nil)
          @IfExist = ifexist
          @RequestId = requestid
        end

        def deserialize(params)
          @IfExist = params['IfExist']
          @RequestId = params['RequestId']
        end
      end

      # DescribeTagMachines请求参数结构体
      class DescribeTagMachinesRequest < TencentCloud::Common::AbstractModel
        # @param Id: 标签ID
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeTagMachines返回参数结构体
      class DescribeTagMachinesResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表数据
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeTags请求参数结构体
      class DescribeTagsRequest < TencentCloud::Common::AbstractModel
        # @param MachineType: 云主机类型。
        # <li>CVM:表示云服务器</li>
        # <li>BM:  表示黑石物理机</li>
        # <li>ECM:  表示边缘计算服务器</li>
        # <li>LH:  表示轻量应用服务器</li>
        # <li>Other:  表示混合云服务器</li>
        # @type MachineType: String
        # @param MachineRegion: 机器所属地域。如:ap-guangzhou
        # @type MachineRegion: String
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 查询关键字(机器名称/机器IP </li>
        # <li>Status - String - 是否必填:否 - 客户端在线状态(OFFLINE: 离线 | ONLINE: 在线 | UNINSTALLED:未安装 | SHUTDOWN 已关机)</li>
        # <li>Version - String  是否必填:否 - 当前防护版本( PRO_VERSION:专业版 | BASIC_VERSION:基础版)</li>
        # <li>Risk - String 是否必填: 否 - 风险主机( yes ) </li>
        # <li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )
        # 每个过滤条件只支持一个值,暂不支持多个值“或”关系查询</li>
        # @type Filters: Array

        attr_accessor :MachineType, :MachineRegion, :Filters

        def initialize(machinetype=nil, machineregion=nil, filters=nil)
          @MachineType = machinetype
          @MachineRegion = machineregion
          @Filters = filters
        end

        def deserialize(params)
          @MachineType = params['MachineType']
          @MachineRegion = params['MachineRegion']
          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

      # DescribeTags返回参数结构体
      class DescribeTagsResponse < TencentCloud::Common::AbstractModel
        # @param List: 列表信息
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeTrialReport请求参数结构体
      class DescribeTrialReportRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeTrialReport返回参数结构体
      class DescribeTrialReportResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # DescribeUndoVulCounts请求参数结构体
      class DescribeUndoVulCountsRequest < TencentCloud::Common::AbstractModel
        # @param VulCategory: 漏洞分类,1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        # @type VulCategory: Integer
        # @param IfEmergency: 是否应急漏洞筛选, 是 : yes
        # @type IfEmergency: String

        attr_accessor :VulCategory, :IfEmergency

        def initialize(vulcategory=nil, ifemergency=nil)
          @VulCategory = vulcategory
          @IfEmergency = ifemergency
        end

        def deserialize(params)
          @VulCategory = params['VulCategory']
          @IfEmergency = params['IfEmergency']
        end
      end

      # DescribeUndoVulCounts返回参数结构体
      class DescribeUndoVulCountsResponse < TencentCloud::Common::AbstractModel
        # @param UndoVulCount: 未处理的漏洞数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UndoVulCount: Integer
        # @param UndoHostCount: 未处理的主机数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UndoHostCount: Integer
        # @param NotProfessionCount: 普通版主机数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NotProfessionCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :UndoVulCount, :UndoHostCount, :NotProfessionCount, :RequestId

        def initialize(undovulcount=nil, undohostcount=nil, notprofessioncount=nil, requestid=nil)
          @UndoVulCount = undovulcount
          @UndoHostCount = undohostcount
          @NotProfessionCount = notprofessioncount
          @RequestId = requestid
        end

        def deserialize(params)
          @UndoVulCount = params['UndoVulCount']
          @UndoHostCount = params['UndoHostCount']
          @NotProfessionCount = params['NotProfessionCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeUsersConfig请求参数结构体
      class DescribeUsersConfigRequest < TencentCloud::Common::AbstractModel
        # @param ConfigName: 配置名称
        # <li>license_monitor 授权监控配置 0 关闭, 1开启</li>
        # @type ConfigName: String

        attr_accessor :ConfigName

        def initialize(configname=nil)
          @ConfigName = configname
        end

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

      # DescribeUsersConfig返回参数结构体
      class DescribeUsersConfigResponse < TencentCloud::Common::AbstractModel
        # @param Value: 配置值
        # @type Value: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Value, :RequestId

        def initialize(value=nil, requestid=nil)
          @Value = value
          @RequestId = requestid
        end

        def deserialize(params)
          @Value = params['Value']
          @RequestId = params['RequestId']
        end
      end

      # DescribeUsualLoginPlaces请求参数结构体
      class DescribeUsualLoginPlacesRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机安全客户端UUID
        # @type Uuid: String

        attr_accessor :Uuid

        def initialize(uuid=nil)
          @Uuid = uuid
        end

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

      # DescribeUsualLoginPlaces返回参数结构体
      class DescribeUsualLoginPlacesResponse < TencentCloud::Common::AbstractModel
        # @param UsualLoginPlaces: 常用登录地数组
        # @type UsualLoginPlaces: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :UsualLoginPlaces, :RequestId

        def initialize(usualloginplaces=nil, requestid=nil)
          @UsualLoginPlaces = usualloginplaces
          @RequestId = requestid
        end

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

      # DescribeVdbAndPocInfo请求参数结构体
      class DescribeVdbAndPocInfoRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVdbAndPocInfo返回参数结构体
      class DescribeVdbAndPocInfoResponse < TencentCloud::Common::AbstractModel
        # @param VdbUpdateTime: 病毒库更新时间。
        # @type VdbUpdateTime: String
        # @param PocUpdateTime: 漏洞库更新时间。
        # @type PocUpdateTime: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VdbUpdateTime, :PocUpdateTime, :RequestId

        def initialize(vdbupdatetime=nil, pocupdatetime=nil, requestid=nil)
          @VdbUpdateTime = vdbupdatetime
          @PocUpdateTime = pocupdatetime
          @RequestId = requestid
        end

        def deserialize(params)
          @VdbUpdateTime = params['VdbUpdateTime']
          @PocUpdateTime = params['PocUpdateTime']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVersionCompareChart请求参数结构体
      class DescribeVersionCompareChartRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVersionCompareChart返回参数结构体
      class DescribeVersionCompareChartResponse < TencentCloud::Common::AbstractModel
        # @param Data: json 字符串
        # @type Data: String
        # @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)
          @Data = params['Data']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVersionStatistics请求参数结构体
      class DescribeVersionStatisticsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVersionStatistics返回参数结构体
      class DescribeVersionStatisticsResponse < TencentCloud::Common::AbstractModel
        # @param BasicVersionNum: 基础版数量
        # @type BasicVersionNum: Integer
        # @param ProVersionNum: 专业版数量
        # @type ProVersionNum: Integer
        # @param UltimateVersionNum: 旗舰版数量
        # @type UltimateVersionNum: Integer
        # @param GeneralVersionNum: 普惠版数量
        # @type GeneralVersionNum: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :BasicVersionNum, :ProVersionNum, :UltimateVersionNum, :GeneralVersionNum, :RequestId

        def initialize(basicversionnum=nil, proversionnum=nil, ultimateversionnum=nil, generalversionnum=nil, requestid=nil)
          @BasicVersionNum = basicversionnum
          @ProVersionNum = proversionnum
          @UltimateVersionNum = ultimateversionnum
          @GeneralVersionNum = generalversionnum
          @RequestId = requestid
        end

        def deserialize(params)
          @BasicVersionNum = params['BasicVersionNum']
          @ProVersionNum = params['ProVersionNum']
          @UltimateVersionNum = params['UltimateVersionNum']
          @GeneralVersionNum = params['GeneralVersionNum']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVertexDetail请求参数结构体
      class DescribeVertexDetailRequest < TencentCloud::Common::AbstractModel
        # @param VertexIds: 点id列表
        # @type VertexIds: Array
        # @param IncidentId: 事件id
        # @type IncidentId: String
        # @param TableName: 事件所在表名
        # @type TableName: String

        attr_accessor :VertexIds, :IncidentId, :TableName

        def initialize(vertexids=nil, incidentid=nil, tablename=nil)
          @VertexIds = vertexids
          @IncidentId = incidentid
          @TableName = tablename
        end

        def deserialize(params)
          @VertexIds = params['VertexIds']
          @IncidentId = params['IncidentId']
          @TableName = params['TableName']
        end
      end

      # DescribeVertexDetail返回参数结构体
      class DescribeVertexDetailResponse < TencentCloud::Common::AbstractModel
        # @param VertexDetails: 指定点列表的属性信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VertexDetails: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VertexDetails, :RequestId

        def initialize(vertexdetails=nil, requestid=nil)
          @VertexDetails = vertexdetails
          @RequestId = requestid
        end

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

      # DescribeVulCountByDates请求参数结构体
      class DescribeVulCountByDatesRequest < TencentCloud::Common::AbstractModel
        # @param LastDays: 需要查询最近几天的数据,需要都 -1后传入
        # @type LastDays: Array
        # @param VulCategory: 漏洞的分类: 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        # @type VulCategory: Integer
        # @param IfEmergency: 是否为应急漏洞筛选  是: yes
        # @type IfEmergency: String

        attr_accessor :LastDays, :VulCategory, :IfEmergency

        def initialize(lastdays=nil, vulcategory=nil, ifemergency=nil)
          @LastDays = lastdays
          @VulCategory = vulcategory
          @IfEmergency = ifemergency
        end

        def deserialize(params)
          @LastDays = params['LastDays']
          @VulCategory = params['VulCategory']
          @IfEmergency = params['IfEmergency']
        end
      end

      # DescribeVulCountByDates返回参数结构体
      class DescribeVulCountByDatesResponse < TencentCloud::Common::AbstractModel
        # @param VulCount: 批量获得对应天数的漏洞数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulCount: Array
        # @param HostCount: 批量获得对应天数的主机数量
        # @type HostCount: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulCount, :HostCount, :RequestId

        def initialize(vulcount=nil, hostcount=nil, requestid=nil)
          @VulCount = vulcount
          @HostCount = hostcount
          @RequestId = requestid
        end

        def deserialize(params)
          @VulCount = params['VulCount']
          @HostCount = params['HostCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulCveIdInfo请求参数结构体
      class DescribeVulCveIdInfoRequest < TencentCloud::Common::AbstractModel
        # @param CveIds: 漏洞cve_id 列表
        # @type CveIds: Array

        attr_accessor :CveIds

        def initialize(cveids=nil)
          @CveIds = cveids
        end

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

      # DescribeVulCveIdInfo返回参数结构体
      class DescribeVulCveIdInfoResponse < TencentCloud::Common::AbstractModel
        # @param List: 详情列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

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

      # DescribeVulDefenceEvent请求参数结构体
      class DescribeVulDefenceEventRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询; Quuid,VulId,EventType,Status精确匹配,CreateBeginTime,CreateEndTime时间段查询
        # @type Filters: Array
        # @param Offset: 数据偏移
        # @type Offset: Integer
        # @param Limit: 数据限制
        # @type Limit: Integer
        # @param Order: 排序,大小写无关:asc 升序,desc降序
        # @type Order: String
        # @param By: 排序列,严格相等:CreateTime创建时间,MergeTime合并时间,Count事件数量
        # @type By: String

        attr_accessor :Filters, :Offset, :Limit, :Order, :By

        def initialize(filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeVulDefenceEvent返回参数结构体
      class DescribeVulDefenceEventResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 数据总数
        # @type TotalCount: Integer
        # @param List: 漏洞防御事件列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              vuldefenceevent_tmp = VulDefenceEvent.new
              vuldefenceevent_tmp.deserialize(i)
              @List << vuldefenceevent_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulDefenceList请求参数结构体
      class DescribeVulDefenceListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:Level、Keywords
        # @type Filters: Array
        # @param Offset: 数据偏移
        # @type Offset: Integer
        # @param Limit: 数据限制
        # @type Limit: Integer
        # @param Order: 排序,大小写无关:asc 升序,desc降序
        # @type Order: String
        # @param By: 排序列,严格相等:PublishTime发布时间
        # @type By: String

        attr_accessor :Filters, :Offset, :Limit, :Order, :By

        def initialize(filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeVulDefenceList返回参数结构体
      class DescribeVulDefenceListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 数据总数
        # @type TotalCount: Integer
        # @param List: 漏洞防御列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              vuldefencerangedetail_tmp = VulDefenceRangeDetail.new
              vuldefencerangedetail_tmp.deserialize(i)
              @List << vuldefencerangedetail_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulDefenceOverview请求参数结构体
      class DescribeVulDefenceOverviewRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVulDefenceOverview返回参数结构体
      class DescribeVulDefenceOverviewResponse < TencentCloud::Common::AbstractModel
        # @param Overview: 漏洞防御概览信息
        # @type Overview: :class:`Tencentcloud::Cwp.v20180228.models.VulDefenceOverview`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Overview, :RequestId

        def initialize(overview=nil, requestid=nil)
          @Overview = overview
          @RequestId = requestid
        end

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

      # DescribeVulDefencePluginDetail请求参数结构体
      class DescribeVulDefencePluginDetailRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件:Keywords: ip或者主机名,Exception,Status精确匹配
        # @type Filters: Array
        # @param Offset: 数据偏移
        # @type Offset: Integer
        # @param Limit: 数据限制
        # @type Limit: Integer

        attr_accessor :Quuid, :Filters, :Offset, :Limit

        def initialize(quuid=nil, filters=nil, offset=nil, limit=nil)
          @Quuid = quuid
          @Filters = filters
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeVulDefencePluginDetail返回参数结构体
      class DescribeVulDefencePluginDetailResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 数据总数
        # @type TotalCount: Integer
        # @param List: 漏洞防御插件信息详情列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              vuldefenceplugindetail_tmp = VulDefencePluginDetail.new
              vuldefenceplugindetail_tmp.deserialize(i)
              @List << vuldefenceplugindetail_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulDefencePluginExceptionCount请求参数结构体
      class DescribeVulDefencePluginExceptionCountRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVulDefencePluginExceptionCount返回参数结构体
      class DescribeVulDefencePluginExceptionCountResponse < TencentCloud::Common::AbstractModel
        # @param Count: 当前异常插件数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Count: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Count, :RequestId

        def initialize(count=nil, requestid=nil)
          @Count = count
          @RequestId = requestid
        end

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

      # DescribeVulDefencePluginStatus请求参数结构体
      class DescribeVulDefencePluginStatusRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Keywords - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>Exception - String - 是否必填:否 - 插件状态 0:正常,1:异常,2:无java进程注入</li>
        # @type Filters: Array
        # @param Offset: 数据偏移
        # @type Offset: Integer
        # @param Limit: 数据限制
        # @type Limit: Integer
        # @param Order: 排序,大小写无关:asc 升序,desc降序
        # @type Order: String
        # @param By: 排序列,严格相等:CreateTime创建时间,ModifyTime更新时间
        # @type By: String

        attr_accessor :Filters, :Offset, :Limit, :Order, :By

        def initialize(filters=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeVulDefencePluginStatus返回参数结构体
      class DescribeVulDefencePluginStatusResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 数据总数
        # @type TotalCount: Integer
        # @param List: 各主机漏洞防御插件信息列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              vuldefencepluginstatus_tmp = VulDefencePluginStatus.new
              vuldefencepluginstatus_tmp.deserialize(i)
              @List << vuldefencepluginstatus_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulDefenceSetting请求参数结构体
      class DescribeVulDefenceSettingRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVulDefenceSetting返回参数结构体
      class DescribeVulDefenceSettingResponse < TencentCloud::Common::AbstractModel
        # @param Enable: 防御开关,0 关闭 1 开启
        # @type Enable: Integer
        # @param Scope: 影响范围:1 全网旗舰版主机,0 quuid列表主机
        # @type Scope: Integer
        # @param Quuids: 影响主机quuid列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuids: Array
        # @param FlagshipCount: 当前旗舰版主机数量
        # @type FlagshipCount: Integer
        # @param InstanceIds: 影响主机id列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceIds: Array
        # @param AutoInclude: 新增旗舰版主机自动加入;1是,0否
        # @type AutoInclude: Integer
        # @param ExcludeInstanceIds: 排除的主机id列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ExcludeInstanceIds: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Enable, :Scope, :Quuids, :FlagshipCount, :InstanceIds, :AutoInclude, :ExcludeInstanceIds, :RequestId

        def initialize(enable=nil, scope=nil, quuids=nil, flagshipcount=nil, instanceids=nil, autoinclude=nil, excludeinstanceids=nil, requestid=nil)
          @Enable = enable
          @Scope = scope
          @Quuids = quuids
          @FlagshipCount = flagshipcount
          @InstanceIds = instanceids
          @AutoInclude = autoinclude
          @ExcludeInstanceIds = excludeinstanceids
          @RequestId = requestid
        end

        def deserialize(params)
          @Enable = params['Enable']
          @Scope = params['Scope']
          @Quuids = params['Quuids']
          @FlagshipCount = params['FlagshipCount']
          @InstanceIds = params['InstanceIds']
          @AutoInclude = params['AutoInclude']
          @ExcludeInstanceIds = params['ExcludeInstanceIds']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulEffectHostList请求参数结构体
      class DescribeVulEffectHostListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页limit 最大100
        # @type Limit: Integer
        # @param Offset: 分页Offset
        # @type Offset: Integer
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param Filters: 过滤条件:
        # <li>AliasName - String - 主机名筛选</li>
        # <li>TagIds - String - 主机标签id串,多个用英文用逗号分隔</li>
        # <li>Status - String - 状态:0-待处理 1-忽略  3-已修复  5-检测中  6-修复中  8-修复失败</li>
        # <li>Uuid - String数组 - Uuid串数组</li>
        # <li>Version - String数组 - 付费版本数组:"Flagship"-旗舰版 "PRO_VERSION"-专业版 "BASIC_VERSION"-基础版</li>
        # <li>InstanceState - String数组 - 实例状态数组:"PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-开机中 "STOPPING"-关机中 "REBOOTING"-重启中 "SHUTDOWN"-待销毁 "TERMINATING"-销毁中 "UNKNOWN"-未知(针对非腾讯云机器,且客户端离线的场景) </li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :VulId, :Filters

        def initialize(limit=nil, offset=nil, vulid=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @VulId = vulid
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          @VulId = params['VulId']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeVulEffectHostList返回参数结构体
      class DescribeVulEffectHostListResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 列表总数量
        # @type TotalCount: Integer
        # @param VulEffectHostList: 影响主机列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulEffectHostList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :VulEffectHostList, :RequestId

        def initialize(totalcount=nil, vuleffecthostlist=nil, requestid=nil)
          @TotalCount = totalcount
          @VulEffectHostList = vuleffecthostlist
          @RequestId = requestid
        end

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

      # DescribeVulEffectModules请求参数结构体
      class DescribeVulEffectModulesRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 分页limit 最大100
        # @type Limit: Integer
        # @param Offset: 分页Offset
        # @type Offset: Integer
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param Filters: 过滤条件:
        # <li>Uuid - String数组 - Uuid串数组</li>
        # @type Filters: Array

        attr_accessor :Limit, :Offset, :VulId, :Filters

        def initialize(limit=nil, offset=nil, vulid=nil, filters=nil)
          @Limit = limit
          @Offset = offset
          @VulId = vulid
          @Filters = filters
        end

        def deserialize(params)
          @Limit = params['Limit']
          @Offset = params['Offset']
          @VulId = params['VulId']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # DescribeVulEffectModules返回参数结构体
      class DescribeVulEffectModulesResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 列表总数量
        # @type TotalCount: Integer
        # @param VulEffectModuleInfo: 影响主机列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulEffectModuleInfo: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :VulEffectModuleInfo, :RequestId

        def initialize(totalcount=nil, vuleffectmoduleinfo=nil, requestid=nil)
          @TotalCount = totalcount
          @VulEffectModuleInfo = vuleffectmoduleinfo
          @RequestId = requestid
        end

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

      # DescribeVulEmergentMsg请求参数结构体
      class DescribeVulEmergentMsgRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVulEmergentMsg返回参数结构体
      class DescribeVulEmergentMsgResponse < TencentCloud::Common::AbstractModel
        # @param EmergentMsgList: 漏洞紧急通知数据
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EmergentMsgList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :EmergentMsgList, :RequestId

        def initialize(emergentmsglist=nil, requestid=nil)
          @EmergentMsgList = emergentmsglist
          @RequestId = requestid
        end

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

      # DescribeVulFixStatus请求参数结构体
      class DescribeVulFixStatusRequest < TencentCloud::Common::AbstractModel
        # @param FixId: 任务id 传VulId可以不用传FixId
        # @type FixId: Integer
        # @param VulId: 漏洞id 传FixId可以不用传VulId
        # @type VulId: Integer
        # @param Quuid: 主机quuid 和VulId 组合可查 某主机最近一次修复任务详情
        # @type Quuid: String

        attr_accessor :FixId, :VulId, :Quuid

        def initialize(fixid=nil, vulid=nil, quuid=nil)
          @FixId = fixid
          @VulId = vulid
          @Quuid = quuid
        end

        def deserialize(params)
          @FixId = params['FixId']
          @VulId = params['VulId']
          @Quuid = params['Quuid']
        end
      end

      # DescribeVulFixStatus返回参数结构体
      class DescribeVulFixStatusResponse < TencentCloud::Common::AbstractModel
        # @param FixStartTime: 开始修复时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixStartTime: String
        # @param FixEndTime: 修复结束时间,为空表示还没结束
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixEndTime: String
        # @param FixSuccessCnt: 修复成功的主机数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixSuccessCnt: Integer
        # @param FixFailCnt: 修复失败的主机数
        # @type FixFailCnt: Integer
        # @param HostCnt: 主机总是
        # @type HostCnt: Integer
        # @param FixId: 修复的任务id
        # @type FixId: Integer
        # @param SnapshotList: 修复快照状态列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SnapshotList: Array
        # @param VulFixList: 修复漏洞详情列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulFixList: Array
        # @param SnapshotProgress: 快照创建进度0-100
        # @type SnapshotProgress: Integer
        # @param FixProgress: 修复精度 0-100
        # @type FixProgress: Integer
        # @param RemainingTime: 预计剩余时间(单位秒)
        # @type RemainingTime: Integer
        # @param IsRetrySnapshot: 快照是否是重试状态 0=非重试  1=重试
        # @type IsRetrySnapshot: Integer
        # @param SnapshotFailCnt: 快照创建失败数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SnapshotFailCnt: Integer
        # @param IsAllowRetry: 是否允许重试 0:不允许 1:允许
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsAllowRetry: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FixStartTime, :FixEndTime, :FixSuccessCnt, :FixFailCnt, :HostCnt, :FixId, :SnapshotList, :VulFixList, :SnapshotProgress, :FixProgress, :RemainingTime, :IsRetrySnapshot, :SnapshotFailCnt, :IsAllowRetry, :RequestId

        def initialize(fixstarttime=nil, fixendtime=nil, fixsuccesscnt=nil, fixfailcnt=nil, hostcnt=nil, fixid=nil, snapshotlist=nil, vulfixlist=nil, snapshotprogress=nil, fixprogress=nil, remainingtime=nil, isretrysnapshot=nil, snapshotfailcnt=nil, isallowretry=nil, requestid=nil)
          @FixStartTime = fixstarttime
          @FixEndTime = fixendtime
          @FixSuccessCnt = fixsuccesscnt
          @FixFailCnt = fixfailcnt
          @HostCnt = hostcnt
          @FixId = fixid
          @SnapshotList = snapshotlist
          @VulFixList = vulfixlist
          @SnapshotProgress = snapshotprogress
          @FixProgress = fixprogress
          @RemainingTime = remainingtime
          @IsRetrySnapshot = isretrysnapshot
          @SnapshotFailCnt = snapshotfailcnt
          @IsAllowRetry = isallowretry
          @RequestId = requestid
        end

        def deserialize(params)
          @FixStartTime = params['FixStartTime']
          @FixEndTime = params['FixEndTime']
          @FixSuccessCnt = params['FixSuccessCnt']
          @FixFailCnt = params['FixFailCnt']
          @HostCnt = params['HostCnt']
          @FixId = params['FixId']
          unless params['SnapshotList'].nil?
            @SnapshotList = []
            params['SnapshotList'].each do |i|
              vulfixstatussnapshotinfo_tmp = VulFixStatusSnapshotInfo.new
              vulfixstatussnapshotinfo_tmp.deserialize(i)
              @SnapshotList << vulfixstatussnapshotinfo_tmp
            end
          end
          unless params['VulFixList'].nil?
            @VulFixList = []
            params['VulFixList'].each do |i|
              vulfixstatusinfo_tmp = VulFixStatusInfo.new
              vulfixstatusinfo_tmp.deserialize(i)
              @VulFixList << vulfixstatusinfo_tmp
            end
          end
          @SnapshotProgress = params['SnapshotProgress']
          @FixProgress = params['FixProgress']
          @RemainingTime = params['RemainingTime']
          @IsRetrySnapshot = params['IsRetrySnapshot']
          @SnapshotFailCnt = params['SnapshotFailCnt']
          @IsAllowRetry = params['IsAllowRetry']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulHostCountScanTime请求参数结构体
      class DescribeVulHostCountScanTimeRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVulHostCountScanTime返回参数结构体
      class DescribeVulHostCountScanTimeResponse < TencentCloud::Common::AbstractModel
        # @param TotalVulCount: 总漏洞数
        # @type TotalVulCount: Integer
        # @param VulHostCount: 漏洞影响主机数
        # @type VulHostCount: Integer
        # @param ScanTime: 扫描时间
        # @type ScanTime: String
        # @param IfFirstScan: 是否第一次检测
        # @type IfFirstScan: Boolean
        # @param TaskId: 运行中的任务号, 没有任务则为0
        # @type TaskId: Integer
        # @param LastFixTime: 最后一次修复漏洞的时间
        # @type LastFixTime: String
        # @param hadAutoFixVul: 是否有支持自动修复的漏洞事件
        # @type hadAutoFixVul: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalVulCount, :VulHostCount, :ScanTime, :IfFirstScan, :TaskId, :LastFixTime, :hadAutoFixVul, :RequestId

        def initialize(totalvulcount=nil, vulhostcount=nil, scantime=nil, iffirstscan=nil, taskid=nil, lastfixtime=nil, hadautofixvul=nil, requestid=nil)
          @TotalVulCount = totalvulcount
          @VulHostCount = vulhostcount
          @ScanTime = scantime
          @IfFirstScan = iffirstscan
          @TaskId = taskid
          @LastFixTime = lastfixtime
          @hadAutoFixVul = hadautofixvul
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalVulCount = params['TotalVulCount']
          @VulHostCount = params['VulHostCount']
          @ScanTime = params['ScanTime']
          @IfFirstScan = params['IfFirstScan']
          @TaskId = params['TaskId']
          @LastFixTime = params['LastFixTime']
          @hadAutoFixVul = params['hadAutoFixVul']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulHostTop请求参数结构体
      class DescribeVulHostTopRequest < TencentCloud::Common::AbstractModel
        # @param Top: 获取top值,1-100
        # @type Top: Integer
        # @param VulCategory: 1:web-cms 漏洞,2.应用漏洞   4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞,不填或者填0时返回 1,2,4,5 的总统计数据
        # @type VulCategory: Integer
        # @param IsFollowVul: 是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        # @type IsFollowVul: Integer

        attr_accessor :Top, :VulCategory, :IsFollowVul

        def initialize(top=nil, vulcategory=nil, isfollowvul=nil)
          @Top = top
          @VulCategory = vulcategory
          @IsFollowVul = isfollowvul
        end

        def deserialize(params)
          @Top = params['Top']
          @VulCategory = params['VulCategory']
          @IsFollowVul = params['IsFollowVul']
        end
      end

      # DescribeVulHostTop返回参数结构体
      class DescribeVulHostTopResponse < TencentCloud::Common::AbstractModel
        # @param VulHostTopList: 服务器风险top列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulHostTopList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulHostTopList, :RequestId

        def initialize(vulhosttoplist=nil, requestid=nil)
          @VulHostTopList = vulhosttoplist
          @RequestId = requestid
        end

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

      # DescribeVulInfoCvss请求参数结构体
      class DescribeVulInfoCvssRequest < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # @type VulId: Integer

        attr_accessor :VulId

        def initialize(vulid=nil)
          @VulId = vulid
        end

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

      # DescribeVulInfoCvss返回参数结构体
      class DescribeVulInfoCvssResponse < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulId: Integer
        # @param VulName: 漏洞名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulName: String
        # @param VulLevel: 危害等级:1-低危;2-中危;3-高危;4-严重
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulLevel: Integer
        # @param VulType: 漏洞分类 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulType: Integer
        # @param Description: 漏洞描述信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Description: String
        # @param RepairPlan: 修复方案
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RepairPlan: String
        # @param CveId: 漏洞CVEID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CveId: String
        # @param Reference: 参考链接
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Reference: String
        # @param CVSS: CVSS信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CVSS: String
        # @param PublicDate: 发布时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PublicDate: String
        # @param CvssScore: Cvss分数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CvssScore: Integer
        # @param CveInfo: cvss详情
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CveInfo: String
        # @param CvssScoreFloat: cvss 分数 浮点型
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CvssScoreFloat: Float
        # @param Labels: 漏洞标签 多个逗号分割
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Labels: String
        # @param DefenseAttackCount: 已防御的攻击次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DefenseAttackCount: Integer
        # @param SuccessFixCount: 全网修复成功次数, 不支持自动修复的漏洞默认返回0
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SuccessFixCount: Integer
        # @param FixSwitch: 修复是否支持:0-windows/linux均不支持修复 ;1-windows/linux 均支持修复 ;2-仅linux支持修复;3-仅windows支持修复
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixSwitch: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulId, :VulName, :VulLevel, :VulType, :Description, :RepairPlan, :CveId, :Reference, :CVSS, :PublicDate, :CvssScore, :CveInfo, :CvssScoreFloat, :Labels, :DefenseAttackCount, :SuccessFixCount, :FixSwitch, :RequestId

        def initialize(vulid=nil, vulname=nil, vullevel=nil, vultype=nil, description=nil, repairplan=nil, cveid=nil, reference=nil, cvss=nil, publicdate=nil, cvssscore=nil, cveinfo=nil, cvssscorefloat=nil, labels=nil, defenseattackcount=nil, successfixcount=nil, fixswitch=nil, requestid=nil)
          @VulId = vulid
          @VulName = vulname
          @VulLevel = vullevel
          @VulType = vultype
          @Description = description
          @RepairPlan = repairplan
          @CveId = cveid
          @Reference = reference
          @CVSS = cvss
          @PublicDate = publicdate
          @CvssScore = cvssscore
          @CveInfo = cveinfo
          @CvssScoreFloat = cvssscorefloat
          @Labels = labels
          @DefenseAttackCount = defenseattackcount
          @SuccessFixCount = successfixcount
          @FixSwitch = fixswitch
          @RequestId = requestid
        end

        def deserialize(params)
          @VulId = params['VulId']
          @VulName = params['VulName']
          @VulLevel = params['VulLevel']
          @VulType = params['VulType']
          @Description = params['Description']
          @RepairPlan = params['RepairPlan']
          @CveId = params['CveId']
          @Reference = params['Reference']
          @CVSS = params['CVSS']
          @PublicDate = params['PublicDate']
          @CvssScore = params['CvssScore']
          @CveInfo = params['CveInfo']
          @CvssScoreFloat = params['CvssScoreFloat']
          @Labels = params['Labels']
          @DefenseAttackCount = params['DefenseAttackCount']
          @SuccessFixCount = params['SuccessFixCount']
          @FixSwitch = params['FixSwitch']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulLabels请求参数结构体
      class DescribeVulLabelsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVulLabels返回参数结构体
      class DescribeVulLabelsResponse < TencentCloud::Common::AbstractModel
        # @param List: 标签列表
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :RequestId

        def initialize(list=nil, requestid=nil)
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @List = params['List']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulLevelCount请求参数结构体
      class DescribeVulLevelCountRequest < TencentCloud::Common::AbstractModel
        # @param VulCategory: 1:web-cms 漏洞,2.应用漏洞 3:安全基线 4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞,不填或者填0时返回 1,2,4,5 的总统计数据
        # @type VulCategory: Integer
        # @param IsFollowVul: 是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        # @type IsFollowVul: Integer

        attr_accessor :VulCategory, :IsFollowVul

        def initialize(vulcategory=nil, isfollowvul=nil)
          @VulCategory = vulcategory
          @IsFollowVul = isfollowvul
        end

        def deserialize(params)
          @VulCategory = params['VulCategory']
          @IsFollowVul = params['IsFollowVul']
        end
      end

      # DescribeVulLevelCount返回参数结构体
      class DescribeVulLevelCountResponse < TencentCloud::Common::AbstractModel
        # @param VulLevelList: 统计结果
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulLevelList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulLevelList, :RequestId

        def initialize(vullevellist=nil, requestid=nil)
          @VulLevelList = vullevellist
          @RequestId = requestid
        end

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

      # DescribeVulList请求参数结构体
      class DescribeVulListRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 返回数量,最大值为100。
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Filters: 过滤条件。
        # <li>Status - String - 是否必填:否 - 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略</li>
        # <li>ModifyTime - String - 是否必填:否 - 最近发生时间</li>
        # <li>Uuid- String - 是否必填:否 - 主机uuid查询</li>
        # <li>VulName- string -</li>
        # <li>VulCategory- string - 是否必填:否 - 漏洞类别 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞</li>
        # <li>IsSupportDefense - int- 是否必填:否 - 是否支持防御 0:不支持 1:支持</li>
        # <li>Labels- string- 是否必填:否 - 标签搜索</li>
        # <li>IsSupportAutoFix- string- 是否必填:否 - 是否支持自动修复 0:不支持 1:支持</li>
        # <li>CvssScore- string- 是否必填:否 - CvssScore大于多少</li>
        # <li>AttackLevel- string- 是否必填:否 - 攻击热度大于多少</li>

        # @type Filters: Array
        # @param By: 可选排序字段 Level,LastTime,HostCount
        # @type By: String
        # @param Order: 排序顺序:desc  默认asc
        # @type Order: String

        attr_accessor :Limit, :Offset, :Filters, :By, :Order

        def initialize(limit=nil, offset=nil, filters=nil, by=nil, order=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @By = by
          @Order = order
        end

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

      # DescribeVulList返回参数结构体
      class DescribeVulListResponse < TencentCloud::Common::AbstractModel
        # @param VulInfoList: 漏洞列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulInfoList: Array
        # @param TotalCount: 漏洞总条数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param FollowVulCount: 重点关注漏洞总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FollowVulCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulInfoList, :TotalCount, :FollowVulCount, :RequestId

        def initialize(vulinfolist=nil, totalcount=nil, followvulcount=nil, requestid=nil)
          @VulInfoList = vulinfolist
          @TotalCount = totalcount
          @FollowVulCount = followvulcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['VulInfoList'].nil?
            @VulInfoList = []
            params['VulInfoList'].each do |i|
              vulinfolist_tmp = VulInfoList.new
              vulinfolist_tmp.deserialize(i)
              @VulInfoList << vulinfolist_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @FollowVulCount = params['FollowVulCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulOverview请求参数结构体
      class DescribeVulOverviewRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVulOverview返回参数结构体
      class DescribeVulOverviewResponse < TencentCloud::Common::AbstractModel
        # @param FollowVul: 重点关注漏洞统计
        # @type FollowVul: :class:`Tencentcloud::Cwp.v20180228.models.VulOverview`
        # @param AllVul: 全部漏洞统计
        # @type AllVul: :class:`Tencentcloud::Cwp.v20180228.models.VulOverview`
        # @param EffectHost: 影响主机统计
        # @type EffectHost: :class:`Tencentcloud::Cwp.v20180228.models.VulOverview`
        # @param VulAttackEvent: 漏洞攻击事件(近1月)统计
        # @type VulAttackEvent: :class:`Tencentcloud::Cwp.v20180228.models.VulOverview`
        # @param VulDefenceEvent: 已防御攻击(近1月)统计
        # @type VulDefenceEvent: :class:`Tencentcloud::Cwp.v20180228.models.VulOverview`
        # @param VulStore: 漏洞库统计
        # @type VulStore: :class:`Tencentcloud::Cwp.v20180228.models.VulOverview`
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FollowVul, :AllVul, :EffectHost, :VulAttackEvent, :VulDefenceEvent, :VulStore, :RequestId

        def initialize(followvul=nil, allvul=nil, effecthost=nil, vulattackevent=nil, vuldefenceevent=nil, vulstore=nil, requestid=nil)
          @FollowVul = followvul
          @AllVul = allvul
          @EffectHost = effecthost
          @VulAttackEvent = vulattackevent
          @VulDefenceEvent = vuldefenceevent
          @VulStore = vulstore
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['FollowVul'].nil?
            @FollowVul = VulOverview.new
            @FollowVul.deserialize(params['FollowVul'])
          end
          unless params['AllVul'].nil?
            @AllVul = VulOverview.new
            @AllVul.deserialize(params['AllVul'])
          end
          unless params['EffectHost'].nil?
            @EffectHost = VulOverview.new
            @EffectHost.deserialize(params['EffectHost'])
          end
          unless params['VulAttackEvent'].nil?
            @VulAttackEvent = VulOverview.new
            @VulAttackEvent.deserialize(params['VulAttackEvent'])
          end
          unless params['VulDefenceEvent'].nil?
            @VulDefenceEvent = VulOverview.new
            @VulDefenceEvent.deserialize(params['VulDefenceEvent'])
          end
          unless params['VulStore'].nil?
            @VulStore = VulOverview.new
            @VulStore.deserialize(params['VulStore'])
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulStoreList请求参数结构体
      class DescribeVulStoreListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>VulName- string - 是否必填:否 - 漏洞名称</li>
        # <li>CveId- string - 是否必填:否 - cveid</li>
        # <li>VulCategory- string - 是否必填:否 - 漏洞分类  1 Web-CMS漏洞 ,2 应用漏洞 ,4 Linux软件漏洞,5 Windows系统漏洞</li>
        # <li>Method- string - 是否必填:否 - 检测方法 0版本对比,1 poc检测 </li>
        # <li>SupportDefense- string - 是否必填:否 - 是否支持防御 0不支持,1支持</li>
        # <li>FixSwitch- string - 是否必填:否 - 是否支持自动修复 0不支持,1支持</li>
        # @type Filters: Array
        # @param Limit: 限制条数,默认10,最大100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认0
        # @type Offset: Integer
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [PublishDate]
        # @type By: String

        attr_accessor :Filters, :Limit, :Offset, :Order, :By

        def initialize(filters=nil, limit=nil, offset=nil, order=nil, by=nil)
          @Filters = filters
          @Limit = limit
          @Offset = offset
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Limit = params['Limit']
          @Offset = params['Offset']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeVulStoreList返回参数结构体
      class DescribeVulStoreListResponse < TencentCloud::Common::AbstractModel
        # @param List: 漏洞信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param Remaining: 今日剩余搜索此时
        # @type Remaining: Integer
        # @param FreeSearchTimes: 免费搜索次数
        # @type FreeSearchTimes: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :Remaining, :FreeSearchTimes, :RequestId

        def initialize(list=nil, totalcount=nil, remaining=nil, freesearchtimes=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @Remaining = remaining
          @FreeSearchTimes = freesearchtimes
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              vulstorelistinfo_tmp = VulStoreListInfo.new
              vulstorelistinfo_tmp.deserialize(i)
              @List << vulstorelistinfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @Remaining = params['Remaining']
          @FreeSearchTimes = params['FreeSearchTimes']
          @RequestId = params['RequestId']
        end
      end

      # DescribeVulTop请求参数结构体
      class DescribeVulTopRequest < TencentCloud::Common::AbstractModel
        # @param Top: 漏洞风险服务器top,1-100
        # @type Top: Integer
        # @param VulCategory: 1:web-cms 漏洞,2.应用漏洞 4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞,不填或者填0时返回 1,2,4,5 的总统计数据
        # @type VulCategory: Integer
        # @param IsFollowVul: 是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        # @type IsFollowVul: Integer

        attr_accessor :Top, :VulCategory, :IsFollowVul

        def initialize(top=nil, vulcategory=nil, isfollowvul=nil)
          @Top = top
          @VulCategory = vulcategory
          @IsFollowVul = isfollowvul
        end

        def deserialize(params)
          @Top = params['Top']
          @VulCategory = params['VulCategory']
          @IsFollowVul = params['IsFollowVul']
        end
      end

      # DescribeVulTop返回参数结构体
      class DescribeVulTopResponse < TencentCloud::Common::AbstractModel
        # @param VulTopList: 漏洞top列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulTopList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulTopList, :RequestId

        def initialize(vultoplist=nil, requestid=nil)
          @VulTopList = vultoplist
          @RequestId = requestid
        end

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

      # DescribeVulTrend请求参数结构体
      class DescribeVulTrendRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeVulTrend返回参数结构体
      class DescribeVulTrendResponse < TencentCloud::Common::AbstractModel
        # @param VulEventCount: 近半年漏洞利用攻击事件数量
        # @type VulEventCount: Integer
        # @param IncreaseVulEventCount: 近半年新增漏洞利用攻击事件数量
        # @type IncreaseVulEventCount: Integer
        # @param HotVulCount: 近半年热点攻击漏洞
        # @type HotVulCount: Integer
        # @param IncreaseHotVulCount: 近半年新增热点攻击漏洞
        # @type IncreaseHotVulCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :VulEventCount, :IncreaseVulEventCount, :HotVulCount, :IncreaseHotVulCount, :RequestId

        def initialize(vuleventcount=nil, increasevuleventcount=nil, hotvulcount=nil, increasehotvulcount=nil, requestid=nil)
          @VulEventCount = vuleventcount
          @IncreaseVulEventCount = increasevuleventcount
          @HotVulCount = hotvulcount
          @IncreaseHotVulCount = increasehotvulcount
          @RequestId = requestid
        end

        def deserialize(params)
          @VulEventCount = params['VulEventCount']
          @IncreaseVulEventCount = params['IncreaseVulEventCount']
          @HotVulCount = params['HotVulCount']
          @IncreaseHotVulCount = params['IncreaseHotVulCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeWarningHostConfig请求参数结构体
      class DescribeWarningHostConfigRequest < TencentCloud::Common::AbstractModel
        # @param Type: 告警类型
        # @type Type: Integer
        # @param Limit: 分页单页限制数目, 0表示不分页
        # @type Limit: Integer
        # @param Offset: 分页的偏移量,默认值为0
        # @type Offset: Integer

        attr_accessor :Type, :Limit, :Offset

        def initialize(type=nil, limit=nil, offset=nil)
          @Type = type
          @Limit = limit
          @Offset = offset
        end

        def deserialize(params)
          @Type = params['Type']
          @Limit = params['Limit']
          @Offset = params['Offset']
        end
      end

      # DescribeWarningHostConfig返回参数结构体
      class DescribeWarningHostConfigResponse < TencentCloud::Common::AbstractModel
        # @param HostRange: 告警主机范围类型,0:全部主机,1:按所属项目选,2:按腾讯云标签选,3:按主机安全标签选,4:自选主机
        # @type HostRange: Integer
        # @param ItemLabels: 项目或标签的名称列表,自选主机时为空
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ItemLabels: Array
        # @param Quuids: 机器列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuids: Array
        # @param TotalCount: 机器列表总数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TotalCount: Integer
        # @param ItemLabelIds: 项目或标签的id列表,自选主机时为空
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ItemLabelIds: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :HostRange, :ItemLabels, :Quuids, :TotalCount, :ItemLabelIds, :RequestId

        def initialize(hostrange=nil, itemlabels=nil, quuids=nil, totalcount=nil, itemlabelids=nil, requestid=nil)
          @HostRange = hostrange
          @ItemLabels = itemlabels
          @Quuids = quuids
          @TotalCount = totalcount
          @ItemLabelIds = itemlabelids
          @RequestId = requestid
        end

        def deserialize(params)
          @HostRange = params['HostRange']
          @ItemLabels = params['ItemLabels']
          @Quuids = params['Quuids']
          @TotalCount = params['TotalCount']
          @ItemLabelIds = params['ItemLabelIds']
          @RequestId = params['RequestId']
        end
      end

      # DescribeWarningList请求参数结构体
      class DescribeWarningListRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeWarningList返回参数结构体
      class DescribeWarningListResponse < TencentCloud::Common::AbstractModel
        # @param WarningInfoList: 获取告警列表
        # @type WarningInfoList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :WarningInfoList, :RequestId

        def initialize(warninginfolist=nil, requestid=nil)
          @WarningInfoList = warninginfolist
          @RequestId = requestid
        end

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

      # DescribeWebHookPolicy请求参数结构体
      class DescribeWebHookPolicyRequest < TencentCloud::Common::AbstractModel
        # @param Filter: 过滤条件
        # @type Filter: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式 [asc:升序|desc:降序]
        # @type Order: String
        # @param By: 排序字段
        # @type By: String

        attr_accessor :Filter, :Offset, :Limit, :Order, :By

        def initialize(filter=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Filter = filter
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filter'].nil?
            @Filter = []
            params['Filter'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filter << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeWebHookPolicy返回参数结构体
      class DescribeWebHookPolicyResponse < TencentCloud::Common::AbstractModel
        # @param List: 策略列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type List: Array
        # @param TotalCount: 策略列表总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              webhookpolicy_tmp = WebHookPolicy.new
              webhookpolicy_tmp.deserialize(i)
              @List << webhookpolicy_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeWebHookReceiver请求参数结构体
      class DescribeWebHookReceiverRequest < TencentCloud::Common::AbstractModel
        # @param Filter: 过滤条件
        # @type Filter: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式 [asc:升序|desc:降序]
        # @type Order: String
        # @param By: 排序字段
        # @type By: String

        attr_accessor :Filter, :Offset, :Limit, :Order, :By

        def initialize(filter=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Filter = filter
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filter'].nil?
            @Filter = []
            params['Filter'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filter << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeWebHookReceiver返回参数结构体
      class DescribeWebHookReceiverResponse < TencentCloud::Common::AbstractModel
        # @param List: 告警接收人列表
        # @type List: Array
        # @param TotalCount: 个数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              webhookreceiver_tmp = WebHookReceiver.new
              webhookreceiver_tmp.deserialize(i)
              @List << webhookreceiver_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeWebHookReceiverUsage请求参数结构体
      class DescribeWebHookReceiverUsageRequest < TencentCloud::Common::AbstractModel
        # @param List: 告警接收人列表
        # @type List: Array

        attr_accessor :List

        def initialize(list=nil)
          @List = list
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              webhookreceiver_tmp = WebHookReceiver.new
              webhookreceiver_tmp.deserialize(i)
              @List << webhookreceiver_tmp
            end
          end
        end
      end

      # DescribeWebHookReceiverUsage返回参数结构体
      class DescribeWebHookReceiverUsageResponse < TencentCloud::Common::AbstractModel
        # @param List: 告警接收人的关联策略使用信息
        # @type List: Array
        # @param TotalCount: 个数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              webhookreceiverusage_tmp = WebHookReceiverUsage.new
              webhookreceiverusage_tmp.deserialize(i)
              @List << webhookreceiverusage_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeWebHookRule请求参数结构体
      class DescribeWebHookRuleRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则Id
        # @type Id: Integer

        attr_accessor :Id

        def initialize(id=nil)
          @Id = id
        end

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

      # DescribeWebHookRule返回参数结构体
      class DescribeWebHookRuleResponse < TencentCloud::Common::AbstractModel
        # @param Data: 规则内容
        # @type Data: :class:`Tencentcloud::Cwp.v20180228.models.WebHookRuleDetail`
        # @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 = WebHookRuleDetail.new
            @Data.deserialize(params['Data'])
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeWebHookRules请求参数结构体
      class DescribeWebHookRulesRequest < TencentCloud::Common::AbstractModel
        # @param Filter: 过滤条件
        # @type Filter: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Order: 排序方式 [asc:升序|desc:降序]
        # @type Order: String
        # @param By: 排序字段
        # @type By: String

        attr_accessor :Filter, :Offset, :Limit, :Order, :By

        def initialize(filter=nil, offset=nil, limit=nil, order=nil, by=nil)
          @Filter = filter
          @Offset = offset
          @Limit = limit
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filter'].nil?
            @Filter = []
            params['Filter'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filter << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # DescribeWebHookRules返回参数结构体
      class DescribeWebHookRulesResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param List: 规则内容
        # @type List: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :List, :RequestId

        def initialize(totalcount=nil, list=nil, requestid=nil)
          @TotalCount = totalcount
          @List = list
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              webhookrulesummary_tmp = WebHookRuleSummary.new
              webhookrulesummary_tmp.deserialize(i)
              @List << webhookrulesummary_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeWebPageEventList请求参数结构体
      class DescribeWebPageEventListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>EventType - String - 是否必填:否 - 事件类型</li>
        # <li>EventStatus - String - 是否必填:否 - 事件状态</li>
        # @type Filters: Array
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer
        # @param Limit: 返回数量,默认为10,最大值为100。
        # @type Limit: Integer
        # @param By: 排序方式:CreateTime 或 RestoreTime,默认为CreateTime
        # @type By: String
        # @param Order: 排序方式,0降序,1升序,默认为0
        # @type Order: Integer

        attr_accessor :Filters, :Offset, :Limit, :By, :Order

        def initialize(filters=nil, offset=nil, limit=nil, by=nil, order=nil)
          @Filters = filters
          @Offset = offset
          @Limit = limit
          @By = by
          @Order = order
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
          @By = params['By']
          @Order = params['Order']
        end
      end

      # DescribeWebPageEventList返回参数结构体
      class DescribeWebPageEventListResponse < TencentCloud::Common::AbstractModel
        # @param List: 防护事件列表信息
        # @type List: Array
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :List, :TotalCount, :RequestId

        def initialize(list=nil, totalcount=nil, requestid=nil)
          @List = list
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['List'].nil?
            @List = []
            params['List'].each do |i|
              protecteventlists_tmp = ProtectEventLists.new
              protecteventlists_tmp.deserialize(i)
              @List << protecteventlists_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeWebPageGeneralize请求参数结构体
      class DescribeWebPageGeneralizeRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeWebPageGeneralize返回参数结构体
      class DescribeWebPageGeneralizeResponse < TencentCloud::Common::AbstractModel
        # @param ProtectMonitor: 防护监测 0 未开启 1 已开启 2 异常
        # @type ProtectMonitor: Integer
        # @param ProtectDirNum: 防护目录数
        # @type ProtectDirNum: Integer
        # @param ProtectFileNum: 防护文件数
        # @type ProtectFileNum: Integer
        # @param TamperFileNum: 篡改文件数
        # @type TamperFileNum: Integer
        # @param TamperNum: 篡改数
        # @type TamperNum: Integer
        # @param ProtectToday: 今日防护数
        # @type ProtectToday: Integer
        # @param ProtectHostNum: 防护主机数
        # @type ProtectHostNum: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ProtectMonitor, :ProtectDirNum, :ProtectFileNum, :TamperFileNum, :TamperNum, :ProtectToday, :ProtectHostNum, :RequestId

        def initialize(protectmonitor=nil, protectdirnum=nil, protectfilenum=nil, tamperfilenum=nil, tampernum=nil, protecttoday=nil, protecthostnum=nil, requestid=nil)
          @ProtectMonitor = protectmonitor
          @ProtectDirNum = protectdirnum
          @ProtectFileNum = protectfilenum
          @TamperFileNum = tamperfilenum
          @TamperNum = tampernum
          @ProtectToday = protecttoday
          @ProtectHostNum = protecthostnum
          @RequestId = requestid
        end

        def deserialize(params)
          @ProtectMonitor = params['ProtectMonitor']
          @ProtectDirNum = params['ProtectDirNum']
          @ProtectFileNum = params['ProtectFileNum']
          @TamperFileNum = params['TamperFileNum']
          @TamperNum = params['TamperNum']
          @ProtectToday = params['ProtectToday']
          @ProtectHostNum = params['ProtectHostNum']
          @RequestId = params['RequestId']
        end
      end

      # DescribeWebPageProtectStat请求参数结构体
      class DescribeWebPageProtectStatRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeWebPageProtectStat返回参数结构体
      class DescribeWebPageProtectStatResponse < TencentCloud::Common::AbstractModel
        # @param FileTamperNum: 文件篡改信息
        # @type FileTamperNum: Array
        # @param ProtectFileType: 防护文件分类信息
        # @type ProtectFileType: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FileTamperNum, :ProtectFileType, :RequestId

        def initialize(filetampernum=nil, protectfiletype=nil, requestid=nil)
          @FileTamperNum = filetampernum
          @ProtectFileType = protectfiletype
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['FileTamperNum'].nil?
            @FileTamperNum = []
            params['FileTamperNum'].each do |i|
              protectstat_tmp = ProtectStat.new
              protectstat_tmp.deserialize(i)
              @FileTamperNum << protectstat_tmp
            end
          end
          unless params['ProtectFileType'].nil?
            @ProtectFileType = []
            params['ProtectFileType'].each do |i|
              protectstat_tmp = ProtectStat.new
              protectstat_tmp.deserialize(i)
              @ProtectFileType << protectstat_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeWebPageServiceInfo请求参数结构体
      class DescribeWebPageServiceInfoRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeWebPageServiceInfo返回参数结构体
      class DescribeWebPageServiceInfoResponse < TencentCloud::Common::AbstractModel
        # @param Status: 是否已购服务:true-是,false-否
        # @type Status: Boolean
        # @param UsedNum: 已使用授权数
        # @type UsedNum: Integer
        # @param ResidueNum: 剩余授权数
        # @type ResidueNum: Integer
        # @param BuyNum: 已购授权数
        # @type BuyNum: Integer
        # @param ExpireNum: 临近到期数量
        # @type ExpireNum: Integer
        # @param AllAuthorizedMachines: 所有授权机器信息
        # @type AllAuthorizedMachines: Array
        # @param ExpireAuthorizedMachines: 临近到期授权机器信息
        # @type ExpireAuthorizedMachines: Array
        # @param ExpiredNum: 已过期授权数
        # @type ExpiredNum: Integer
        # @param ProtectDirNum: 防护目录数
        # @type ProtectDirNum: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Status, :UsedNum, :ResidueNum, :BuyNum, :ExpireNum, :AllAuthorizedMachines, :ExpireAuthorizedMachines, :ExpiredNum, :ProtectDirNum, :RequestId

        def initialize(status=nil, usednum=nil, residuenum=nil, buynum=nil, expirenum=nil, allauthorizedmachines=nil, expireauthorizedmachines=nil, expirednum=nil, protectdirnum=nil, requestid=nil)
          @Status = status
          @UsedNum = usednum
          @ResidueNum = residuenum
          @BuyNum = buynum
          @ExpireNum = expirenum
          @AllAuthorizedMachines = allauthorizedmachines
          @ExpireAuthorizedMachines = expireauthorizedmachines
          @ExpiredNum = expirednum
          @ProtectDirNum = protectdirnum
          @RequestId = requestid
        end

        def deserialize(params)
          @Status = params['Status']
          @UsedNum = params['UsedNum']
          @ResidueNum = params['ResidueNum']
          @BuyNum = params['BuyNum']
          @ExpireNum = params['ExpireNum']
          unless params['AllAuthorizedMachines'].nil?
            @AllAuthorizedMachines = []
            params['AllAuthorizedMachines'].each do |i|
              protectmachineinfo_tmp = ProtectMachineInfo.new
              protectmachineinfo_tmp.deserialize(i)
              @AllAuthorizedMachines << protectmachineinfo_tmp
            end
          end
          unless params['ExpireAuthorizedMachines'].nil?
            @ExpireAuthorizedMachines = []
            params['ExpireAuthorizedMachines'].each do |i|
              protectmachine_tmp = ProtectMachine.new
              protectmachine_tmp.deserialize(i)
              @ExpireAuthorizedMachines << protectmachine_tmp
            end
          end
          @ExpiredNum = params['ExpiredNum']
          @ProtectDirNum = params['ProtectDirNum']
          @RequestId = params['RequestId']
        end
      end

      # DestroyOrder请求参数结构体
      class DestroyOrderRequest < TencentCloud::Common::AbstractModel
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param LicenseType: 授权类型 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        # @type LicenseType: Integer

        attr_accessor :ResourceId, :LicenseType

        def initialize(resourceid=nil, licensetype=nil)
          @ResourceId = resourceid
          @LicenseType = licensetype
        end

        def deserialize(params)
          @ResourceId = params['ResourceId']
          @LicenseType = params['LicenseType']
        end
      end

      # DestroyOrder返回参数结构体
      class DestroyOrderResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 批量添加白名单:重复情况重复列表实体
      class DuplicateHosts < TencentCloud::Common::AbstractModel
        # @param Quuid: Quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param Uuid: Uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param Id: Id
        # @type Id: Integer

        attr_accessor :Quuid, :Uuid, :Id

        def initialize(quuid=nil, uuid=nil, id=nil)
          @Quuid = quuid
          @Uuid = uuid
          @Id = id
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Id = params['Id']
        end
      end

      # EditBashRules请求参数结构体
      class EditBashRulesRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则ID(新增时不填)
        # @type Id: Integer
        # @param Uuids: 客户端ID数组
        # @type Uuids: Array
        # @param HostIp: 主机IP
        # @type HostIp: String
        # @param Name: 规则名称,编辑时不可修改规则名称
        # @type Name: String
        # @param Level: 危险等级(0:无,1: 高危 2:中危 3: 低危)
        # @type Level: Integer
        # @param Rule: 正则表达式 ,编辑时不可修改正则表达式,需要对内容QueryEscape后再base64
        # @type Rule: String
        # @param IsGlobal: 是否全局规则(默认否):1-全局,0-非全局
        # @type IsGlobal: Integer
        # @param White: 0=黑名单, 1=白名单
        # @type White: Integer
        # @param EventId: 事件列表点击“加入白名单”时,需要传EventId 事件的id
        # @type EventId: Integer
        # @param DealOldEvents: 是否处理旧事件为白名单 0=不处理 1=处理
        # @type DealOldEvents: Integer

        attr_accessor :Id, :Uuids, :HostIp, :Name, :Level, :Rule, :IsGlobal, :White, :EventId, :DealOldEvents

        def initialize(id=nil, uuids=nil, hostip=nil, name=nil, level=nil, rule=nil, isglobal=nil, white=nil, eventid=nil, dealoldevents=nil)
          @Id = id
          @Uuids = uuids
          @HostIp = hostip
          @Name = name
          @Level = level
          @Rule = rule
          @IsGlobal = isglobal
          @White = white
          @EventId = eventid
          @DealOldEvents = dealoldevents
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuids = params['Uuids']
          @HostIp = params['HostIp']
          @Name = params['Name']
          @Level = params['Level']
          @Rule = params['Rule']
          @IsGlobal = params['IsGlobal']
          @White = params['White']
          @EventId = params['EventId']
          @DealOldEvents = params['DealOldEvents']
        end
      end

      # EditBashRules返回参数结构体
      class EditBashRulesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # EditPrivilegeRules请求参数结构体
      class EditPrivilegeRulesRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则ID(新增时请留空)
        # @type Id: Integer
        # @param Uuids: 客户端ID数组
        # @type Uuids: Array
        # @param HostIp: 主机IP
        # @type HostIp: String
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param SMode: 是否S权限进程
        # @type SMode: Integer
        # @param IsGlobal: 是否全局规则(默认否)
        # @type IsGlobal: Integer
        # @param EventId: 事件列表和详情点击加白时关联的事件id (新增规则时请留空)
        # @type EventId: Integer

        attr_accessor :Id, :Uuids, :HostIp, :ProcessName, :SMode, :IsGlobal, :EventId

        def initialize(id=nil, uuids=nil, hostip=nil, processname=nil, smode=nil, isglobal=nil, eventid=nil)
          @Id = id
          @Uuids = uuids
          @HostIp = hostip
          @ProcessName = processname
          @SMode = smode
          @IsGlobal = isglobal
          @EventId = eventid
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuids = params['Uuids']
          @HostIp = params['HostIp']
          @ProcessName = params['ProcessName']
          @SMode = params['SMode']
          @IsGlobal = params['IsGlobal']
          @EventId = params['EventId']
        end
      end

      # EditPrivilegeRules返回参数结构体
      class EditPrivilegeRulesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # EditReverseShellRules请求参数结构体
      class EditReverseShellRulesRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则ID(新增时请留空)
        # @type Id: Integer
        # @param Uuids: 客户端ID数组
        # @type Uuids: Array
        # @param HostIp: 主机IP
        # @type HostIp: String
        # @param DestIp: 目标IP
        # @type DestIp: String
        # @param DestPort: 目标端口
        # @type DestPort: String
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param IsGlobal: 是否全局规则(默认否)
        # @type IsGlobal: Integer
        # @param EventId: 事件列表和详情点击加白时关联的事件id (新增规则时请留空)
        # @type EventId: Integer

        attr_accessor :Id, :Uuids, :HostIp, :DestIp, :DestPort, :ProcessName, :IsGlobal, :EventId

        def initialize(id=nil, uuids=nil, hostip=nil, destip=nil, destport=nil, processname=nil, isglobal=nil, eventid=nil)
          @Id = id
          @Uuids = uuids
          @HostIp = hostip
          @DestIp = destip
          @DestPort = destport
          @ProcessName = processname
          @IsGlobal = isglobal
          @EventId = eventid
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuids = params['Uuids']
          @HostIp = params['HostIp']
          @DestIp = params['DestIp']
          @DestPort = params['DestPort']
          @ProcessName = params['ProcessName']
          @IsGlobal = params['IsGlobal']
          @EventId = params['EventId']
        end
      end

      # EditReverseShellRules返回参数结构体
      class EditReverseShellRulesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # EditTags请求参数结构体
      class EditTagsRequest < TencentCloud::Common::AbstractModel
        # @param Name: 标签名
        # @type Name: String
        # @param Id: 标签ID
        # @type Id: Integer
        # @param Quuids: Quuid
        # @type Quuids: Array

        attr_accessor :Name, :Id, :Quuids

        def initialize(name=nil, id=nil, quuids=nil)
          @Name = name
          @Id = id
          @Quuids = quuids
        end

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

      # EditTags返回参数结构体
      class EditTagsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 批量导入机器信息.
      class EffectiveMachineInfo < TencentCloud::Common::AbstractModel
        # @param MachineName: 机器名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineName: String
        # @param MachinePublicIp: 机器公网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachinePublicIp: String
        # @param MachinePrivateIp: 机器内网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachinePrivateIp: String
        # @param MachineTag: 机器标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineTag: Array
        # @param Quuid: 机器Quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param Uuid: 云镜Uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param KernelVersion: 内核版本号
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type KernelVersion: String
        # @param MachineStatus: 在线状态 OFFLINE,ONLINE
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineStatus: String
        # @param LicenseOrder: 授权订单对象
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LicenseOrder: :class:`Tencentcloud::Cwp.v20180228.models.LicenseOrder`
        # @param VulNum: 漏洞数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulNum: Integer
        # @param CloudTags: 云标签信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CloudTags: Array
        # @param InstanceID: 机器instance ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceID: String

        attr_accessor :MachineName, :MachinePublicIp, :MachinePrivateIp, :MachineTag, :Quuid, :Uuid, :KernelVersion, :MachineStatus, :LicenseOrder, :VulNum, :CloudTags, :InstanceID

        def initialize(machinename=nil, machinepublicip=nil, machineprivateip=nil, machinetag=nil, quuid=nil, uuid=nil, kernelversion=nil, machinestatus=nil, licenseorder=nil, vulnum=nil, cloudtags=nil, instanceid=nil)
          @MachineName = machinename
          @MachinePublicIp = machinepublicip
          @MachinePrivateIp = machineprivateip
          @MachineTag = machinetag
          @Quuid = quuid
          @Uuid = uuid
          @KernelVersion = kernelversion
          @MachineStatus = machinestatus
          @LicenseOrder = licenseorder
          @VulNum = vulnum
          @CloudTags = cloudtags
          @InstanceID = instanceid
        end

        def deserialize(params)
          @MachineName = params['MachineName']
          @MachinePublicIp = params['MachinePublicIp']
          @MachinePrivateIp = params['MachinePrivateIp']
          unless params['MachineTag'].nil?
            @MachineTag = []
            params['MachineTag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @MachineTag << machinetag_tmp
            end
          end
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @KernelVersion = params['KernelVersion']
          @MachineStatus = params['MachineStatus']
          unless params['LicenseOrder'].nil?
            @LicenseOrder = LicenseOrder.new
            @LicenseOrder.deserialize(params['LicenseOrder'])
          end
          @VulNum = params['VulNum']
          unless params['CloudTags'].nil?
            @CloudTags = []
            params['CloudTags'].each do |i|
              tags_tmp = Tags.new
              tags_tmp.deserialize(i)
              @CloudTags << tags_tmp
            end
          end
          @InstanceID = params['InstanceID']
        end
      end

      # 专家服务-应急响应信息
      class EmergencyResponseInfo < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务id
        # @type TaskId: String
        # @param HostNum: 主机个数
        # @type HostNum: Integer
        # @param Status: 服务状态 0未启动,·响应中,2响应完成
        # @type Status: Integer
        # @param StartTime: 服务开始时间
        # @type StartTime: String
        # @param EndTime: 服务结束时间
        # @type EndTime: String
        # @param ReportPath: 报告下载地址
        # @type ReportPath: String

        attr_accessor :TaskId, :HostNum, :Status, :StartTime, :EndTime, :ReportPath

        def initialize(taskid=nil, hostnum=nil, status=nil, starttime=nil, endtime=nil, reportpath=nil)
          @TaskId = taskid
          @HostNum = hostnum
          @Status = status
          @StartTime = starttime
          @EndTime = endtime
          @ReportPath = reportpath
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @HostNum = params['HostNum']
          @Status = params['Status']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @ReportPath = params['ReportPath']
        end
      end

      # 应急漏洞信息
      class EmergencyVul < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param Level: 漏洞级别
        # @type Level: Integer
        # @param VulName: 漏洞名称
        # @type VulName: String
        # @param PublishDate: 发布日期
        # @type PublishDate: String
        # @param Category: 漏洞分类
        # @type Category: Integer
        # @param Status: 漏洞状态 0未检测 1有风险 ,2无风险 ,3 检查中展示progress
        # @type Status: Integer
        # @param LastScanTime: 最后扫描时间
        # @type LastScanTime: String
        # @param Progress: 扫描进度
        # @type Progress: Integer
        # @param CveId: cve编号
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CveId: String
        # @param CvssScore: CVSS评分
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CvssScore: Float
        # @param Labels: 漏洞标签 多个逗号分割
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Labels: String
        # @param HostCount: 影响机器数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostCount: Integer
        # @param IsSupportDefense: 是否支持防御, 0:不支持 1:支持
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsSupportDefense: Integer
        # @param DefenseAttackCount: 已防御的攻击次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DefenseAttackCount: Integer
        # @param Method: 检测规则 0 - 版本比对, 1 - POC验证
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Method: Integer
        # @param AttackLevel: 攻击热度级别
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AttackLevel: Integer
        # @param DefenseState: 是否有漏洞主机开启漏洞防御
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DefenseState: Boolean

        attr_accessor :VulId, :Level, :VulName, :PublishDate, :Category, :Status, :LastScanTime, :Progress, :CveId, :CvssScore, :Labels, :HostCount, :IsSupportDefense, :DefenseAttackCount, :Method, :AttackLevel, :DefenseState

        def initialize(vulid=nil, level=nil, vulname=nil, publishdate=nil, category=nil, status=nil, lastscantime=nil, progress=nil, cveid=nil, cvssscore=nil, labels=nil, hostcount=nil, issupportdefense=nil, defenseattackcount=nil, method=nil, attacklevel=nil, defensestate=nil)
          @VulId = vulid
          @Level = level
          @VulName = vulname
          @PublishDate = publishdate
          @Category = category
          @Status = status
          @LastScanTime = lastscantime
          @Progress = progress
          @CveId = cveid
          @CvssScore = cvssscore
          @Labels = labels
          @HostCount = hostcount
          @IsSupportDefense = issupportdefense
          @DefenseAttackCount = defenseattackcount
          @Method = method
          @AttackLevel = attacklevel
          @DefenseState = defensestate
        end

        def deserialize(params)
          @VulId = params['VulId']
          @Level = params['Level']
          @VulName = params['VulName']
          @PublishDate = params['PublishDate']
          @Category = params['Category']
          @Status = params['Status']
          @LastScanTime = params['LastScanTime']
          @Progress = params['Progress']
          @CveId = params['CveId']
          @CvssScore = params['CvssScore']
          @Labels = params['Labels']
          @HostCount = params['HostCount']
          @IsSupportDefense = params['IsSupportDefense']
          @DefenseAttackCount = params['DefenseAttackCount']
          @Method = params['Method']
          @AttackLevel = params['AttackLevel']
          @DefenseState = params['DefenseState']
        end
      end

      # 未处理的安全事件统计信息
      class EventStat < TencentCloud::Common::AbstractModel
        # @param EventsNum: 事件数
        # @type EventsNum: Integer
        # @param MachineAffectNum: 受影响的主机数
        # @type MachineAffectNum: Integer

        attr_accessor :EventsNum, :MachineAffectNum

        def initialize(eventsnum=nil, machineaffectnum=nil)
          @EventsNum = eventsnum
          @MachineAffectNum = machineaffectnum
        end

        def deserialize(params)
          @EventsNum = params['EventsNum']
          @MachineAffectNum = params['MachineAffectNum']
        end
      end

      # 专家服务订单信息
      class ExpertServiceOrderInfo < TencentCloud::Common::AbstractModel
        # @param OrderId: 订单id
        # @type OrderId: Integer
        # @param InquireType: 订单类型 1应急 2 旗舰重保 3 安全管家
        # @type InquireType: Integer
        # @param InquireNum: 服务数量
        # @type InquireNum: Integer
        # @param BeginTime: 服务开始时间
        # @type BeginTime: String
        # @param EndTime: 服务结束时间
        # @type EndTime: String
        # @param ServiceTime: 服务时长几个月
        # @type ServiceTime: Integer
        # @param Status: 订单状态 0 未启动 1 服务中 2已过期 3完成,4退费销毁
        # @type Status: Integer

        attr_accessor :OrderId, :InquireType, :InquireNum, :BeginTime, :EndTime, :ServiceTime, :Status

        def initialize(orderid=nil, inquiretype=nil, inquirenum=nil, begintime=nil, endtime=nil, servicetime=nil, status=nil)
          @OrderId = orderid
          @InquireType = inquiretype
          @InquireNum = inquirenum
          @BeginTime = begintime
          @EndTime = endtime
          @ServiceTime = servicetime
          @Status = status
        end

        def deserialize(params)
          @OrderId = params['OrderId']
          @InquireType = params['InquireType']
          @InquireNum = params['InquireNum']
          @BeginTime = params['BeginTime']
          @EndTime = params['EndTime']
          @ServiceTime = params['ServiceTime']
          @Status = params['Status']
        end
      end

      # ExportAssetAppList请求参数结构体
      class ExportAssetAppListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>AppName- string - 是否必填:否 - 应用名搜索</li>
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>Type - int - 是否必填:否 - 类型	: 仅linux
        # 0: 全部
        # 1: 运维
        # 2 : 数据库
        # 3 : 安全
        # 4 : 可疑应用
        # 5 : 系统架构
        # 6 : 系统应用
        # 7 : WEB服务
        # 99:其他</li>
        # <li>OsType - uint64 - 是否必填:否 - windows/linux</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime|ProcessCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetAppList返回参数结构体
      class ExportAssetAppListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetCoreModuleList请求参数结构体
      class ExportAssetCoreModuleListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name- string - 是否必填:否 - 包名</li>
        # <li>User- string - 是否必填:否 - 用户名</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序依据[FirstTime|Size|ProcessCount|ModuleCount]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetCoreModuleList返回参数结构体
      class ExportAssetCoreModuleListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetDatabaseList请求参数结构体
      class ExportAssetDatabaseListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>User- string - 是否必填:否 - 运行用户</li>
        # <li>Ip - String - 是否必填:否 - 绑定IP</li>
        # <li>Port - Int - 是否必填:否 - 端口</li>
        # <li>Name - Int - 是否必填:否 - 数据库名称
        # 0:全部
        # 1:MySQL
        # 2:Redis
        # 3:Oracle
        # 4:MongoDB
        # 5:MemCache
        # 6:PostgreSQL
        # 7:HBase
        # 8:DB2
        # 9:Sybase
        # 10:TiDB</li>
        # <li>Proto - String - 是否必填:否 - 协议:1:TCP, 2:UDP, 3:未知</li>
        # <li>OsType - String - 是否必填:否 - 操作系统: linux/windows</li>
        # @type Filters: Array
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Filters, :Quuid, :Order, :By

        def initialize(filters=nil, quuid=nil, order=nil, by=nil)
          @Filters = filters
          @Quuid = quuid
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Quuid = params['Quuid']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetDatabaseList返回参数结构体
      class ExportAssetDatabaseListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetEnvList请求参数结构体
      class ExportAssetEnvListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name- string - 是否必填:否 - 环境变量名</li>
        # <li>Type- int - 是否必填:否 - 类型:0用户变量,1系统变量</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetEnvList返回参数结构体
      class ExportAssetEnvListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetInitServiceList请求参数结构体
      class ExportAssetInitServiceListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name- string - 是否必填:否 - 包名</li>
        # <li>User- string - 是否必填:否 - 用户</li>
        # <li>Status- string - 是否必填:否 - 默认启用状态:0未启用, 1启用 仅linux</li>
        # <li>Type- string - 是否必填:否 - 类型:类型 仅windows:
        # 1:编码器
        # 2:IE插件
        # 3:网络提供者
        # 4:镜像劫持
        # 5:LSA提供者
        # 6:KnownDLLs
        # 7:启动执行
        # 8:WMI
        # 9:计划任务
        # 10:Winsock提供者
        # 11:打印监控器
        # 12:资源管理器
        # 13:驱动服务
        # 14:登录</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetInitServiceList返回参数结构体
      class ExportAssetInitServiceListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetJarList请求参数结构体
      class ExportAssetJarListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Name- string - 是否必填:否 - 包名</li>
        # <li>Type- uint - 是否必填:否 - 类型
        # 1: 应用程序
        # 2 : 系统类库
        # 3 : Web服务自带库
        # 4 : 其他依赖包</li>
        # <li>Status- string - 是否必填:否 - 是否可执行:0否,1是</li>
        # @type Filters: Array
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Filters, :Uuid, :Quuid, :Order, :By

        def initialize(filters=nil, uuid=nil, quuid=nil, order=nil, by=nil)
          @Filters = filters
          @Uuid = uuid
          @Quuid = quuid
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetJarList返回参数结构体
      class ExportAssetJarListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetMachineDetail请求参数结构体
      class ExportAssetMachineDetailRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Uuid: 服务器Uuid
        # @type Uuid: String

        attr_accessor :Quuid, :Uuid

        def initialize(quuid=nil, uuid=nil)
          @Quuid = quuid
          @Uuid = uuid
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
        end
      end

      # ExportAssetMachineDetail返回参数结构体
      class ExportAssetMachineDetailResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 下载地址
        # @type DownloadUrl: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :RequestId

        def initialize(downloadurl=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetMachineList请求参数结构体
      class ExportAssetMachineListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>IP - String - 是否必填:否 - 主机ip</li>
        # <li>MachineName - String - 是否必填:否 - 主机名称</li>
        # <li>InstanceID - string - 是否必填:否 - 实例ID</li>
        # <li>OsType - String - 是否必填:否 - windows或linux</li>
        # <li>CpuLoad - Int - 是否必填:否 -
        # 0: 0%或未知  1: 0%~20%
        # 2: 20%~50%  3: 50%~80%
        # 4: 80%~100%</li>
        # <li>DiskLoad - Int - 是否必填:否 -
        # 0: 0%或未知  1: 0%~20%
        # 2: 20%~50%  3: 50%~80%
        # 4: 80%~100%</li>
        # <li>MemLoad - Int - 是否必填:否 -
        # 0: 0%或未知  1: 0%~20%
        # 2: 20%~50%  3: 50%~80%
        # 4: 80%~100%</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序[FirstTime|PartitionCount]
        # @type By: String

        attr_accessor :Filters, :Order, :By

        def initialize(filters=nil, order=nil, by=nil)
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetMachineList返回参数结构体
      class ExportAssetMachineListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetPlanTaskList请求参数结构体
      class ExportAssetPlanTaskListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Quuid: 服务器Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>User- string - 是否必填:否 - 用户</li>
        # <li>Status- int - 是否必填:否 - 默认启用状态:0未启用, 1启用 </li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetPlanTaskList返回参数结构体
      class ExportAssetPlanTaskListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetPortInfoList请求参数结构体
      class ExportAssetPortInfoListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Port - uint64 - 是否必填:否 - 端口</li>
        # <li>Ip - String - 是否必填:否 - 绑定IP</li>
        # <li>ProcessName - String - 是否必填:否 - 监听进程</li>
        # <li>Pid - uint64 - 是否必填:否 - PID</li>
        # <li>User - String - 是否必填:否 - 运行用户</li>
        # <li>Group - String - 是否必填:否 - 所属用户组</li>
        # <li>Ppid - uint64 - 是否必填:否 - PPID</li>
        # <li>Proto - string - 是否必填:否 - tcp/udp或“”(空字符串筛选未知状态)</li>
        # <li>OsType - uint64 - 是否必填:否 - windows/linux</li>
        # <li>RunTimeStart - String - 是否必填:否 - 运行开始时间</li>
        # <li>RunTimeEnd - String - 是否必填:否 - 运行结束时间</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime|StartTime]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetPortInfoList返回参数结构体
      class ExportAssetPortInfoListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetProcessInfoList请求参数结构体
      class ExportAssetProcessInfoListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name - String - 是否必填:否 - 进程名</li>
        # <li>User - String - 是否必填:否 - 进程用户</li>
        # <li>Group - String - 是否必填:否 - 进程用户组</li>
        # <li>Pid - uint64 - 是否必填:否 - 进程ID</li>
        # <li>Ppid - uint64 - 是否必填:否 - 父进程ID</li>
        # <li>OsType - uint64 - 是否必填:否 - windows/linux</li>
        # <li>Status - string - 是否必填:否 - 进程状态:
        # 0:全部
        # 1:R 可执行
        # 2:S 可中断
        # 3:不可中断</li>
        # <li>RunTimeStart - String - 是否必填:否 - 运行开始时间</li>
        # <li>RunTimeEnd - String - 是否必填:否 - 运行结束时间</li>
        # <li>InstallByPackage - uint64 - 是否必填:否 - 是否包安装:0否,1是</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式:[FirstTime|StartTime]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetProcessInfoList返回参数结构体
      class ExportAssetProcessInfoListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetRecentMachineInfo请求参数结构体
      class ExportAssetRecentMachineInfoRequest < TencentCloud::Common::AbstractModel
        # @param BeginDate: 开始时间。
        # @type BeginDate: String
        # @param EndDate: 结束时间。
        # @type EndDate: String

        attr_accessor :BeginDate, :EndDate

        def initialize(begindate=nil, enddate=nil)
          @BeginDate = begindate
          @EndDate = enddate
        end

        def deserialize(params)
          @BeginDate = params['BeginDate']
          @EndDate = params['EndDate']
        end
      end

      # ExportAssetRecentMachineInfo返回参数结构体
      class ExportAssetRecentMachineInfoResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 下载地址
        # @type DownloadUrl: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :RequestId

        def initialize(downloadurl=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetSystemPackageList请求参数结构体
      class ExportAssetSystemPackageListRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name - String - 是否必填:否 - 包 名</li>
        # <li>StartTime - String - 是否必填:否 - 安装开始时间</li>
        # <li>EndTime - String - 是否必填:否 - 安装开始时间</li>
        # <li>Type - int - 是否必填:否 - 安装包类型:
        # 1:rpm
        # 2:dpkg
        # 3:java
        # 4:system</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 排序方式可选:[FistTime|InstallTime:安装时间]
        # @type By: String

        attr_accessor :Uuid, :Quuid, :Filters, :Order, :By

        def initialize(uuid=nil, quuid=nil, filters=nil, order=nil, by=nil)
          @Uuid = uuid
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetSystemPackageList返回参数结构体
      class ExportAssetSystemPackageListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetUserList请求参数结构体
      class ExportAssetUserListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name - String - 是否必填:否 - 账户名</li>
        # <li>Uid - uint64 - 是否必填:否 - Uid</li>
        # <li>Guid - uint64 - 是否必填:否 - Guid</li>
        # <li>LoginTimeStart - String - 是否必填:否 - 开始时间,如:2021-01-11</li>
        # <li>LoginTimeEnd - String - 是否必填:否 - 结束时间,如:2021-01-11</li>
        # <li>LoginType - uint64 - 是否必填:否 - 0-不可登录;1-只允许key登录;2只允许密码登录;3-允许key和密码 仅linux</li>
        # <li>OsType - String - 是否必填:否 - windows或linux</li>
        # <li>Status - uint64 - 是否必填:否 - 账号状态:0-禁用;1-启用</li>
        # <li>Type - uint64 - 是否必填:否 - 账号类型:0访客用户,1标准用户,2管理员用户 仅windows</li>
        # <li>IsDomain - uint64 - 是否必填:否 - 是否域账号:0 不是,1是 仅windows
        # <li>IsRoot - uint64 - 是否必填:否 - 是否Root权限:0 不是,1是 仅linux
        # <li>IsSudo - uint64 - 是否必填:否 - 是否Sudo权限:0 不是,1是 仅linux</li>
        # <li>IsSshLogin - uint64 - 是否必填:否 - 是否ssh登录:0 不是,1是 仅linux</li>
        # <li>ShellLoginStatus - uint64 - 是否必填:否 - 是否shell登录性,0不是;1是 仅linux</li>
        # <li>PasswordStatus - uint64 - 是否必填:否 - 密码状态:1正常 2即将过期 3已过期 4已锁定 仅linux</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|LoginTime|ChangePasswordTime|PasswordDuaTime]
        # PasswordLockDays
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetUserList返回参数结构体
      class ExportAssetUserListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetWebAppList请求参数结构体
      class ExportAssetWebAppListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name - String - 是否必填:否 - 应用名</li>
        # <li>Domain - String - 是否必填:否 - 站点域名</li>
        # <li>Type - int - 是否必填:否 - 服务类型:
        # 0:全部
        # 1:Tomcat
        # 2:Apache
        # 3:Nginx
        # 4:WebLogic
        # 5:Websphere
        # 6:JBoss
        # 7:Jetty
        # 8:IHS
        # 9:Tengine</li>
        # <li>OsType - String - 是否必填:否 - windows/linux</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|PluginCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetWebAppList返回参数结构体
      class ExportAssetWebAppListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetWebFrameList请求参数结构体
      class ExportAssetWebFrameListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name - String - 是否必填:否 - 框架名</li>
        # <li>Lang - String - 是否必填:否 - 框架语言:java/python</li>
        # <li>Type - String - 是否必填:否 - 服务类型:
        # 0:全部
        # 1:Tomcat
        # 2:Apache
        # 3:Nginx
        # 4:WebLogic
        # 5:Websphere
        # 6:JBoss
        # 7:WildFly
        # 8:Jetty
        # 9:IHS
        # 10:Tengine</li>
        # <li>OsType - String - 是否必填:否 - windows/linux</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|JarCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetWebFrameList返回参数结构体
      class ExportAssetWebFrameListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetWebLocationList请求参数结构体
      class ExportAssetWebLocationListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Name - String - 是否必填:否 - 域名</li>
        # <li>User - String - 是否必填:否 - 运行用户</li>
        # <li>Port - uint64 - 是否必填:否 - 站点端口</li>
        # <li>Proto - uint64 - 是否必填:否 - 站点协议:1:HTTP,2:HTTPS</li>
        # <li>ServiceType - uint64 - 是否必填:否 - 服务类型:
        # 1:Tomcat
        # 2:Apache
        # 3:Nginx
        # 4:WebLogic
        # 5:Websphere
        # 6:JBoss
        # 7:WildFly
        # 8:Jetty
        # 9:IHS
        # 10:Tengine</li>
        # <li>OsType - String - 是否必填:否 - windows/linux</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|PathCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetWebLocationList返回参数结构体
      class ExportAssetWebLocationListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAssetWebServiceInfoList请求参数结构体
      class ExportAssetWebServiceInfoListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 查询指定Quuid主机的信息
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>User- string - 是否必填:否 - 运行用户</li>
        # <li>Name- string - 是否必填:否 - Web服务名:
        # 1:Tomcat
        # 2:Apache
        # 3:Nginx
        # 4:WebLogic
        # 5:Websphere
        # 6:JBoss
        # 7:WildFly
        # 8:Jetty
        # 9:IHS
        # 10:Tengine</li>
        # <li>OsType- string - 是否必填:否 - Windows/linux</li>
        # @type Filters: Array
        # @param Order: 排序方式,asc升序 或 desc降序
        # @type Order: String
        # @param By: 可选排序:[FirstTime|ProcessCount]
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportAssetWebServiceInfoList返回参数结构体
      class ExportAssetWebServiceInfoListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAttackEvents请求参数结构体
      class ExportAttackEventsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤参数。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>FilePath - String - 是否必填:否 - 路径筛选</li>
        # <li>VirusName - String - 是否必填:否 - 描述筛选</li>
        # <li>CreateBeginTime - String - 是否必填:否 - 创建时间筛选-开始时间</li>
        # <li>CreateEndTime - String - 是否必填:否 - 创建时间筛选-结束时间</li>
        # <li>Status - String - 是否必填:否 - 状态筛选</li>
        # @type Filters: Array
        # @param By: 排序值 CreateTime
        # @type By: String
        # @param Order: 排序 方式 ,ASC,DESC
        # @type Order: String

        attr_accessor :Filters, :By, :Order

        def initialize(filters=nil, by=nil, order=nil)
          @Filters = filters
          @By = by
          @Order = order
        end

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

      # ExportAttackEvents返回参数结构体
      class ExportAttackEventsResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportAttackLogs请求参数结构体
      class ExportAttackLogsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>HttpMethod - String - 是否必填:否 - 攻击方法(POST|GET)</li>
        # <li>DateRange - String - 是否必填:否 - 时间范围(存储最近3个月的数据),如最近一个月["2019-11-17", "2019-12-17"]</li>
        # <li>VulType - String 威胁类型 - 是否必填: 否</li>
        # <li>SrcIp - String 攻击源IP - 是否必填: 否</li>
        # <li>DstIp - String 攻击目标IP - 是否必填: 否</li>
        # <li>SrcPort - String 攻击源端口 - 是否必填: 否</li>
        # <li>DstPort - String 攻击目标端口 - 是否必填: 否</li>
        # @type Filters: Array
        # @param Uuid: 主机安全客户端ID
        # @type Uuid: String
        # @param Quuid: 云主机机器ID
        # @type Quuid: String

        attr_accessor :Filters, :Uuid, :Quuid

        def initialize(filters=nil, uuid=nil, quuid=nil)
          @Filters = filters
          @Uuid = uuid
          @Quuid = quuid
        end

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

      # ExportAttackLogs返回参数结构体
      class ExportAttackLogsResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportBaselineEffectHostList请求参数结构体
      class ExportBaselineEffectHostListRequest < TencentCloud::Common::AbstractModel
        # @param BaselineId: 基线id
        # @type BaselineId: Integer
        # @param Filters: 筛选条件
        # <li>AliasName- String- 主机别名</li>
        # @type Filters: Array
        # @param StrategyId: 策略id
        # @type StrategyId: Integer
        # @param UuidList: 主机uuid数组
        # @type UuidList: Array
        # @param BaselineName: 基线名称
        # @type BaselineName: String

        attr_accessor :BaselineId, :Filters, :StrategyId, :UuidList, :BaselineName

        def initialize(baselineid=nil, filters=nil, strategyid=nil, uuidlist=nil, baselinename=nil)
          @BaselineId = baselineid
          @Filters = filters
          @StrategyId = strategyid
          @UuidList = uuidlist
          @BaselineName = baselinename
        end

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

      # ExportBaselineEffectHostList返回参数结构体
      class ExportBaselineEffectHostListResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportBaselineFixList请求参数结构体
      class ExportBaselineFixListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>ItemName - String - 是否必填:否 - 项名称</li>
        # @type Filters: Array
        # @param ExportAll: 0:过滤的结果导出;1:全部导出
        # @type ExportAll: Integer

        attr_accessor :Filters, :ExportAll

        def initialize(filters=nil, exportall=nil)
          @Filters = filters
          @ExportAll = exportall
        end

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

      # ExportBaselineFixList返回参数结构体
      class ExportBaselineFixListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ExportBaselineHostDetectList请求参数结构体
      class ExportBaselineHostDetectListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>HostTag - string - 是否必填:否 - 主机标签</i>
        # <li>ItemId - int64 - 是否必填:否 - 项Id</i>
        # <li>RuleId - int64 - 是否必填:否 - 规则Id</li>
        # <li>IsPassed - int - 是否必填:否 - 是否通过</li>
        # <li>RiskTier - int - 是否必填:否 - 风险等级</li>
        # @type Filters: Array
        # @param ExportAll: 0:过滤的结果导出;1:全部导出
        # @type ExportAll: Integer

        attr_accessor :Filters, :ExportAll

        def initialize(filters=nil, exportall=nil)
          @Filters = filters
          @ExportAll = exportall
        end

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

      # ExportBaselineHostDetectList返回参数结构体
      class ExportBaselineHostDetectListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ExportBaselineItemDetectList请求参数结构体
      class ExportBaselineItemDetectListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>HostId - string - 是否必填:否 - 主机Id</i>
        # <li>RuleId - int64 - 是否必填:否 - 规则Id</i>
        # <li>IsPassed - int - 是否必填:否 - 是否通过</li>
        # <li>RiskTier - int - 是否必填:否 - 风险等级</li>
        # @type Filters: Array
        # @param ExportAll: 0:过滤的结果导出;1:全部导出
        # @type ExportAll: Integer

        attr_accessor :Filters, :ExportAll

        def initialize(filters=nil, exportall=nil)
          @Filters = filters
          @ExportAll = exportall
        end

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

      # ExportBaselineItemDetectList返回参数结构体
      class ExportBaselineItemDetectListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ExportBaselineItemList请求参数结构体
      class ExportBaselineItemListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>PolicyId - int64 - 是否必填:否 - 策略Id</li>
        # <li>RuleId - int64 - 是否必填:否 - 规则Id</li>
        # <li>HostId - string - 是否必填:否 - 主机Id</li>
        # <li>HostName - string - 是否必填:否 - 主机名</li>
        # <li>HostIp - string - 是否必填:否 - 主机IP</li>
        # <li>ItemId - String - 是否必填:否 - 检测项Id</li>
        # <li>ItemName - String - 是否必填:否 - 项名称</li>
        # <li>DetectStatus - int - 是否必填:否 - 检测状态[0:未通过|3:通过|5:检测中]</li>
        # <li>Level - int - 是否必填:否 - 风险等级</li>
        # <li>StartTime - string - 是否必填:否 - 开时时间</li>
        # <li>EndTime - string - 是否必填:否 - 结束时间</li>
        # @type Filters: Array
        # @param ExportAll: 0:过滤的结果导出;1:全部导出
        # @type ExportAll: Integer

        attr_accessor :Filters, :ExportAll

        def initialize(filters=nil, exportall=nil)
          @Filters = filters
          @ExportAll = exportall
        end

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

      # ExportBaselineItemList返回参数结构体
      class ExportBaselineItemListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ExportBaselineList请求参数结构体
      class ExportBaselineListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:
        # <li>StrategyId- Uint64 - 基线策略id</li>
        # <li>Status - Uint64 - 事件状态:0-未通过,1-忽略,3-通过,5-检测中</li>
        # <li>BaselineName  - String - 基线名称</li>
        # <li>AliasName- String - 服务器名称/服务器ip</li>
        # <li>Uuid- String - 主机uuid</li>
        # @type Filters: Array
        # @param IfDetail: 已废弃
        # @type IfDetail: Integer

        attr_accessor :Filters, :IfDetail

        def initialize(filters=nil, ifdetail=nil)
          @Filters = filters
          @IfDetail = ifdetail
        end

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

      # ExportBaselineList返回参数结构体
      class ExportBaselineListResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 导出文件下载地址(已弃用)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportBaselineRuleDetectList请求参数结构体
      class ExportBaselineRuleDetectListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>RuleName - string - 是否必填:否 - 规则名称</i>
        # <li>IsPassed - int - 是否必填:否 - 是否通过</li>
        # <li>RiskTier - int - 是否必填:否 - 风险等级</li>
        # @type Filters: Array
        # @param ExportAll: 0:过滤的结果导出;1:全部导出
        # @type ExportAll: Integer

        attr_accessor :Filters, :ExportAll

        def initialize(filters=nil, exportall=nil)
          @Filters = filters
          @ExportAll = exportall
        end

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

      # ExportBaselineRuleDetectList返回参数结构体
      class ExportBaselineRuleDetectListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ExportBaselineWeakPasswordList请求参数结构体
      class ExportBaselineWeakPasswordListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>WeakPassword - string - 是否必填:否 - 弱口令</li>
        # @type Filters: Array
        # @param ExportAll: 0:过滤的结果导出;1:全部导出
        # @type ExportAll: Integer

        attr_accessor :Filters, :ExportAll

        def initialize(filters=nil, exportall=nil)
          @Filters = filters
          @ExportAll = exportall
        end

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

      # ExportBaselineWeakPasswordList返回参数结构体
      class ExportBaselineWeakPasswordListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ExportBashEventsNew请求参数结构体
      class ExportBashEventsNewRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤参数
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

        def deserialize(params)
          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

      # ExportBashEventsNew返回参数结构体
      class ExportBashEventsNewResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportBashEvents请求参数结构体
      class ExportBashEventsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤参数
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

        def deserialize(params)
          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

      # ExportBashEvents返回参数结构体
      class ExportBashEventsResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 导出文件下载链接地址。
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportBashPolicies请求参数结构体
      class ExportBashPoliciesRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤参数
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

        def deserialize(params)
          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

      # ExportBashPolicies返回参数结构体
      class ExportBashPoliciesResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportBruteAttacks请求参数结构体
      class ExportBruteAttacksRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤参数
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

        def deserialize(params)
          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

      # ExportBruteAttacks返回参数结构体
      class ExportBruteAttacksResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportFileTamperEvents请求参数结构体
      class ExportFileTamperEventsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Status - String - 是否必填:否 - 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略</li>
        # <li>ModifyTime - String - 是否必填:否 - 最近发生时间</li>
        # <li>Uuid- String - 是否必填:否 - 主机uuid查询</li>
        # <li>RuleCategory- string - 是否必填:否 - 规则类别 0 系统规则 1 自定义规则</li>
        # @type Filters: Array
        # @param Fileds: 需要导出的字段
        # @type Fileds: Array
        # @param Fields: 需要导出的字段
        # @type Fields: String

        attr_accessor :Filters, :Fileds, :Fields
        extend Gem::Deprecate
        deprecate :Fileds, :none, 2024, 2
        deprecate :Fileds=, :none, 2024, 2

        def initialize(filters=nil, fileds=nil, fields=nil)
          @Filters = filters
          @Fileds = fileds
          @Fields = fields
        end

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

      # ExportFileTamperEvents返回参数结构体
      class ExportFileTamperEventsResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 导出任务ID 可通过ExportTasks接口下载
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportFileTamperRules请求参数结构体
      class ExportFileTamperRulesRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>RuleCategory- string- 规则类别  0=系统规则,1=用户规则</li>
        # <li>Name- String - 规则名称/li>
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

        def deserialize(params)
          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

      # ExportFileTamperRules返回参数结构体
      class ExportFileTamperRulesResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 导出任务ID 可通过ExportTasks接口下载
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportIgnoreBaselineRule请求参数结构体
      class ExportIgnoreBaselineRuleRequest < TencentCloud::Common::AbstractModel
        # @param RuleName: 检测项名称
        # @type RuleName: String

        attr_accessor :RuleName

        def initialize(rulename=nil)
          @RuleName = rulename
        end

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

      # ExportIgnoreBaselineRule返回参数结构体
      class ExportIgnoreBaselineRuleResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportIgnoreRuleEffectHostList请求参数结构体
      class ExportIgnoreRuleEffectHostListRequest < TencentCloud::Common::AbstractModel
        # @param RuleId: 检测项id
        # @type RuleId: Integer
        # @param Filters: 过滤条件。
        # <li>AliasName- String- 主机别名</li>
        # @type Filters: Array

        attr_accessor :RuleId, :Filters

        def initialize(ruleid=nil, filters=nil)
          @RuleId = ruleid
          @Filters = filters
        end

        def deserialize(params)
          @RuleId = params['RuleId']
          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

      # ExportIgnoreRuleEffectHostList返回参数结构体
      class ExportIgnoreRuleEffectHostListResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # 日志下载任务列表
      class ExportInfo < TencentCloud::Common::AbstractModel
        # @param ExportId: 日志导出任务ID
        # @type ExportId: String
        # @param Query: 日志导出查询语句
        # @type Query: String
        # @param FileName: 日志导出文件名
        # @type FileName: String
        # @param FileSize: 日志文件大小
        # @type FileSize: Integer
        # @param Order: 日志导出时间排序
        # @type Order: String
        # @param Format: 日志导出格式
        # @type Format: String
        # @param Count: 日志导出数量
        # @type Count: Integer
        # @param Status: 日志下载状态。Processing:导出正在进行中,Complete:导出完成,Failed:导出失败,Expired:日志导出已过期(三天有效期)。
        # @type Status: String
        # @param StartTime: 日志导出起始时间,uinx毫秒时间戳
        # @type StartTime: Integer
        # @param EndTime: 日志导出结束时间,uinx毫秒时间戳
        # @type EndTime: Integer
        # @param CosPath: 日志导出路径
        # @type CosPath: String
        # @param CreateTime: 日志导出创建时间
        # @type CreateTime: String

        attr_accessor :ExportId, :Query, :FileName, :FileSize, :Order, :Format, :Count, :Status, :StartTime, :EndTime, :CosPath, :CreateTime

        def initialize(exportid=nil, query=nil, filename=nil, filesize=nil, order=nil, format=nil, count=nil, status=nil, starttime=nil, endtime=nil, cospath=nil, createtime=nil)
          @ExportId = exportid
          @Query = query
          @FileName = filename
          @FileSize = filesize
          @Order = order
          @Format = format
          @Count = count
          @Status = status
          @StartTime = starttime
          @EndTime = endtime
          @CosPath = cospath
          @CreateTime = createtime
        end

        def deserialize(params)
          @ExportId = params['ExportId']
          @Query = params['Query']
          @FileName = params['FileName']
          @FileSize = params['FileSize']
          @Order = params['Order']
          @Format = params['Format']
          @Count = params['Count']
          @Status = params['Status']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @CosPath = params['CosPath']
          @CreateTime = params['CreateTime']
        end
      end

      # ExportJavaMemShellPlugins请求参数结构体
      class ExportJavaMemShellPluginsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:Keywords: ip或者主机名模糊查询, Pid精确匹配,MainClass模糊匹配
        # @type Filters: Array
        # @param Where: 导出字段
        # @type Where: Array

        attr_accessor :Filters, :Where

        def initialize(filters=nil, where=nil)
          @Filters = filters
          @Where = where
        end

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

      # ExportJavaMemShellPlugins返回参数结构体
      class ExportJavaMemShellPluginsResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportJavaMemShells请求参数结构体
      class ExportJavaMemShellsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:InstanceID、IP、

        # MachineName主机名模糊查询, Type,Status精确匹配,CreateBeginTime,CreateEndTime时间段
        # @type Filters: Array
        # @param Where: 导出字段
        # @type Where: Array

        attr_accessor :Filters, :Where

        def initialize(filters=nil, where=nil)
          @Filters = filters
          @Where = where
        end

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

      # ExportJavaMemShells返回参数结构体
      class ExportJavaMemShellsResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口 <a href="https://cloud.tencent.com/document/product/296/52508" target="_blank" >异步导出任务</a>获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportLicenseDetail请求参数结构体
      class ExportLicenseDetailRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 多个条件筛选时 LicenseStatus,DeadlineStatus,ResourceId,Keywords 取交集
        # <li> LicenseType  授权类型, 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月</li>
        # <li>ResourceId 资源ID</li>
        # @type Filters: Array
        # @param IsHistory: 是否导出全部授权详情
        # @type IsHistory: Boolean
        # @param Tags: 标签筛选,平台标签能力,这里传入 标签键,标签值作为一个对象
        # @type Tags: Array
        # @param ExportMonth: 导出月份, 该参数仅在IsHistory 时可选.
        # @type ExportMonth: String

        attr_accessor :Filters, :IsHistory, :Tags, :ExportMonth

        def initialize(filters=nil, ishistory=nil, tags=nil, exportmonth=nil)
          @Filters = filters
          @IsHistory = ishistory
          @Tags = tags
          @ExportMonth = exportmonth
        end

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

      # ExportLicenseDetail返回参数结构体
      class ExportLicenseDetailResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 下载地址,该字段废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportMaliciousRequests请求参数结构体
      class ExportMaliciousRequestsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤参数
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

        def deserialize(params)
          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

      # ExportMaliciousRequests返回参数结构体
      class ExportMaliciousRequestsResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportMalwares请求参数结构体
      class ExportMalwaresRequest < TencentCloud::Common::AbstractModel
        # @param Limit: 限制条数,默认10
        # @type Limit: Integer
        # @param Offset: 偏移量 默认0
        # @type Offset: Integer
        # @param Filters: 过滤参数。
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>FilePath - String - 是否必填:否 - 路径筛选</li>
        # <li>VirusName - String - 是否必填:否 - 描述筛选</li>
        # <li>CreateBeginTime - String - 是否必填:否 - 创建时间筛选-开始时间</li>
        # <li>CreateEndTime - String - 是否必填:否 - 创建时间筛选-结束时间</li>
        # <li>Status - String - 是否必填:否 - 状态筛选</li>
        # @type Filters: Array
        # @param By: 排序值 CreateTime
        # @type By: String
        # @param Order: 排序 方式 ,ASC,DESC
        # @type Order: String

        attr_accessor :Limit, :Offset, :Filters, :By, :Order

        def initialize(limit=nil, offset=nil, filters=nil, by=nil, order=nil)
          @Limit = limit
          @Offset = offset
          @Filters = filters
          @By = by
          @Order = order
        end

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

      # ExportMalwares返回参数结构体
      class ExportMalwaresResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportNonlocalLoginPlaces请求参数结构体
      class ExportNonlocalLoginPlacesRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>Status - int - 是否必填:否 - 状态筛选1:正常登录;2:异地登录</li>
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

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

      # ExportNonlocalLoginPlaces返回参数结构体
      class ExportNonlocalLoginPlacesResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportPrivilegeEvents请求参数结构体
      class ExportPrivilegeEventsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤参数
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

        def deserialize(params)
          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

      # ExportPrivilegeEvents返回参数结构体
      class ExportPrivilegeEventsResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportProtectDirList请求参数结构体
      class ExportProtectDirListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: DirName 网站名称
        # DirPath 网站防护目录地址
        # @type Filters: Array
        # @param Order: asc:升序/desc:降序
        # @type Order: String
        # @param By: 排序字段
        # @type By: String

        attr_accessor :Filters, :Order, :By

        def initialize(filters=nil, order=nil, by=nil)
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportProtectDirList返回参数结构体
      class ExportProtectDirListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportRansomDefenseBackupList请求参数结构体
      class ExportRansomDefenseBackupListRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Filters: 过滤条件。
        # <li>Status - Int - 是否必填:否 - 通过勒索状态查询:0未勒索,1已勒索 </li>
        # <li>CreateTimeBegin - string - 是否必填:否 - 创建时间开始 </li>
        # <li>CreateTimeEnd - string - 是否必填:否 - 创建时间结束 </li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime
        # @type By: String

        attr_accessor :Quuid, :Filters, :Order, :By

        def initialize(quuid=nil, filters=nil, order=nil, by=nil)
          @Quuid = quuid
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # ExportRansomDefenseBackupList返回参数结构体
      class ExportRansomDefenseBackupListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportRansomDefenseEventsList请求参数结构体
      class ExportRansomDefenseEventsListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>HostName- string- 主机名称</li>
        # <li>Status - Uint64 - 0待处理,1已处理,2已信任</li>
        # <li>HostIp- String - 主机ip</li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime
        # @type By: String

        attr_accessor :Filters, :Order, :By

        def initialize(filters=nil, order=nil, by=nil)
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # ExportRansomDefenseEventsList返回参数结构体
      class ExportRansomDefenseEventsListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportRansomDefenseMachineList请求参数结构体
      class ExportRansomDefenseMachineListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Ips - String - 是否必填:否 - 通过ip查询 </li>
        # <li>MachineNames - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>Names - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>Status - String - 是否必填:否 - 策略状态:0备份中,1备份成功,2备份失败 </li>
        # <li>LastBackupTimeBegin - String - 是否必填:否 - 最近一次备份时间开始</li>
        # <li>LastBackupTimeEnd - String - 是否必填:否 - 最近一次备份时间结束</li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime、MachineCount
        # @type By: String

        attr_accessor :Filters, :Order, :By

        def initialize(filters=nil, order=nil, by=nil)
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # ExportRansomDefenseMachineList返回参数结构体
      class ExportRansomDefenseMachineListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportRansomDefenseStrategyList请求参数结构体
      class ExportRansomDefenseStrategyListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Ips - String - 是否必填:否 - 通过ip查询 </li>
        # <li>MachineNames - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>Names - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>Dirs - String - 是否必填:否 - 诱饵目录 </li>
        # <li>Status - String - 是否必填:否 - 策略状态:0关闭,1开启 </li>
        # <li>BackupType - String - 是否必填:否 - 备份模式:0-按周;1-按天 </li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime、MachineCount
        # @type By: String

        attr_accessor :Filters, :Order, :By

        def initialize(filters=nil, order=nil, by=nil)
          @Filters = filters
          @Order = order
          @By = by
        end

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

      # ExportRansomDefenseStrategyList返回参数结构体
      class ExportRansomDefenseStrategyListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportRansomDefenseStrategyMachines请求参数结构体
      class ExportRansomDefenseStrategyMachinesRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>Ips - String - 是否必填:否 - 通过ip查询 </li>
        # <li>MachineNames - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>Names - String - 是否必填:否 - 通过实例名查询 </li>
        # <li>Status - String - 是否必填:否 - 策略状态:0备份中,1备份成功,2备份失败 </li>
        # <li>LastBackupTimeBegin - String - 是否必填:否 - 最近一次备份时间开始</li>
        # <li>LastBackupTimeEnd - String - 是否必填:否 - 最近一次备份时间结束</li>
        # @type Filters: Array
        # @param Order: 排序方法 ASC DESC
        # @type Order: String
        # @param By: 排序字段支持CreateTime、MachineCount
        # @type By: String
        # @param Id: 策略id
        # @type Id: Integer

        attr_accessor :Filters, :Order, :By, :Id

        def initialize(filters=nil, order=nil, by=nil, id=nil)
          @Filters = filters
          @Order = order
          @By = by
          @Id = id
        end

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

      # ExportRansomDefenseStrategyMachines返回参数结构体
      class ExportRansomDefenseStrategyMachinesResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportReverseShellEvents请求参数结构体
      class ExportReverseShellEventsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤参数
        # @type Filters: Array

        attr_accessor :Filters

        def initialize(filters=nil)
          @Filters = filters
        end

        def deserialize(params)
          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

      # ExportReverseShellEvents返回参数结构体
      class ExportReverseShellEventsResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportRiskDnsEventList请求参数结构体
      class ExportRiskDnsEventListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>IpOrName - String - 是否必填:否 - 主机Ip或别名筛选</li>
        # <li>HostId - String - 是否必填:否 - 主机Id</li>
        # <li>AgentId - String - 是否必填:否 - 客户端Id</li>
        # <li>PolicyType - String - 是否必填:否 - 策略类型,0:系统策略1:用户自定义策略</li>
        # <li>Domain - String - 是否必填:否 - 域名(先对域名做urlencode,再base64)</li>
        # <li>HandleStatus - String - 是否必填:否 - 状态筛选0:待处理;2:信任;3:不信任</li>
        # <li>BeginTime - String - 是否必填:否 - 最近访问开始时间</li>
        # <li>EndTime - String - 是否必填:否 - 最近访问结束时间</li>
        # @type Filters: Array
        # @param Order: 排序方式:[ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 排序字段:[AccessCount:请求次数|LastTime:最近请求时间]
        # @type By: String

        attr_accessor :Filters, :Order, :By

        def initialize(filters=nil, order=nil, by=nil)
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportRiskDnsEventList返回参数结构体
      class ExportRiskDnsEventListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportRiskDnsPolicyList请求参数结构体
      class ExportRiskDnsPolicyListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: <li>PolicyType - int - 是否必填:否 - 策略类型</li>
        # <li>PolicyName - string - 是否必填:否 - 策略名称</li>
        # <li>Domain - string - 是否必填:否 - 域名(先对域名做urlencode,再base64)</li>
        # <li>PolicyAction- int - 是否必填:否 - 策略动作</li>
        # <li>IsEnabled - int - 是否必填:否 - 是否生效</li>
        # @type Filters: Array
        # @param Order: 排序方式: [ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: 可选排序列: [PolicyName|HostType]
        # @type By: String

        attr_accessor :Filters, :Order, :By

        def initialize(filters=nil, order=nil, by=nil)
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportRiskDnsPolicyList返回参数结构体
      class ExportRiskDnsPolicyListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 异步下载任务ID,需要配合ExportTasks接口使用
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportRiskProcessEvents请求参数结构体
      class ExportRiskProcessEventsRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>HostId - String - 是否必填:否 - 主机ID</li>
        # <li>IpOrName - String - 是否必填:否 - 主机IP或主机名</li>
        # <li>VirusName - String - 是否必填:否 - 病毒名</li>
        # <li>ProcessId - String - 是否必填:否 - 进程ID</li>
        # <li>ProcessPath - String - 是否必填:否 - 进程路径</li>
        # <li>BeginTime - String - 是否必填:否 - 进程启动时间-开始</li>
        # <li>EndTime - String - 是否必填:否 - 进程启动时间-结束</li>
        # <li>Status - String - 是否必填:否 - 状态筛选 0待处理;1查杀中;2已查杀;3已退出;4已信任</li>
        # @type Filters: Array
        # @param Order: 排序方式:[ASC:升序|DESC:降序]
        # @type Order: String
        # @param By: [StartTime:进程启动时间|DetectTime:最后检测时间]
        # @type By: String

        attr_accessor :Filters, :Order, :By

        def initialize(filters=nil, order=nil, by=nil)
          @Filters = filters
          @Order = order
          @By = by
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @By = params['By']
        end
      end

      # ExportRiskProcessEvents返回参数结构体
      class ExportRiskProcessEventsResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportScanTaskDetails请求参数结构体
      class ExportScanTaskDetailsRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 本次检测的任务id(不同于出参的导出本次检测Excel的任务Id)
        # @type TaskId: Integer
        # @param ModuleType: 模块类型,当前提供:Malware 木马 , Vul 漏洞 , Baseline 基线
        # @type ModuleType: String
        # @param Filters: 过滤参数:ipOrAlias(服务器名/ip)
        # @type Filters: Array

        attr_accessor :TaskId, :ModuleType, :Filters

        def initialize(taskid=nil, moduletype=nil, filters=nil)
          @TaskId = taskid
          @ModuleType = moduletype
          @Filters = filters
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @ModuleType = params['ModuleType']
          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

      # ExportScanTaskDetails返回参数结构体
      class ExportScanTaskDetailsResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址(不同于入参的本次检测任务id)
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportSecurityTrends请求参数结构体
      class ExportSecurityTrendsRequest < TencentCloud::Common::AbstractModel
        # @param BeginDate: 开始时间。
        # @type BeginDate: String
        # @param EndDate: 结束时间。
        # @type EndDate: String

        attr_accessor :BeginDate, :EndDate

        def initialize(begindate=nil, enddate=nil)
          @BeginDate = begindate
          @EndDate = enddate
        end

        def deserialize(params)
          @BeginDate = params['BeginDate']
          @EndDate = params['EndDate']
        end
      end

      # ExportSecurityTrends返回参数结构体
      class ExportSecurityTrendsResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 导出文件下载链接地址。
        # @type DownloadUrl: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :RequestId

        def initialize(downloadurl=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @RequestId = params['RequestId']
        end
      end

      # ExportTasks请求参数结构体
      class ExportTasksRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID
        # @type TaskId: String

        attr_accessor :TaskId

        def initialize(taskid=nil)
          @TaskId = taskid
        end

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

      # ExportTasks返回参数结构体
      class ExportTasksResponse < TencentCloud::Common::AbstractModel
        # @param Status: PENDING:正在生成下载链接,FINISHED:下载链接已生成,ERROR:网络异常等异常情况
        # @type Status: String
        # @param DownloadUrl: 下载链接
        # @type DownloadUrl: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Status, :DownloadUrl, :RequestId

        def initialize(status=nil, downloadurl=nil, requestid=nil)
          @Status = status
          @DownloadUrl = downloadurl
          @RequestId = requestid
        end

        def deserialize(params)
          @Status = params['Status']
          @DownloadUrl = params['DownloadUrl']
          @RequestId = params['RequestId']
        end
      end

      # ExportVulDefenceEvent请求参数结构体
      class ExportVulDefenceEventRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询; Quuid,VulId,EventType,Status精确匹配,CreateBeginTime,CreateEndTime时间段查询
        # @type Filters: Array
        # @param Where: 导出字段,默认全导出
        # @type Where: Array

        attr_accessor :Filters, :Where

        def initialize(filters=nil, where=nil)
          @Filters = filters
          @Where = where
        end

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

      # ExportVulDefenceEvent返回参数结构体
      class ExportVulDefenceEventResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 导出文件Id 可通过ExportTasks接口下载
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportVulDefenceList请求参数结构体
      class ExportVulDefenceListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件:Keywords: 漏洞名称或CVE编号模糊匹配, Level精确匹配
        # @type Filters: Array
        # @param Where: 导出字段,默认全导出
        # @type Where: Array

        attr_accessor :Filters, :Where

        def initialize(filters=nil, where=nil)
          @Filters = filters
          @Where = where
        end

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

      # ExportVulDefenceList返回参数结构体
      class ExportVulDefenceListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 导出文件Id 可通过ExportTasks接口下载
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportVulDefencePluginEvent请求参数结构体
      class ExportVulDefencePluginEventRequest < TencentCloud::Common::AbstractModel
        # @param Filters: Keywords: ip或者主机名模糊匹配,Quuid,Exception、Status精确匹配
        # @type Filters: Array
        # @param Where: 导出字段,默认全导出
        # @type Where: Array

        attr_accessor :Filters, :Where

        def initialize(filters=nil, where=nil)
          @Filters = filters
          @Where = where
        end

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

      # ExportVulDefencePluginEvent返回参数结构体
      class ExportVulDefencePluginEventResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 导出文件Id 可通过ExportTasks接口下载
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportVulDetectionExcel请求参数结构体
      class ExportVulDetectionExcelRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 本次漏洞检测任务id(不同于出参的导出本次漏洞检测Excel的任务Id)
        # @type TaskId: Integer

        attr_accessor :TaskId

        def initialize(taskid=nil)
          @TaskId = taskid
        end

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

      # ExportVulDetectionExcel返回参数结构体
      class ExportVulDetectionExcelResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 该参数已废弃
        # @type DownloadUrl: String
        # @param TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址(不同于入参的本次漏洞检测任务id)
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportVulDetectionReport请求参数结构体
      class ExportVulDetectionReportRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 漏洞扫描任务id(不同于出参的导出检测报告的任务Id)
        # @type TaskId: Integer
        # @param Filters: 过滤参数
        # @type Filters: Array
        # @param Limit: 需要返回的数量,默认为10,最大值为100
        # @type Limit: Integer
        # @param Offset: 偏移量,默认为0。
        # @type Offset: Integer

        attr_accessor :TaskId, :Filters, :Limit, :Offset

        def initialize(taskid=nil, filters=nil, limit=nil, offset=nil)
          @TaskId = taskid
          @Filters = filters
          @Limit = limit
          @Offset = offset
        end

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

      # ExportVulDetectionReport返回参数结构体
      class ExportVulDetectionReportResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 导出文件下载链接地址
        # @type DownloadUrl: String
        # @param TaskId: 导出检测报告的任务Id(不同于入参的漏洞扫描任务id)
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportVulEffectHostList请求参数结构体
      class ExportVulEffectHostListRequest < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param Filters: 过滤条件。
        # <li>AliasName - String - 主机名筛选</li>
        # @type Filters: Array

        attr_accessor :VulId, :Filters

        def initialize(vulid=nil, filters=nil)
          @VulId = vulid
          @Filters = filters
        end

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

      # ExportVulEffectHostList返回参数结构体
      class ExportVulEffectHostListResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 已废弃
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DownloadUrl: String
        # @param TaskId: 导出任务Id , 可通过ExportTasks 接口下载
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportVulInfo请求参数结构体
      class ExportVulInfoRequest < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # @type VulId: Integer

        attr_accessor :VulId

        def initialize(vulid=nil)
          @VulId = vulid
        end

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

      # ExportVulInfo返回参数结构体
      class ExportVulInfoResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 导出任务Id , 可通过ExportTasks 接口下载
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportVulList请求参数结构体
      class ExportVulListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件。
        # <li>VulCategory - int - 是否必填:否 - 漏洞分类筛选1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞</li>
        # <li>IfEmergency - String - 是否必填:否 - 是否为应急漏洞,查询应急漏洞传:yes</li>
        # <li>Status - String - 是否必填:是 - 漏洞状态筛选,0: 待处理 1:忽略  3:已修复  5:检测中, 控制台仅处理0,1,3,5四种状态</li>
        # <li>Level - String - 是否必填:否 - 漏洞等级筛选 1:低 2:中 3:高 4:提示</li>
        # <li>VulName- String - 是否必填:否 - 漏洞名称搜索</li>
        # @type Filters: Array
        # @param IfDetail: 是否导出详情,1是 0不是
        # @type IfDetail: Integer

        attr_accessor :Filters, :IfDetail

        def initialize(filters=nil, ifdetail=nil)
          @Filters = filters
          @IfDetail = ifdetail
        end

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

      # ExportVulList返回参数结构体
      class ExportVulListResponse < TencentCloud::Common::AbstractModel
        # @param DownloadUrl: 导出的文件下载url(已弃用!)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DownloadUrl: String
        # @param TaskId: 导出文件Id 可通过ExportTasks接口下载
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DownloadUrl, :TaskId, :RequestId

        def initialize(downloadurl=nil, taskid=nil, requestid=nil)
          @DownloadUrl = downloadurl
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @DownloadUrl = params['DownloadUrl']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ExportWebPageEventList请求参数结构体
      class ExportWebPageEventListRequest < TencentCloud::Common::AbstractModel
        # @param Filters: 过滤条件
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>EventType - String - 是否必填:否 - 事件类型</li>
        # <li>EventStatus - String - 是否必填:否 - 事件状态</li>
        # @type Filters: Array
        # @param By: 排序方式:CreateTime 或 RestoreTime,默认为CreateTime
        # @type By: String
        # @param Order: 排序方式,0降序,1升序,默认为0
        # @type Order: Integer

        attr_accessor :Filters, :By, :Order

        def initialize(filters=nil, by=nil, order=nil)
          @Filters = filters
          @By = by
          @Order = order
        end

        def deserialize(params)
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              assetfilters_tmp = AssetFilters.new
              assetfilters_tmp.deserialize(i)
              @Filters << assetfilters_tmp
            end
          end
          @By = params['By']
          @Order = params['Order']
        end
      end

      # ExportWebPageEventList返回参数结构体
      class ExportWebPageEventListResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务id 可通过 ExportTasks接口下载
        # @type TaskId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # 快速分析统计信息
      class FieldValueRatioInfo < TencentCloud::Common::AbstractModel
        # @param Count: 个数
        # @type Count: Integer
        # @param Ratio: 比例
        # @type Ratio: Float
        # @param Value: 值
        # @type Value: String

        attr_accessor :Count, :Ratio, :Value

        def initialize(count=nil, ratio=nil, value=nil)
          @Count = count
          @Ratio = ratio
          @Value = value
        end

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

      # 核心文件监控事件
      class FileTamperEvent < TencentCloud::Common::AbstractModel
        # @param HostName: 机器名称
        # @type HostName: String
        # @param HostIp: 机器IP
        # @type HostIp: String
        # @param CreateTime: 发生时间
        # @type CreateTime: String
        # @param ModifyTime: 最近发生时间
        # @type ModifyTime: String
        # @param Id: 事件id
        # @type Id: Integer
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param Quuid: cvm id
        # @type Quuid: String
        # @param Type: 事件类型/动作  0 -- 告警
        # @type Type: Integer
        # @param ProcessExe: 进程路径
        # @type ProcessExe: String
        # @param ProcessArgv: 进程参数
        # @type ProcessArgv: String
        # @param Target: 目标文件路径
        # @type Target: String
        # @param Status: 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略 4-已手动处理
        # @type Status: Integer
        # @param EventCount: 事件产生次数
        # @type EventCount: Integer
        # @param RuleId: 规则id
        # @type RuleId: Integer
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param Pstree: 事件详情: json格式
        # @type Pstree: String
        # @param RuleCategory: 规则类型 0系统规则 1自定义规则
        # @type RuleCategory: Integer
        # @param MachineStatus: 主机在线信息 ONLINE、OFFLINE
        # @type MachineStatus: String
        # @param Description: 危害描述
        # @type Description: String
        # @param Suggestion: 修护建议
        # @type Suggestion: String
        # @param PrivateIp: 内网ip
        # @type PrivateIp: String
        # @param ExePermission: 进程权限
        # @type ExePermission: String
        # @param UserName: 用户名
        # @type UserName: String
        # @param UserGroup: 用户组
        # @type UserGroup: String
        # @param ExeMd5: 进程名
        # @type ExeMd5: String
        # @param ExeSize: 进程文件大小
        # @type ExeSize: Integer
        # @param ExeTime: 进程执行时长
        # @type ExeTime: Integer
        # @param TargetSize: 目标文件大小
        # @type TargetSize: Integer
        # @param TargetPermission: 目标文件权限
        # @type TargetPermission: String
        # @param TargetModifyTime: 目标文件更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TargetModifyTime: String
        # @param TargetCreatTime: 目标文件创建时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TargetCreatTime: String
        # @param ExePid: 进程pid
        # @type ExePid: Integer
        # @param TargetName: 文件名称
        # @type TargetName: String
        # @param Reference: 参考链接
        # @type Reference: String
        # @param Level: 风险等级 0:无, 1: 高危, 2:中危, 3: 低危
        # @type Level: Integer
        # @param ExeName: 进程名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ExeName: String
        # @param MachineExtraInfo:  主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param FileAction: 文件威胁行为
        # <li>read 读取文件</li>
        # <li>write 修改文件</li>
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FileAction: String

        attr_accessor :HostName, :HostIp, :CreateTime, :ModifyTime, :Id, :Uuid, :Quuid, :Type, :ProcessExe, :ProcessArgv, :Target, :Status, :EventCount, :RuleId, :RuleName, :Pstree, :RuleCategory, :MachineStatus, :Description, :Suggestion, :PrivateIp, :ExePermission, :UserName, :UserGroup, :ExeMd5, :ExeSize, :ExeTime, :TargetSize, :TargetPermission, :TargetModifyTime, :TargetCreatTime, :ExePid, :TargetName, :Reference, :Level, :ExeName, :MachineExtraInfo, :FileAction

        def initialize(hostname=nil, hostip=nil, createtime=nil, modifytime=nil, id=nil, uuid=nil, quuid=nil, type=nil, processexe=nil, processargv=nil, target=nil, status=nil, eventcount=nil, ruleid=nil, rulename=nil, pstree=nil, rulecategory=nil, machinestatus=nil, description=nil, suggestion=nil, privateip=nil, exepermission=nil, username=nil, usergroup=nil, exemd5=nil, exesize=nil, exetime=nil, targetsize=nil, targetpermission=nil, targetmodifytime=nil, targetcreattime=nil, exepid=nil, targetname=nil, reference=nil, level=nil, exename=nil, machineextrainfo=nil, fileaction=nil)
          @HostName = hostname
          @HostIp = hostip
          @CreateTime = createtime
          @ModifyTime = modifytime
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @Type = type
          @ProcessExe = processexe
          @ProcessArgv = processargv
          @Target = target
          @Status = status
          @EventCount = eventcount
          @RuleId = ruleid
          @RuleName = rulename
          @Pstree = pstree
          @RuleCategory = rulecategory
          @MachineStatus = machinestatus
          @Description = description
          @Suggestion = suggestion
          @PrivateIp = privateip
          @ExePermission = exepermission
          @UserName = username
          @UserGroup = usergroup
          @ExeMd5 = exemd5
          @ExeSize = exesize
          @ExeTime = exetime
          @TargetSize = targetsize
          @TargetPermission = targetpermission
          @TargetModifyTime = targetmodifytime
          @TargetCreatTime = targetcreattime
          @ExePid = exepid
          @TargetName = targetname
          @Reference = reference
          @Level = level
          @ExeName = exename
          @MachineExtraInfo = machineextrainfo
          @FileAction = fileaction
        end

        def deserialize(params)
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Type = params['Type']
          @ProcessExe = params['ProcessExe']
          @ProcessArgv = params['ProcessArgv']
          @Target = params['Target']
          @Status = params['Status']
          @EventCount = params['EventCount']
          @RuleId = params['RuleId']
          @RuleName = params['RuleName']
          @Pstree = params['Pstree']
          @RuleCategory = params['RuleCategory']
          @MachineStatus = params['MachineStatus']
          @Description = params['Description']
          @Suggestion = params['Suggestion']
          @PrivateIp = params['PrivateIp']
          @ExePermission = params['ExePermission']
          @UserName = params['UserName']
          @UserGroup = params['UserGroup']
          @ExeMd5 = params['ExeMd5']
          @ExeSize = params['ExeSize']
          @ExeTime = params['ExeTime']
          @TargetSize = params['TargetSize']
          @TargetPermission = params['TargetPermission']
          @TargetModifyTime = params['TargetModifyTime']
          @TargetCreatTime = params['TargetCreatTime']
          @ExePid = params['ExePid']
          @TargetName = params['TargetName']
          @Reference = params['Reference']
          @Level = params['Level']
          @ExeName = params['ExeName']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @FileAction = params['FileAction']
        end
      end

      # 核心文件监控规则
      class FileTamperRule < TencentCloud::Common::AbstractModel
        # @param ProcessPath: 进程路径
        # @type ProcessPath: String
        # @param Target: 被访问文件路径
        # @type Target: String
        # @param Action: 执行动作 跳过:skip,告警:alert
        # @type Action: String
        # @param FileAction: 监控行为
        # <li>read 读取文件</li>
        # <li>write 修改文件</li>
        # <li>read-write 读取修改文件</li>
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FileAction: String

        attr_accessor :ProcessPath, :Target, :Action, :FileAction

        def initialize(processpath=nil, target=nil, action=nil, fileaction=nil)
          @ProcessPath = processpath
          @Target = target
          @Action = action
          @FileAction = fileaction
        end

        def deserialize(params)
          @ProcessPath = params['ProcessPath']
          @Target = params['Target']
          @Action = params['Action']
          @FileAction = params['FileAction']
        end
      end

      # 主机关联核心文件规则数量信息
      class FileTamperRuleCount < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param Count: 关联规则的数量
        # @type Count: Integer
        # @param Name: 关联规则的名称(仅展示其中一条)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String

        attr_accessor :Uuid, :Count, :Name

        def initialize(uuid=nil, count=nil, name=nil)
          @Uuid = uuid
          @Count = count
          @Name = name
        end

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

      # 核心文件监控规则详情
      class FileTamperRuleDetail < TencentCloud::Common::AbstractModel
        # @param Name: 规则名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String
        # @param ModifyTime: 更新时间
        # @type ModifyTime: String
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param Status: 状态 0: 启用 1: 已关闭
        # @type Status: Integer
        # @param Rule: 规则
        # @type Rule: Array
        # @param Uuids: 生效主机uuid,空表示全部主机,通过参数可控制返回的条数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuids: Array
        # @param Id: 规则id
        # @type Id: Integer
        # @param IsGlobal: 是否全局规则(默认否) 0:否 ,1:是
        # @type IsGlobal: Integer
        # @param Level: 风险等级 0:无, 1: 高危, 2:中危, 3: 低危
        # @type Level: Integer
        # @param UuidTotalCount: 生效主机的总数
        # @type UuidTotalCount: Integer
        # @param AddWhiteType: 加白处理类型
        # <li>cur 仅对当前加白</li>
        # <li>all 所有符合条件加白</li>
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AddWhiteType: String

        attr_accessor :Name, :ModifyTime, :CreateTime, :Status, :Rule, :Uuids, :Id, :IsGlobal, :Level, :UuidTotalCount, :AddWhiteType

        def initialize(name=nil, modifytime=nil, createtime=nil, status=nil, rule=nil, uuids=nil, id=nil, isglobal=nil, level=nil, uuidtotalcount=nil, addwhitetype=nil)
          @Name = name
          @ModifyTime = modifytime
          @CreateTime = createtime
          @Status = status
          @Rule = rule
          @Uuids = uuids
          @Id = id
          @IsGlobal = isglobal
          @Level = level
          @UuidTotalCount = uuidtotalcount
          @AddWhiteType = addwhitetype
        end

        def deserialize(params)
          @Name = params['Name']
          @ModifyTime = params['ModifyTime']
          @CreateTime = params['CreateTime']
          @Status = params['Status']
          unless params['Rule'].nil?
            @Rule = []
            params['Rule'].each do |i|
              filetamperrule_tmp = FileTamperRule.new
              filetamperrule_tmp.deserialize(i)
              @Rule << filetamperrule_tmp
            end
          end
          @Uuids = params['Uuids']
          @Id = params['Id']
          @IsGlobal = params['IsGlobal']
          @Level = params['Level']
          @UuidTotalCount = params['UuidTotalCount']
          @AddWhiteType = params['AddWhiteType']
        end
      end

      # 核心文件监控规则列表
      class FileTamperRuleInfo < TencentCloud::Common::AbstractModel
        # @param Name: 规则名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String
        # @param RuleCategory: 规则类型 0 :系统规则  1:用户规则
        # @type RuleCategory: Integer
        # @param HostCount: 影响主机数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostCount: Integer
        # @param ModifyTime: 更新时间
        # @type ModifyTime: String
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param Status: 状态 0: 启用 1: 已关闭
        # @type Status: Integer
        # @param Id: 规则id,系统的规则时为0。
        # @type Id: Integer
        # @param IsGlobal: 是否是全局的 0:否 ,1:是
        # @type IsGlobal: Integer
        # @param Level: 风险等级 0:无, 1: 高危, 2:中危, 3: 低危
        # @type Level: Integer
        # @param WriteRuleCount: 子规则写条目数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WriteRuleCount: Integer
        # @param ReadRuleCount: 子规则读条目数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ReadRuleCount: Integer
        # @param ReadWriteRuleCount: 子规则读写条目数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ReadWriteRuleCount: Integer
        # @param FileAction: 监控行为
        # <li>read 读取文件</li>
        # <li>write 修改文件</li>
        # <li>read-write 读取修改文件</li>
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FileAction: String
        # @param AddWhiteType: 加白处理类型
        # <li>cur 仅对当前加白</li>
        # <li>all 所有符合条件加白</li>
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AddWhiteType: String

        attr_accessor :Name, :RuleCategory, :HostCount, :ModifyTime, :CreateTime, :Status, :Id, :IsGlobal, :Level, :WriteRuleCount, :ReadRuleCount, :ReadWriteRuleCount, :FileAction, :AddWhiteType

        def initialize(name=nil, rulecategory=nil, hostcount=nil, modifytime=nil, createtime=nil, status=nil, id=nil, isglobal=nil, level=nil, writerulecount=nil, readrulecount=nil, readwriterulecount=nil, fileaction=nil, addwhitetype=nil)
          @Name = name
          @RuleCategory = rulecategory
          @HostCount = hostcount
          @ModifyTime = modifytime
          @CreateTime = createtime
          @Status = status
          @Id = id
          @IsGlobal = isglobal
          @Level = level
          @WriteRuleCount = writerulecount
          @ReadRuleCount = readrulecount
          @ReadWriteRuleCount = readwriterulecount
          @FileAction = fileaction
          @AddWhiteType = addwhitetype
        end

        def deserialize(params)
          @Name = params['Name']
          @RuleCategory = params['RuleCategory']
          @HostCount = params['HostCount']
          @ModifyTime = params['ModifyTime']
          @CreateTime = params['CreateTime']
          @Status = params['Status']
          @Id = params['Id']
          @IsGlobal = params['IsGlobal']
          @Level = params['Level']
          @WriteRuleCount = params['WriteRuleCount']
          @ReadRuleCount = params['ReadRuleCount']
          @ReadWriteRuleCount = params['ReadWriteRuleCount']
          @FileAction = params['FileAction']
          @AddWhiteType = params['AddWhiteType']
        end
      end

      # 描述键值对过滤器,用于条件过滤查询。例如过滤ID、名称、状态等

      # 若存在多个Filter时,Filter间的关系为逻辑与(AND)关系。
      # 若同一个Filter存在多个Values,同一Filter下Values间的关系为逻辑或(OR)关系。

      # * 最多只能有5个Filter
      # * 同一个Filter存在多个Values,Values值数量最多不能超过5个。
      class Filter < TencentCloud::Common::AbstractModel
        # @param Name: 过滤键的名称。
        # @type Name: String
        # @param Values: 一个或者多个过滤值。
        # @type Values: Array
        # @param ExactMatch: 模糊搜索
        # @type ExactMatch: Boolean

        attr_accessor :Name, :Values, :ExactMatch

        def initialize(name=nil, values=nil, exactmatch=nil)
          @Name = name
          @Values = values
          @ExactMatch = exactmatch
        end

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

      # 描述键值对过滤器,用于条件过滤查询。例如过滤ID、名称、状态等

      # 若存在多个Filter时,Filter间的关系为逻辑与(AND)关系。
      # 若同一个Filter存在多个Values,同一Filter下Values间的关系为逻辑或(OR)关系。
      class Filters < TencentCloud::Common::AbstractModel
        # @param Name: 过滤键的名称。
        # @type Name: String
        # @param Values: 一个或者多个过滤值。
        # @type Values: Array
        # @param ExactMatch: 是否模糊匹配,前端框架会带上,可以不管
        # @type ExactMatch: Boolean

        attr_accessor :Name, :Values, :ExactMatch

        def initialize(name=nil, values=nil, exactmatch=nil)
          @Name = name
          @Values = values
          @ExactMatch = exactmatch
        end

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

      # FixBaselineDetect请求参数结构体
      class FixBaselineDetectRequest < TencentCloud::Common::AbstractModel
        # @param HostId: 主机Id
        # @type HostId: String
        # @param ItemId: 项Id
        # @type ItemId: Integer
        # @param Data: 修复内容
        # @type Data: Array

        attr_accessor :HostId, :ItemId, :Data

        def initialize(hostid=nil, itemid=nil, data=nil)
          @HostId = hostid
          @ItemId = itemid
          @Data = data
        end

        def deserialize(params)
          @HostId = params['HostId']
          @ItemId = params['ItemId']
          @Data = params['Data']
        end
      end

      # FixBaselineDetect返回参数结构体
      class FixBaselineDetectResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 全文索引的相关配置
      class FullTextInfo < TencentCloud::Common::AbstractModel
        # @param CaseSensitive: 是否大小写敏感
        # @type CaseSensitive: Boolean
        # @param Tokenizer: 分词符
        # @type Tokenizer: String
        # @param ContainZH: 是否包含中文
        # @type ContainZH: Boolean

        attr_accessor :CaseSensitive, :Tokenizer, :ContainZH

        def initialize(casesensitive=nil, tokenizer=nil, containzh=nil)
          @CaseSensitive = casesensitive
          @Tokenizer = tokenizer
          @ContainZH = containzh
        end

        def deserialize(params)
          @CaseSensitive = params['CaseSensitive']
          @Tokenizer = params['Tokenizer']
          @ContainZH = params['ContainZH']
        end
      end

      # GetLocalStorageItem请求参数结构体
      class GetLocalStorageItemRequest < TencentCloud::Common::AbstractModel
        # @param Key: 键
        # @type Key: String

        attr_accessor :Key

        def initialize(key=nil)
          @Key = key
        end

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

      # GetLocalStorageItem返回参数结构体
      class GetLocalStorageItemResponse < TencentCloud::Common::AbstractModel
        # @param Value: 值
        # @type Value: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Value, :RequestId

        def initialize(value=nil, requestid=nil)
          @Value = value
          @RequestId = requestid
        end

        def deserialize(params)
          @Value = params['Value']
          @RequestId = params['RequestId']
        end
      end

      # 账号变更历史数据。
      class HistoryAccount < TencentCloud::Common::AbstractModel
        # @param Id: 唯一ID。
        # @type Id: Integer
        # @param Uuid: 主机安全客户端唯一Uuid。
        # @type Uuid: String
        # @param MachineIp: 主机内网IP。
        # @type MachineIp: String
        # @param MachineName: 主机名。
        # @type MachineName: String
        # @param Username: 帐号名。
        # @type Username: String
        # @param ModifyType: 帐号变更类型。
        # <li>CREATE:表示新增帐号</li>
        # <li>MODIFY:表示修改帐号</li>
        # <li>DELETE:表示删除帐号</li>
        # @type ModifyType: String
        # @param ModifyTime: 变更时间。
        # @type ModifyTime: String

        attr_accessor :Id, :Uuid, :MachineIp, :MachineName, :Username, :ModifyType, :ModifyTime

        def initialize(id=nil, uuid=nil, machineip=nil, machinename=nil, username=nil, modifytype=nil, modifytime=nil)
          @Id = id
          @Uuid = uuid
          @MachineIp = machineip
          @MachineName = machinename
          @Username = username
          @ModifyType = modifytype
          @ModifyTime = modifytime
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @Username = params['Username']
          @ModifyType = params['ModifyType']
          @ModifyTime = params['ModifyTime']
        end
      end

      # 展示登录审计白名单时的主机信息实体
      class HostDesc < TencentCloud::Common::AbstractModel
        # @param Quuid: 云镜客户端ID
        # @type Quuid: String
        # @param Uuid: 主机ID
        # @type Uuid: String
        # @param MachineName: 机器名
        # @type MachineName: String
        # @param MachineIp: 机器IP:已销毁的服务器IP为空
        # @type MachineIp: String
        # @param MachineWanIp: 公网IP:已销毁的服务器IP为空
        # @type MachineWanIp: String
        # @param Tags: 标签信息数组
        # @type Tags: Array

        attr_accessor :Quuid, :Uuid, :MachineName, :MachineIp, :MachineWanIp, :Tags

        def initialize(quuid=nil, uuid=nil, machinename=nil, machineip=nil, machinewanip=nil, tags=nil)
          @Quuid = quuid
          @Uuid = uuid
          @MachineName = machinename
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @Tags = tags
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @MachineName = params['MachineName']
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          unless params['Tags'].nil?
            @Tags = []
            params['Tags'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tags << machinetag_tmp
            end
          end
        end
      end

      # 添加登录审计白名单的主机信息实体
      class HostInfo < TencentCloud::Common::AbstractModel
        # @param Quuid: Quuid
        # @type Quuid: String
        # @param Uuid: Uuid
        # @type Uuid: String

        attr_accessor :Quuid, :Uuid

        def initialize(quuid=nil, uuid=nil)
          @Quuid = quuid
          @Uuid = uuid
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
        end
      end

      # 登录审计列表实体
      class HostLoginList < TencentCloud::Common::AbstractModel
        # @param Id: 记录Id
        # @type Id: Integer
        # @param Uuid: Uuid串
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param MachineIp: 主机ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineIp: String
        # @param MachineName: 主机名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineName: String
        # @param UserName: 用户名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UserName: String
        # @param SrcIp: 来源ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SrcIp: String
        # @param Status: 1:正常登录;2异地登录; 5已加白; 14:已处理;15:已忽略。
        # @type Status: Integer
        # @param Country: 国家id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Country: Integer
        # @param City: 城市id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type City: Integer
        # @param Province: 省份id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Province: Integer
        # @param LoginTime: 登录时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LoginTime: String
        # @param ModifyTime: 修改时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param IsRiskArea: 是否命中异地登录异常  1表示命中此类异常, 0表示未命中
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsRiskArea: Integer
        # @param IsRiskUser: 是否命中异常用户异常 1表示命中此类异常, 0表示未命中
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsRiskUser: Integer
        # @param IsRiskTime: 是否命中异常时间异常 1表示命中此类异常, 0表示未命中
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsRiskTime: Integer
        # @param IsRiskSrcIp: 是否命中异常IP异常 1表示命中此类异常, 0表示未命中
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsRiskSrcIp: Integer
        # @param RiskLevel: 危险等级:
        # 0 高危
        # 1 可疑
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskLevel: Integer
        # @param Location: 位置名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Location: String
        # @param Quuid: 主机quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param Desc: 高危信息说明:
        # ABROAD - 海外IP;
        # XTI - 威胁情报
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Desc: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Port: 请求目的端口
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Port: Integer

        attr_accessor :Id, :Uuid, :MachineIp, :MachineName, :UserName, :SrcIp, :Status, :Country, :City, :Province, :LoginTime, :ModifyTime, :IsRiskArea, :IsRiskUser, :IsRiskTime, :IsRiskSrcIp, :RiskLevel, :Location, :Quuid, :Desc, :MachineExtraInfo, :Port

        def initialize(id=nil, uuid=nil, machineip=nil, machinename=nil, username=nil, srcip=nil, status=nil, country=nil, city=nil, province=nil, logintime=nil, modifytime=nil, isriskarea=nil, isriskuser=nil, isrisktime=nil, isrisksrcip=nil, risklevel=nil, location=nil, quuid=nil, desc=nil, machineextrainfo=nil, port=nil)
          @Id = id
          @Uuid = uuid
          @MachineIp = machineip
          @MachineName = machinename
          @UserName = username
          @SrcIp = srcip
          @Status = status
          @Country = country
          @City = city
          @Province = province
          @LoginTime = logintime
          @ModifyTime = modifytime
          @IsRiskArea = isriskarea
          @IsRiskUser = isriskuser
          @IsRiskTime = isrisktime
          @IsRiskSrcIp = isrisksrcip
          @RiskLevel = risklevel
          @Location = location
          @Quuid = quuid
          @Desc = desc
          @MachineExtraInfo = machineextrainfo
          @Port = port
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @MachineIp = params['MachineIp']
          @MachineName = params['MachineName']
          @UserName = params['UserName']
          @SrcIp = params['SrcIp']
          @Status = params['Status']
          @Country = params['Country']
          @City = params['City']
          @Province = params['Province']
          @LoginTime = params['LoginTime']
          @ModifyTime = params['ModifyTime']
          @IsRiskArea = params['IsRiskArea']
          @IsRiskUser = params['IsRiskUser']
          @IsRiskTime = params['IsRiskTime']
          @IsRiskSrcIp = params['IsRiskSrcIp']
          @RiskLevel = params['RiskLevel']
          @Location = params['Location']
          @Quuid = params['Quuid']
          @Desc = params['Desc']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Port = params['Port']
        end
      end

      # 新增登录审计白名单实体
      class HostLoginWhiteObj < TencentCloud::Common::AbstractModel
        # @param Places: 加白地域
        # @type Places: Array
        # @param SrcIp: 加白源IP,支持网段,多个IP以逗号隔开
        # @type SrcIp: String
        # @param UserName: 加白用户名,多个用户名以逗号隔开
        # @type UserName: String
        # @param IsGlobal: 是否对全局生效, 1:全局有效 0: 仅针对单台主机'
        # @type IsGlobal: Integer
        # @param HostInfos: 白名单生效的机器信息列表
        # @type HostInfos: Array
        # @param Remark: 备注
        # @type Remark: String
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String

        attr_accessor :Places, :SrcIp, :UserName, :IsGlobal, :HostInfos, :Remark, :StartTime, :EndTime

        def initialize(places=nil, srcip=nil, username=nil, isglobal=nil, hostinfos=nil, remark=nil, starttime=nil, endtime=nil)
          @Places = places
          @SrcIp = srcip
          @UserName = username
          @IsGlobal = isglobal
          @HostInfos = hostinfos
          @Remark = remark
          @StartTime = starttime
          @EndTime = endtime
        end

        def deserialize(params)
          unless params['Places'].nil?
            @Places = []
            params['Places'].each do |i|
              place_tmp = Place.new
              place_tmp.deserialize(i)
              @Places << place_tmp
            end
          end
          @SrcIp = params['SrcIp']
          @UserName = params['UserName']
          @IsGlobal = params['IsGlobal']
          unless params['HostInfos'].nil?
            @HostInfos = []
            params['HostInfos'].each do |i|
              hostinfo_tmp = HostInfo.new
              hostinfo_tmp.deserialize(i)
              @HostInfos << hostinfo_tmp
            end
          end
          @Remark = params['Remark']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
        end
      end

      # 主机风险计数
      class HostRiskLevelCount < TencentCloud::Common::AbstractModel
        # @param HostId: 主机ID
        # @type HostId: String
        # @param HostName: 主机名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String
        # @param SeriousCount: 严重个数
        # @type SeriousCount: Integer
        # @param HighCount: 高危个数
        # @type HighCount: Integer
        # @param MediumCount: 中危个数
        # @type MediumCount: Integer
        # @param LowCount: 低危个数
        # @type LowCount: Integer

        attr_accessor :HostId, :HostName, :SeriousCount, :HighCount, :MediumCount, :LowCount

        def initialize(hostid=nil, hostname=nil, seriouscount=nil, highcount=nil, mediumcount=nil, lowcount=nil)
          @HostId = hostid
          @HostName = hostname
          @SeriousCount = seriouscount
          @HighCount = highcount
          @MediumCount = mediumcount
          @LowCount = lowcount
        end

        def deserialize(params)
          @HostId = params['HostId']
          @HostName = params['HostName']
          @SeriousCount = params['SeriousCount']
          @HighCount = params['HighCount']
          @MediumCount = params['MediumCount']
          @LowCount = params['LowCount']
        end
      end

      # 主机与主机标签信息
      class HostTagInfo < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param TagList: 主机标签名数组
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TagList: Array
        # @param HostIp: 主机内网Ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIp: String
        # @param AliasName: 主机名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AliasName: String
        # @param MachineWanIp: 主机公网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineWanIp: String
        # @param Uuid: 主机uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param KernelVersion: 内核版本号
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type KernelVersion: String
        # @param MachineStatus: 主机在线状态 ONLINE,OFFLINE
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineStatus: String
        # @param ProtectType: 防护版本 BASIC_VERSION 基础版, PRO_VERSION 专业版 Flagship 旗舰版
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ProtectType: String
        # @param VulNum: 漏洞数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulNum: Integer
        # @param CloudTags: 云标签信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CloudTags: Array
        # @param InstanceID: 主机instance ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceID: String

        attr_accessor :Quuid, :TagList, :HostIp, :AliasName, :MachineWanIp, :Uuid, :KernelVersion, :MachineStatus, :ProtectType, :VulNum, :CloudTags, :InstanceID

        def initialize(quuid=nil, taglist=nil, hostip=nil, aliasname=nil, machinewanip=nil, uuid=nil, kernelversion=nil, machinestatus=nil, protecttype=nil, vulnum=nil, cloudtags=nil, instanceid=nil)
          @Quuid = quuid
          @TagList = taglist
          @HostIp = hostip
          @AliasName = aliasname
          @MachineWanIp = machinewanip
          @Uuid = uuid
          @KernelVersion = kernelversion
          @MachineStatus = machinestatus
          @ProtectType = protecttype
          @VulNum = vulnum
          @CloudTags = cloudtags
          @InstanceID = instanceid
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @TagList = params['TagList']
          @HostIp = params['HostIp']
          @AliasName = params['AliasName']
          @MachineWanIp = params['MachineWanIp']
          @Uuid = params['Uuid']
          @KernelVersion = params['KernelVersion']
          @MachineStatus = params['MachineStatus']
          @ProtectType = params['ProtectType']
          @VulNum = params['VulNum']
          unless params['CloudTags'].nil?
            @CloudTags = []
            params['CloudTags'].each do |i|
              tags_tmp = Tags.new
              tags_tmp.deserialize(i)
              @CloudTags << tags_tmp
            end
          end
          @InstanceID = params['InstanceID']
        end
      end

      # 忽略的基线检测项信息
      class IgnoreBaselineRule < TencentCloud::Common::AbstractModel
        # @param RuleName: 基线检测项名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleName: String
        # @param RuleId: 基线检测项id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleId: Integer
        # @param ModifyTime: 更新时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param Fix: 修复建议
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Fix: String
        # @param EffectHostCount: 影响主机数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EffectHostCount: Integer

        attr_accessor :RuleName, :RuleId, :ModifyTime, :Fix, :EffectHostCount

        def initialize(rulename=nil, ruleid=nil, modifytime=nil, fix=nil, effecthostcount=nil)
          @RuleName = rulename
          @RuleId = ruleid
          @ModifyTime = modifytime
          @Fix = fix
          @EffectHostCount = effecthostcount
        end

        def deserialize(params)
          @RuleName = params['RuleName']
          @RuleId = params['RuleId']
          @ModifyTime = params['ModifyTime']
          @Fix = params['Fix']
          @EffectHostCount = params['EffectHostCount']
        end
      end

      # IgnoreImpactedHosts请求参数结构体
      class IgnoreImpactedHostsRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 漏洞ID数组。
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # IgnoreImpactedHosts返回参数结构体
      class IgnoreImpactedHostsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 忽略检测项影响主机信息
      class IgnoreRuleEffectHostInfo < TencentCloud::Common::AbstractModel
        # @param HostName: 主机名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String
        # @param Level: 危害等级:1-低位,2-中危,3-高危,4-严重
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param TagList: 主机标签数组
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TagList: Array
        # @param Status: 状态:0-未通过,1-忽略,3-已通过,5-检测中
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Status: Integer
        # @param LastScanTime: 最后检测时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastScanTime: String
        # @param EventId: 事件id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventId: Integer
        # @param Quuid: 主机quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String

        attr_accessor :HostName, :Level, :TagList, :Status, :LastScanTime, :EventId, :Quuid

        def initialize(hostname=nil, level=nil, taglist=nil, status=nil, lastscantime=nil, eventid=nil, quuid=nil)
          @HostName = hostname
          @Level = level
          @TagList = taglist
          @Status = status
          @LastScanTime = lastscantime
          @EventId = eventid
          @Quuid = quuid
        end

        def deserialize(params)
          @HostName = params['HostName']
          @Level = params['Level']
          @TagList = params['TagList']
          @Status = params['Status']
          @LastScanTime = params['LastScanTime']
          @EventId = params['EventId']
          @Quuid = params['Quuid']
        end
      end

      # 事件点信息
      class IncidentVertexInfo < TencentCloud::Common::AbstractModel
        # @param IncidentId: 事件id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IncidentId: String
        # @param TableName: 事件所在表名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TableName: String
        # @param Vertex: 节点信息列表,数组项中包含节点详细信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Vertex: Array
        # @param VertexCount: 节点总个数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VertexCount: Integer

        attr_accessor :IncidentId, :TableName, :Vertex, :VertexCount

        def initialize(incidentid=nil, tablename=nil, vertex=nil, vertexcount=nil)
          @IncidentId = incidentid
          @TableName = tablename
          @Vertex = vertex
          @VertexCount = vertexcount
        end

        def deserialize(params)
          @IncidentId = params['IncidentId']
          @TableName = params['TableName']
          unless params['Vertex'].nil?
            @Vertex = []
            params['Vertex'].each do |i|
              vertexinfo_tmp = VertexInfo.new
              vertexinfo_tmp.deserialize(i)
              @Vertex << vertexinfo_tmp
            end
          end
          @VertexCount = params['VertexCount']
        end
      end

      # 项
      class Item < TencentCloud::Common::AbstractModel
        # @param ItemId: Id
        # @type ItemId: Integer
        # @param ItemName: 名称
        # @type ItemName: String

        attr_accessor :ItemId, :ItemName

        def initialize(itemid=nil, itemname=nil)
          @ItemId = itemid
          @ItemName = itemname
        end

        def deserialize(params)
          @ItemId = params['ItemId']
          @ItemName = params['ItemName']
        end
      end

      # java内存马事件详细信息
      class JavaMemShellDetail < TencentCloud::Common::AbstractModel
        # @param InstanceName: 容器名
        # @type InstanceName: String
        # @param InstanceState: 实例状态:RUNNING,STOPPED,SHUTDOWN...
        # @type InstanceState: String
        # @param PrivateIp: 内网IP
        # @type PrivateIp: String
        # @param PublicIp: 公共ip
        # @type PublicIp: String
        # @param Type: 内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
        # @type Type: Integer
        # @param Description: 说明
        # @type Description: String
        # @param CreateTime: 首次发现时间
        # @type CreateTime: String
        # @param RecentFoundTime: 最近检测时间
        # @type RecentFoundTime: String
        # @param Status: 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
        # @type Status: Integer
        # @param ClassLoaderName: java加载器类名
        # @type ClassLoaderName: String
        # @param SuperClassName: 父类名
        # @type SuperClassName: String
        # @param Md5: 类文件MD5
        # @type Md5: String
        # @param Interfaces: 继承的接口
        # @type Interfaces: String
        # @param Annotations: 注释
        # @type Annotations: String
        # @param Pid: 进程pid
        # @type Pid: Integer
        # @param Exe: java进程路径
        # @type Exe: String
        # @param Args: java进程命令行参数
        # @type Args: String
        # @param ClassName: 类名
        # @type ClassName: String
        # @param ClassContent: java内存马二进制代码(base64)
        # @type ClassContent: String
        # @param ClassContentPretty: java内存马反编译代码
        # @type ClassContentPretty: String
        # @param EventDescription: 事件描述
        # @type EventDescription: String
        # @param SecurityAdvice: 安全建议
        # @type SecurityAdvice: String
        # @param MachineExtraInfo:  主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param MachineState: 实例状态:RUNNING,STOPPED,SHUTDOWN...
        # @type MachineState: String

        attr_accessor :InstanceName, :InstanceState, :PrivateIp, :PublicIp, :Type, :Description, :CreateTime, :RecentFoundTime, :Status, :ClassLoaderName, :SuperClassName, :Md5, :Interfaces, :Annotations, :Pid, :Exe, :Args, :ClassName, :ClassContent, :ClassContentPretty, :EventDescription, :SecurityAdvice, :MachineExtraInfo, :MachineState

        def initialize(instancename=nil, instancestate=nil, privateip=nil, publicip=nil, type=nil, description=nil, createtime=nil, recentfoundtime=nil, status=nil, classloadername=nil, superclassname=nil, md5=nil, interfaces=nil, annotations=nil, pid=nil, exe=nil, args=nil, classname=nil, classcontent=nil, classcontentpretty=nil, eventdescription=nil, securityadvice=nil, machineextrainfo=nil, machinestate=nil)
          @InstanceName = instancename
          @InstanceState = instancestate
          @PrivateIp = privateip
          @PublicIp = publicip
          @Type = type
          @Description = description
          @CreateTime = createtime
          @RecentFoundTime = recentfoundtime
          @Status = status
          @ClassLoaderName = classloadername
          @SuperClassName = superclassname
          @Md5 = md5
          @Interfaces = interfaces
          @Annotations = annotations
          @Pid = pid
          @Exe = exe
          @Args = args
          @ClassName = classname
          @ClassContent = classcontent
          @ClassContentPretty = classcontentpretty
          @EventDescription = eventdescription
          @SecurityAdvice = securityadvice
          @MachineExtraInfo = machineextrainfo
          @MachineState = machinestate
        end

        def deserialize(params)
          @InstanceName = params['InstanceName']
          @InstanceState = params['InstanceState']
          @PrivateIp = params['PrivateIp']
          @PublicIp = params['PublicIp']
          @Type = params['Type']
          @Description = params['Description']
          @CreateTime = params['CreateTime']
          @RecentFoundTime = params['RecentFoundTime']
          @Status = params['Status']
          @ClassLoaderName = params['ClassLoaderName']
          @SuperClassName = params['SuperClassName']
          @Md5 = params['Md5']
          @Interfaces = params['Interfaces']
          @Annotations = params['Annotations']
          @Pid = params['Pid']
          @Exe = params['Exe']
          @Args = params['Args']
          @ClassName = params['ClassName']
          @ClassContent = params['ClassContent']
          @ClassContentPretty = params['ClassContentPretty']
          @EventDescription = params['EventDescription']
          @SecurityAdvice = params['SecurityAdvice']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @MachineState = params['MachineState']
        end
      end

      # java内存马事件信息
      class JavaMemShellInfo < TencentCloud::Common::AbstractModel
        # @param Id: 事件ID
        # @type Id: Integer
        # @param Alias: 服务器名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Alias: String
        # @param HostIp: 服务器IP
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIp: String
        # @param Type: 内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
        # @type Type: Integer
        # @param Description: 说明
        # @type Description: String
        # @param CreateTime: 首次发现时间
        # @type CreateTime: String
        # @param RecentFoundTime: 最近检测时间
        # @type RecentFoundTime: String
        # @param Status: 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
        # @type Status: Integer
        # @param Quuid: 服务器quuid
        # @type Quuid: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Uuid: 服务器uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String

        attr_accessor :Id, :Alias, :HostIp, :Type, :Description, :CreateTime, :RecentFoundTime, :Status, :Quuid, :MachineExtraInfo, :Uuid

        def initialize(id=nil, _alias=nil, hostip=nil, type=nil, description=nil, createtime=nil, recentfoundtime=nil, status=nil, quuid=nil, machineextrainfo=nil, uuid=nil)
          @Id = id
          @Alias = _alias
          @HostIp = hostip
          @Type = type
          @Description = description
          @CreateTime = createtime
          @RecentFoundTime = recentfoundtime
          @Status = status
          @Quuid = quuid
          @MachineExtraInfo = machineextrainfo
          @Uuid = uuid
        end

        def deserialize(params)
          @Id = params['Id']
          @Alias = params['Alias']
          @HostIp = params['HostIp']
          @Type = params['Type']
          @Description = params['Description']
          @CreateTime = params['CreateTime']
          @RecentFoundTime = params['RecentFoundTime']
          @Status = params['Status']
          @Quuid = params['Quuid']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Uuid = params['Uuid']
        end
      end

      # Java内存马插件信息
      class JavaMemShellPluginInfo < TencentCloud::Common::AbstractModel
        # @param Pid: 注入进程pid
        # @type Pid: Integer
        # @param MainClass: 注入进程主类
        # @type MainClass: String
        # @param Status: 注入状态:0: 注入中, 1: 注入成功, 2: 插件超时, 3: 插件退出, 4: 注入失败 5: 软删除
        # @type Status: Integer
        # @param ErrorLog: 错误日志
        # @type ErrorLog: String

        attr_accessor :Pid, :MainClass, :Status, :ErrorLog

        def initialize(pid=nil, mainclass=nil, status=nil, errorlog=nil)
          @Pid = pid
          @MainClass = mainclass
          @Status = status
          @ErrorLog = errorlog
        end

        def deserialize(params)
          @Pid = params['Pid']
          @MainClass = params['MainClass']
          @Status = params['Status']
          @ErrorLog = params['ErrorLog']
        end
      end

      # Java内存马插件配置
      class JavaMemShellPluginSetting < TencentCloud::Common::AbstractModel
        # @param Quuid: 容器quuid
        # @type Quuid: String
        # @param Alias: 服务器名
        # @type Alias: String
        # @param HostIp: 服务器ip
        # @type HostIp: String
        # @param JavaShellStatus: javashell插件开关 0: 关闭 1: 开启
        # @type JavaShellStatus: Integer
        # @param Exception: 插件是否存在异常 0: 正常 1: 异常
        # @type Exception: Integer
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 修改时间
        # @type ModifyTime: String
        # @param Uuid: 服务器uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Quuid, :Alias, :HostIp, :JavaShellStatus, :Exception, :CreateTime, :ModifyTime, :Uuid, :MachineExtraInfo

        def initialize(quuid=nil, _alias=nil, hostip=nil, javashellstatus=nil, exception=nil, createtime=nil, modifytime=nil, uuid=nil, machineextrainfo=nil)
          @Quuid = quuid
          @Alias = _alias
          @HostIp = hostip
          @JavaShellStatus = javashellstatus
          @Exception = exception
          @CreateTime = createtime
          @ModifyTime = modifytime
          @Uuid = uuid
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Alias = params['Alias']
          @HostIp = params['HostIp']
          @JavaShellStatus = params['JavaShellStatus']
          @Exception = params['Exception']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @Uuid = params['Uuid']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 索引键值信息
      class KeyValueArrayInfo < TencentCloud::Common::AbstractModel
        # @param Key: 需要配置键值或者元字段索引的字段
        # @type Key: String
        # @param Value: 字段的索引描述信息
        # @type Value: :class:`Tencentcloud::Cwp.v20180228.models.ValueInfo`

        attr_accessor :Key, :Value

        def initialize(key=nil, value=nil)
          @Key = key
          @Value = value
        end

        def deserialize(params)
          @Key = params['Key']
          unless params['Value'].nil?
            @Value = ValueInfo.new
            @Value.deserialize(params['Value'])
          end
        end
      end

      # 键值索引配置
      class KeyValueInfo < TencentCloud::Common::AbstractModel
        # @param CaseSensitive: 是否大小写敏感
        # @type CaseSensitive: Boolean
        # @param KeyValues: 需要建立索引的键值对信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type KeyValues: Array

        attr_accessor :CaseSensitive, :KeyValues

        def initialize(casesensitive=nil, keyvalues=nil)
          @CaseSensitive = casesensitive
          @KeyValues = keyvalues
        end

        def deserialize(params)
          @CaseSensitive = params['CaseSensitive']
          unless params['KeyValues'].nil?
            @KeyValues = []
            params['KeyValues'].each do |i|
              keyvaluearrayinfo_tmp = KeyValueArrayInfo.new
              keyvaluearrayinfo_tmp.deserialize(i)
              @KeyValues << keyvaluearrayinfo_tmp
            end
          end
        end
      end

      # KeysLocalStorage请求参数结构体
      class KeysLocalStorageRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # KeysLocalStorage返回参数结构体
      class KeysLocalStorageResponse < TencentCloud::Common::AbstractModel
        # @param Keys: 键列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Keys: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Keys, :RequestId

        def initialize(keys=nil, requestid=nil)
          @Keys = keys
          @RequestId = requestid
        end

        def deserialize(params)
          @Keys = params['Keys']
          @RequestId = params['RequestId']
        end
      end

      # 授权绑定详情信息
      class LicenseBindDetail < TencentCloud::Common::AbstractModel
        # @param MachineName: 机器别名
        # @type MachineName: String
        # @param MachineWanIp: 机器公网IP
        # @type MachineWanIp: String
        # @param MachineIp: 机器内网IP
        # @type MachineIp: String
        # @param Quuid: 云服务器UUID
        # @type Quuid: String
        # @param Uuid: 主机安全客户端UUID
        # @type Uuid: String
        # @param Tags: 标签信息
        # @type Tags: Array
        # @param AgentStatus: 主机安全客户端状态,OFFLINE 离线,ONLINE 在线,UNINSTALL 未安装
        # @type AgentStatus: String
        # @param IsUnBind: 是否允许解绑,false 不允许解绑
        # @type IsUnBind: Boolean
        # @param IsSwitchBind: 是否允许换绑,false 不允许换绑
        # @type IsSwitchBind: Boolean
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineName, :MachineWanIp, :MachineIp, :Quuid, :Uuid, :Tags, :AgentStatus, :IsUnBind, :IsSwitchBind, :MachineExtraInfo

        def initialize(machinename=nil, machinewanip=nil, machineip=nil, quuid=nil, uuid=nil, tags=nil, agentstatus=nil, isunbind=nil, isswitchbind=nil, machineextrainfo=nil)
          @MachineName = machinename
          @MachineWanIp = machinewanip
          @MachineIp = machineip
          @Quuid = quuid
          @Uuid = uuid
          @Tags = tags
          @AgentStatus = agentstatus
          @IsUnBind = isunbind
          @IsSwitchBind = isswitchbind
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineName = params['MachineName']
          @MachineWanIp = params['MachineWanIp']
          @MachineIp = params['MachineIp']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @Tags = params['Tags']
          @AgentStatus = params['AgentStatus']
          @IsUnBind = params['IsUnBind']
          @IsSwitchBind = params['IsSwitchBind']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 授权绑定任务详情
      class LicenseBindTaskDetail < TencentCloud::Common::AbstractModel
        # @param Quuid: 云服务器UUID
        # @type Quuid: String
        # @param ErrMsg: 错误信息
        # @type ErrMsg: String
        # @param Status: 0 执行中, 1 成功,2失败
        # @type Status: Integer
        # @param FixMessage: 修复建议
        # @type FixMessage: String
        # @param MachineExtraInfo: 机器额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Quuid, :ErrMsg, :Status, :FixMessage, :MachineExtraInfo

        def initialize(quuid=nil, errmsg=nil, status=nil, fixmessage=nil, machineextrainfo=nil)
          @Quuid = quuid
          @ErrMsg = errmsg
          @Status = status
          @FixMessage = fixmessage
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @ErrMsg = params['ErrMsg']
          @Status = params['Status']
          @FixMessage = params['FixMessage']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 授权订单列表对象
      class LicenseDetail < TencentCloud::Common::AbstractModel
        # @param LicenseId: 授权ID
        # @type LicenseId: Integer
        # @param LicenseType: 授权类型,0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        # @type LicenseType: Integer
        # @param LicenseStatus: 授权状态 0 未使用,1 部分使用, 2 已用完, 3 不可用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LicenseStatus: Integer
        # @param LicenseCnt: 总授权数
        # @type LicenseCnt: Integer
        # @param UsedLicenseCnt: 已使用授权数
        # @type UsedLicenseCnt: Integer
        # @param OrderStatus: 订单状态 1 正常 2隔离, 3销毁
        # @type OrderStatus: Integer
        # @param Deadline: 截止日期
        # @type Deadline: String
        # @param ResourceId: 订单资源ID
        # @type ResourceId: String
        # @param AutoRenewFlag: 0 初始化,1 自动续费,2 不自动续费
        # @type AutoRenewFlag: Integer
        # @param ProjectId: 项目ID
        # @type ProjectId: Integer
        # @param TaskId: 任务ID ,默认0 ,查询绑定进度用
        # @type TaskId: Integer
        # @param BuyTime: 购买时间
        # @type BuyTime: String
        # @param SourceType: 是否试用订单.
        # @type SourceType: Integer
        # @param Alias: 资源别名
        # @type Alias: String
        # @param Tags: 平台标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tags: Array
        # @param FreezeNum: 冻结数,当为0时 为未冻结,非0 则表示冻结授权数额
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FreezeNum: Integer

        attr_accessor :LicenseId, :LicenseType, :LicenseStatus, :LicenseCnt, :UsedLicenseCnt, :OrderStatus, :Deadline, :ResourceId, :AutoRenewFlag, :ProjectId, :TaskId, :BuyTime, :SourceType, :Alias, :Tags, :FreezeNum

        def initialize(licenseid=nil, licensetype=nil, licensestatus=nil, licensecnt=nil, usedlicensecnt=nil, orderstatus=nil, deadline=nil, resourceid=nil, autorenewflag=nil, projectid=nil, taskid=nil, buytime=nil, sourcetype=nil, _alias=nil, tags=nil, freezenum=nil)
          @LicenseId = licenseid
          @LicenseType = licensetype
          @LicenseStatus = licensestatus
          @LicenseCnt = licensecnt
          @UsedLicenseCnt = usedlicensecnt
          @OrderStatus = orderstatus
          @Deadline = deadline
          @ResourceId = resourceid
          @AutoRenewFlag = autorenewflag
          @ProjectId = projectid
          @TaskId = taskid
          @BuyTime = buytime
          @SourceType = sourcetype
          @Alias = _alias
          @Tags = tags
          @FreezeNum = freezenum
        end

        def deserialize(params)
          @LicenseId = params['LicenseId']
          @LicenseType = params['LicenseType']
          @LicenseStatus = params['LicenseStatus']
          @LicenseCnt = params['LicenseCnt']
          @UsedLicenseCnt = params['UsedLicenseCnt']
          @OrderStatus = params['OrderStatus']
          @Deadline = params['Deadline']
          @ResourceId = params['ResourceId']
          @AutoRenewFlag = params['AutoRenewFlag']
          @ProjectId = params['ProjectId']
          @TaskId = params['TaskId']
          @BuyTime = params['BuyTime']
          @SourceType = params['SourceType']
          @Alias = params['Alias']
          unless params['Tags'].nil?
            @Tags = []
            params['Tags'].each do |i|
              tags_tmp = Tags.new
              tags_tmp.deserialize(i)
              @Tags << tags_tmp
            end
          end
          @FreezeNum = params['FreezeNum']
        end
      end

      # 授权订单对象内容
      class LicenseOrder < TencentCloud::Common::AbstractModel
        # @param LicenseId: 授权ID
        # @type LicenseId: Integer
        # @param LicenseType: 授权类型
        # @type LicenseType: Integer
        # @param Status: 授权订单资源状态
        # @type Status: Integer
        # @param SourceType: 订单类型
        # @type SourceType: Integer
        # @param ResourceId: 资源ID
        # @type ResourceId: String

        attr_accessor :LicenseId, :LicenseType, :Status, :SourceType, :ResourceId

        def initialize(licenseid=nil, licensetype=nil, status=nil, sourcetype=nil, resourceid=nil)
          @LicenseId = licenseid
          @LicenseType = licensetype
          @Status = status
          @SourceType = sourcetype
          @ResourceId = resourceid
        end

        def deserialize(params)
          @LicenseId = params['LicenseId']
          @LicenseType = params['LicenseType']
          @Status = params['Status']
          @SourceType = params['SourceType']
          @ResourceId = params['ResourceId']
        end
      end

      # 授权解绑信息
      class LicenseUnBindRsp < TencentCloud::Common::AbstractModel
        # @param Quuid: QUUID 云服务器uuid,轻量服务器uuid,边缘计算 uuid
        # @type Quuid: String
        # @param ErrMsg: 失败原因
        # @type ErrMsg: String

        attr_accessor :Quuid, :ErrMsg

        def initialize(quuid=nil, errmsg=nil)
          @Quuid = quuid
          @ErrMsg = errmsg
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @ErrMsg = params['ErrMsg']
        end
      end

      # 直方图周期内统计结果详情
      class LogHistogram < TencentCloud::Common::AbstractModel
        # @param Count: 统计周期内的日志条数
        # @type Count: Integer
        # @param TimeStamp: 按 period 取整后的 unix timestamp: 单位毫秒
        # @type TimeStamp: Integer

        attr_accessor :Count, :TimeStamp

        def initialize(count=nil, timestamp=nil)
          @Count = count
          @TimeStamp = timestamp
        end

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

      # 日志详情
      class LogInfo < TencentCloud::Common::AbstractModel
        # @param Content: 日志内容的Json序列化字符串
        # @type Content: String
        # @param FileName: 日志文件名称
        # @type FileName: String
        # @param Source: 日志来源IP
        # @type Source: String
        # @param TimeStamp: 日志时间,单位ms
        # @type TimeStamp: Integer

        attr_accessor :Content, :FileName, :Source, :TimeStamp

        def initialize(content=nil, filename=nil, source=nil, timestamp=nil)
          @Content = content
          @FileName = filename
          @Source = source
          @TimeStamp = timestamp
        end

        def deserialize(params)
          @Content = params['Content']
          @FileName = params['FileName']
          @Source = params['Source']
          @TimeStamp = params['TimeStamp']
        end
      end

      # 日志存储量记录
      class LogStorageRecord < TencentCloud::Common::AbstractModel
        # @param Month: 年月份
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Month: String
        # @param UsedSize: 存储量,字节
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type UsedSize: Integer
        # @param InquireSize: 总量,字节
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InquireSize: Integer

        attr_accessor :Month, :UsedSize, :InquireSize

        def initialize(month=nil, usedsize=nil, inquiresize=nil)
          @Month = month
          @UsedSize = usedsize
          @InquireSize = inquiresize
        end

        def deserialize(params)
          @Month = params['Month']
          @UsedSize = params['UsedSize']
          @InquireSize = params['InquireSize']
        end
      end

      # 异地登录合并后白名单
      class LoginWhiteCombinedInfo < TencentCloud::Common::AbstractModel
        # @param Places: 白名单地域
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Places: Array
        # @param UserName: 白名单用户(多个用户逗号隔开)
        # @type UserName: String
        # @param SrcIp: 白名单IP(多个IP逗号隔开)
        # @type SrcIp: String
        # @param Locale: 地域字符串
        # @type Locale: String
        # @param Remark: 备注
        # @type Remark: String
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String
        # @param IsGlobal: 是否对全局生效, 1:全局有效 0: 对指定主机列表生效'
        # @type IsGlobal: Integer
        # @param Name: 白名单名字:IsLocal=1时固定为:全部服务器;单台机器时为机器内网IP,多台服务器时为服务器数量,如:11台
        # @type Name: String
        # @param Desc: 仅在单台服务器时,返回服务器名称
        # @type Desc: String
        # @param Id: 白名单ID
        # @type Id: Integer
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 最近修改时间
        # @type ModifyTime: String
        # @param Uuid: 服务器Uuid
        # @type Uuid: String
        # @param Locations: 登陆地
        # @type Locations: String

        attr_accessor :Places, :UserName, :SrcIp, :Locale, :Remark, :StartTime, :EndTime, :IsGlobal, :Name, :Desc, :Id, :CreateTime, :ModifyTime, :Uuid, :Locations

        def initialize(places=nil, username=nil, srcip=nil, locale=nil, remark=nil, starttime=nil, endtime=nil, isglobal=nil, name=nil, desc=nil, id=nil, createtime=nil, modifytime=nil, uuid=nil, locations=nil)
          @Places = places
          @UserName = username
          @SrcIp = srcip
          @Locale = locale
          @Remark = remark
          @StartTime = starttime
          @EndTime = endtime
          @IsGlobal = isglobal
          @Name = name
          @Desc = desc
          @Id = id
          @CreateTime = createtime
          @ModifyTime = modifytime
          @Uuid = uuid
          @Locations = locations
        end

        def deserialize(params)
          unless params['Places'].nil?
            @Places = []
            params['Places'].each do |i|
              place_tmp = Place.new
              place_tmp.deserialize(i)
              @Places << place_tmp
            end
          end
          @UserName = params['UserName']
          @SrcIp = params['SrcIp']
          @Locale = params['Locale']
          @Remark = params['Remark']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @IsGlobal = params['IsGlobal']
          @Name = params['Name']
          @Desc = params['Desc']
          @Id = params['Id']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @Uuid = params['Uuid']
          @Locations = params['Locations']
        end
      end

      # 异地登录白名单
      class LoginWhiteLists < TencentCloud::Common::AbstractModel
        # @param Id: 记录ID
        # @type Id: Integer
        # @param Uuid: 云镜客户端ID
        # @type Uuid: String
        # @param Places: 白名单地域
        # @type Places: Array
        # @param UserName: 白名单用户(多个用户逗号隔开)
        # @type UserName: String
        # @param SrcIp: 白名单IP(多个IP逗号隔开)
        # @type SrcIp: String
        # @param IsGlobal: 是否为全局规则
        # @type IsGlobal: Boolean
        # @param CreateTime: 创建白名单时间
        # @type CreateTime: String
        # @param ModifyTime: 修改白名单时间
        # @type ModifyTime: String
        # @param MachineName: 机器名
        # @type MachineName: String
        # @param HostIp: 机器IP
        # @type HostIp: String
        # @param StartTime: 起始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String

        attr_accessor :Id, :Uuid, :Places, :UserName, :SrcIp, :IsGlobal, :CreateTime, :ModifyTime, :MachineName, :HostIp, :StartTime, :EndTime

        def initialize(id=nil, uuid=nil, places=nil, username=nil, srcip=nil, isglobal=nil, createtime=nil, modifytime=nil, machinename=nil, hostip=nil, starttime=nil, endtime=nil)
          @Id = id
          @Uuid = uuid
          @Places = places
          @UserName = username
          @SrcIp = srcip
          @IsGlobal = isglobal
          @CreateTime = createtime
          @ModifyTime = modifytime
          @MachineName = machinename
          @HostIp = hostip
          @StartTime = starttime
          @EndTime = endtime
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          unless params['Places'].nil?
            @Places = []
            params['Places'].each do |i|
              place_tmp = Place.new
              place_tmp.deserialize(i)
              @Places << place_tmp
            end
          end
          @UserName = params['UserName']
          @SrcIp = params['SrcIp']
          @IsGlobal = params['IsGlobal']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @MachineName = params['MachineName']
          @HostIp = params['HostIp']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
        end
      end

      # 主机列表
      class Machine < TencentCloud::Common::AbstractModel
        # @param MachineName: 主机名称。
        # @type MachineName: String
        # @param MachineOs: 主机系统。
        # @type MachineOs: String
        # @param MachineStatus: 主机状态。
        # <li>OFFLINE: 离线  </li>
        # <li>ONLINE: 在线</li>
        # <li>SHUTDOWN: 已关机</li>
        # <li>UNINSTALLED: 未防护</li>
        # @type MachineStatus: String
        # @param Uuid: 云镜客户端唯一Uuid,若客户端长时间不在线将返回空字符。
        # @type Uuid: String
        # @param Quuid: CVM或BM机器唯一Uuid。
        # @type Quuid: String
        # @param VulNum: 漏洞数。
        # @type VulNum: Integer
        # @param MachineIp: 主机IP。
        # @type MachineIp: String
        # @param IsProVersion: 是否是专业版。
        # <li>true: 是</li>
        # <li>false:否</li>
        # @type IsProVersion: Boolean
        # @param MachineWanIp: 主机外网IP。
        # @type MachineWanIp: String
        # @param PayMode: 主机状态。
        # <li>POSTPAY: 表示后付费,即按量计费  </li>
        # <li>PREPAY: 表示预付费,即包年包月</li>
        # @type PayMode: String
        # @param MalwareNum: 木马数。
        # @type MalwareNum: Integer
        # @param Tag: 标签信息
        # @type Tag: Array
        # @param BaselineNum: 基线风险数。
        # @type BaselineNum: Integer
        # @param CyberAttackNum: 网络风险数。
        # @type CyberAttackNum: Integer
        # @param SecurityStatus: 风险状态。
        # <li>SAFE:安全</li>
        # <li>RISK:风险</li>
        # <li>UNKNOWN:未知</li>
        # @type SecurityStatus: String
        # @param InvasionNum: 入侵事件数
        # @type InvasionNum: Integer
        # @param RegionInfo: 地域信息
        # @type RegionInfo: :class:`Tencentcloud::Cwp.v20180228.models.RegionInfo`
        # @param InstanceState: 实例状态 TERMINATED_PRO_VERSION 已销毁
        # @type InstanceState: String
        # @param LicenseStatus: 防篡改 授权状态 1 授权 0 未授权
        # @type LicenseStatus: Integer
        # @param ProjectId: 项目ID
        # @type ProjectId: Integer
        # @param HasAssetScan: 是否有资产扫描接口,0无,1有
        # @type HasAssetScan: Integer
        # @param MachineType: 机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        # @type MachineType: String
        # @param KernelVersion: 内核版本
        # @type KernelVersion: String
        # @param ProtectType: 防护版本:BASIC_VERSION 基础版, PRO_VERSION 专业版,Flagship 旗舰版,GENERAL_DISCOUNT 普惠版
        # @type ProtectType: String
        # @param CloudTags: 云标签信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CloudTags: Array
        # @param IsAddedOnTheFifteen: 是否15天内新增的主机 0:非15天内新增的主机,1:15天内增加的主机
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsAddedOnTheFifteen: Integer
        # @param IpList: 主机ip列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IpList: String
        # @param VpcId: 所属网络
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VpcId: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param InstanceId: 实例ID
        # @type InstanceId: String
        # @param Remark: 备注信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Remark: String

        attr_accessor :MachineName, :MachineOs, :MachineStatus, :Uuid, :Quuid, :VulNum, :MachineIp, :IsProVersion, :MachineWanIp, :PayMode, :MalwareNum, :Tag, :BaselineNum, :CyberAttackNum, :SecurityStatus, :InvasionNum, :RegionInfo, :InstanceState, :LicenseStatus, :ProjectId, :HasAssetScan, :MachineType, :KernelVersion, :ProtectType, :CloudTags, :IsAddedOnTheFifteen, :IpList, :VpcId, :MachineExtraInfo, :InstanceId, :Remark

        def initialize(machinename=nil, machineos=nil, machinestatus=nil, uuid=nil, quuid=nil, vulnum=nil, machineip=nil, isproversion=nil, machinewanip=nil, paymode=nil, malwarenum=nil, tag=nil, baselinenum=nil, cyberattacknum=nil, securitystatus=nil, invasionnum=nil, regioninfo=nil, instancestate=nil, licensestatus=nil, projectid=nil, hasassetscan=nil, machinetype=nil, kernelversion=nil, protecttype=nil, cloudtags=nil, isaddedonthefifteen=nil, iplist=nil, vpcid=nil, machineextrainfo=nil, instanceid=nil, remark=nil)
          @MachineName = machinename
          @MachineOs = machineos
          @MachineStatus = machinestatus
          @Uuid = uuid
          @Quuid = quuid
          @VulNum = vulnum
          @MachineIp = machineip
          @IsProVersion = isproversion
          @MachineWanIp = machinewanip
          @PayMode = paymode
          @MalwareNum = malwarenum
          @Tag = tag
          @BaselineNum = baselinenum
          @CyberAttackNum = cyberattacknum
          @SecurityStatus = securitystatus
          @InvasionNum = invasionnum
          @RegionInfo = regioninfo
          @InstanceState = instancestate
          @LicenseStatus = licensestatus
          @ProjectId = projectid
          @HasAssetScan = hasassetscan
          @MachineType = machinetype
          @KernelVersion = kernelversion
          @ProtectType = protecttype
          @CloudTags = cloudtags
          @IsAddedOnTheFifteen = isaddedonthefifteen
          @IpList = iplist
          @VpcId = vpcid
          @MachineExtraInfo = machineextrainfo
          @InstanceId = instanceid
          @Remark = remark
        end

        def deserialize(params)
          @MachineName = params['MachineName']
          @MachineOs = params['MachineOs']
          @MachineStatus = params['MachineStatus']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @VulNum = params['VulNum']
          @MachineIp = params['MachineIp']
          @IsProVersion = params['IsProVersion']
          @MachineWanIp = params['MachineWanIp']
          @PayMode = params['PayMode']
          @MalwareNum = params['MalwareNum']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @BaselineNum = params['BaselineNum']
          @CyberAttackNum = params['CyberAttackNum']
          @SecurityStatus = params['SecurityStatus']
          @InvasionNum = params['InvasionNum']
          unless params['RegionInfo'].nil?
            @RegionInfo = RegionInfo.new
            @RegionInfo.deserialize(params['RegionInfo'])
          end
          @InstanceState = params['InstanceState']
          @LicenseStatus = params['LicenseStatus']
          @ProjectId = params['ProjectId']
          @HasAssetScan = params['HasAssetScan']
          @MachineType = params['MachineType']
          @KernelVersion = params['KernelVersion']
          @ProtectType = params['ProtectType']
          unless params['CloudTags'].nil?
            @CloudTags = []
            params['CloudTags'].each do |i|
              tags_tmp = Tags.new
              tags_tmp.deserialize(i)
              @CloudTags << tags_tmp
            end
          end
          @IsAddedOnTheFifteen = params['IsAddedOnTheFifteen']
          @IpList = params['IpList']
          @VpcId = params['VpcId']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @InstanceId = params['InstanceId']
          @Remark = params['Remark']
        end
      end

      # 机器清理记录对象
      class MachineClearHistory < TencentCloud::Common::AbstractModel
        # @param Id: ID值
        # @type Id: Integer
        # @param InstanceId: 实例ID
        # @type InstanceId: String
        # @param InstanceName: 实例名称
        # @type InstanceName: String
        # @param PublicIp: 公网IP
        # @type PublicIp: String
        # @param PrivateIp: 内网IP
        # @type PrivateIp: String
        # @param AgentLastOfflineTime: 客户端最后离线时间
        # @type AgentLastOfflineTime: String
        # @param CreateTime: 创建时间
        # @type CreateTime: String

        attr_accessor :Id, :InstanceId, :InstanceName, :PublicIp, :PrivateIp, :AgentLastOfflineTime, :CreateTime

        def initialize(id=nil, instanceid=nil, instancename=nil, publicip=nil, privateip=nil, agentlastofflinetime=nil, createtime=nil)
          @Id = id
          @InstanceId = instanceid
          @InstanceName = instancename
          @PublicIp = publicip
          @PrivateIp = privateip
          @AgentLastOfflineTime = agentlastofflinetime
          @CreateTime = createtime
        end

        def deserialize(params)
          @Id = params['Id']
          @InstanceId = params['InstanceId']
          @InstanceName = params['InstanceName']
          @PublicIp = params['PublicIp']
          @PrivateIp = params['PrivateIp']
          @AgentLastOfflineTime = params['AgentLastOfflineTime']
          @CreateTime = params['CreateTime']
        end
      end

      # 服务器基础信息
      class MachineExtraInfo < TencentCloud::Common::AbstractModel
        # @param WanIP: 公网IP
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type WanIP: String
        # @param PrivateIP: 内网IP
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PrivateIP: String
        # @param NetworkType: 网络类型,1:vpc网络 2:基础网络 3:非腾讯云网络
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NetworkType: Integer
        # @param NetworkName: 网络名,vpc网络情况下会返回vpc_id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NetworkName: String
        # @param InstanceID: 实例ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceID: String
        # @param HostName: 主机名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String

        attr_accessor :WanIP, :PrivateIP, :NetworkType, :NetworkName, :InstanceID, :HostName

        def initialize(wanip=nil, privateip=nil, networktype=nil, networkname=nil, instanceid=nil, hostname=nil)
          @WanIP = wanip
          @PrivateIP = privateip
          @NetworkType = networktype
          @NetworkName = networkname
          @InstanceID = instanceid
          @HostName = hostname
        end

        def deserialize(params)
          @WanIP = params['WanIP']
          @PrivateIP = params['PrivateIP']
          @NetworkType = params['NetworkType']
          @NetworkName = params['NetworkName']
          @InstanceID = params['InstanceID']
          @HostName = params['HostName']
        end
      end

      # 查询主机相关核心文件监控规则详情
      class MachineFileTamperRule < TencentCloud::Common::AbstractModel
        # @param Name: 规则名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String
        # @param RuleCategory: 规则类型 0 :系统规则  1:用户规则
        # @type RuleCategory: Integer
        # @param Rule: 规则
        # @type Rule: Array
        # @param Id: 唯一id
        # @type Id: Integer

        attr_accessor :Name, :RuleCategory, :Rule, :Id

        def initialize(name=nil, rulecategory=nil, rule=nil, id=nil)
          @Name = name
          @RuleCategory = rulecategory
          @Rule = rule
          @Id = id
        end

        def deserialize(params)
          @Name = params['Name']
          @RuleCategory = params['RuleCategory']
          unless params['Rule'].nil?
            @Rule = []
            params['Rule'].each do |i|
              filetamperrule_tmp = FileTamperRule.new
              filetamperrule_tmp.deserialize(i)
              @Rule << filetamperrule_tmp
            end
          end
          @Id = params['Id']
        end
      end

      # 机器绑定授权信息
      class MachineLicenseDetail < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机quuid
        # @type Quuid: String
        # @param PayMode: xx
        # @type PayMode: Integer
        # @param ResourceId: xxx
        # @type ResourceId: String
        # @param InquireKey: xxx
        # @type InquireKey: String
        # @param SourceType: xxx
        # @type SourceType: Integer

        attr_accessor :Quuid, :PayMode, :ResourceId, :InquireKey, :SourceType

        def initialize(quuid=nil, paymode=nil, resourceid=nil, inquirekey=nil, sourcetype=nil)
          @Quuid = quuid
          @PayMode = paymode
          @ResourceId = resourceid
          @InquireKey = inquirekey
          @SourceType = sourcetype
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @PayMode = params['PayMode']
          @ResourceId = params['ResourceId']
          @InquireKey = params['InquireKey']
          @SourceType = params['SourceType']
        end
      end

      # 主机列表穿梭框
      class MachineSimple < TencentCloud::Common::AbstractModel
        # @param MachineName: 主机名称。
        # @type MachineName: String
        # @param MachineOs: 主机系统。
        # @type MachineOs: String
        # @param Uuid: 云镜客户端唯一Uuid,若客户端长时间不在线将返回空字符。
        # @type Uuid: String
        # @param Quuid: CVM或BM机器唯一Uuid。
        # @type Quuid: String
        # @param MachineIp: 主机IP。
        # @type MachineIp: String
        # @param IsProVersion: 是否是专业版。
        # <li>true: 是</li>
        # <li>false:否</li>
        # @type IsProVersion: Boolean
        # @param MachineWanIp: 主机外网IP。
        # @type MachineWanIp: String
        # @param PayMode: 主机状态。
        # <li>POSTPAY: 表示后付费,即按量计费  </li>
        # <li>PREPAY: 表示预付费,即包年包月</li>
        # @type PayMode: String
        # @param Tag: 标签信息
        # @type Tag: Array
        # @param RegionInfo: 地域信息
        # @type RegionInfo: :class:`Tencentcloud::Cwp.v20180228.models.RegionInfo`
        # @param InstanceState: 实例状态 TERMINATED_PRO_VERSION 已销毁
        # @type InstanceState: String
        # @param ProjectId: 项目ID
        # @type ProjectId: Integer
        # @param MachineType: 机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        # @type MachineType: String
        # @param KernelVersion: 内核版本
        # @type KernelVersion: String
        # @param ProtectType: 防护版本 BASIC_VERSION 基础版, PRO_VERSION 专业版,Flagship 旗舰版,GENERAL_DISCOUNT 普惠版.
        # @type ProtectType: String
        # @param LicenseOrder: 授权订单对象
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LicenseOrder: :class:`Tencentcloud::Cwp.v20180228.models.LicenseOrder`
        # @param CloudTags: 云标签信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CloudTags: Array
        # @param InstanceId: 实例ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceId: String

        attr_accessor :MachineName, :MachineOs, :Uuid, :Quuid, :MachineIp, :IsProVersion, :MachineWanIp, :PayMode, :Tag, :RegionInfo, :InstanceState, :ProjectId, :MachineType, :KernelVersion, :ProtectType, :LicenseOrder, :CloudTags, :InstanceId

        def initialize(machinename=nil, machineos=nil, uuid=nil, quuid=nil, machineip=nil, isproversion=nil, machinewanip=nil, paymode=nil, tag=nil, regioninfo=nil, instancestate=nil, projectid=nil, machinetype=nil, kernelversion=nil, protecttype=nil, licenseorder=nil, cloudtags=nil, instanceid=nil)
          @MachineName = machinename
          @MachineOs = machineos
          @Uuid = uuid
          @Quuid = quuid
          @MachineIp = machineip
          @IsProVersion = isproversion
          @MachineWanIp = machinewanip
          @PayMode = paymode
          @Tag = tag
          @RegionInfo = regioninfo
          @InstanceState = instancestate
          @ProjectId = projectid
          @MachineType = machinetype
          @KernelVersion = kernelversion
          @ProtectType = protecttype
          @LicenseOrder = licenseorder
          @CloudTags = cloudtags
          @InstanceId = instanceid
        end

        def deserialize(params)
          @MachineName = params['MachineName']
          @MachineOs = params['MachineOs']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @MachineIp = params['MachineIp']
          @IsProVersion = params['IsProVersion']
          @MachineWanIp = params['MachineWanIp']
          @PayMode = params['PayMode']
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          unless params['RegionInfo'].nil?
            @RegionInfo = RegionInfo.new
            @RegionInfo.deserialize(params['RegionInfo'])
          end
          @InstanceState = params['InstanceState']
          @ProjectId = params['ProjectId']
          @MachineType = params['MachineType']
          @KernelVersion = params['KernelVersion']
          @ProtectType = params['ProtectType']
          unless params['LicenseOrder'].nil?
            @LicenseOrder = LicenseOrder.new
            @LicenseOrder.deserialize(params['LicenseOrder'])
          end
          unless params['CloudTags'].nil?
            @CloudTags = []
            params['CloudTags'].each do |i|
              tags_tmp = Tags.new
              tags_tmp.deserialize(i)
              @CloudTags << tags_tmp
            end
          end
          @InstanceId = params['InstanceId']
        end
      end

      # 机器快照信息
      class MachineSnapshotInfo < TencentCloud::Common::AbstractModel
        # @param Quuid: cvm id
        # @type Quuid: String
        # @param HostName: 主机名称
        # @type HostName: String
        # @param HostIp: 主机ip
        # @type HostIp: String
        # @param SnapshotName: 快照名称
        # @type SnapshotName: String
        # @param CreateTime: 快照创建时间
        # @type CreateTime: String
        # @param DiskId: 磁盘id
        # @type DiskId: String
        # @param InstanceId: 实例Id
        # @type InstanceId: String
        # @param RegionId: 地区id
        # @type RegionId: Integer
        # @param SnapshotId: 快照id
        # @type SnapshotId: String

        attr_accessor :Quuid, :HostName, :HostIp, :SnapshotName, :CreateTime, :DiskId, :InstanceId, :RegionId, :SnapshotId

        def initialize(quuid=nil, hostname=nil, hostip=nil, snapshotname=nil, createtime=nil, diskid=nil, instanceid=nil, regionid=nil, snapshotid=nil)
          @Quuid = quuid
          @HostName = hostname
          @HostIp = hostip
          @SnapshotName = snapshotname
          @CreateTime = createtime
          @DiskId = diskid
          @InstanceId = instanceid
          @RegionId = regionid
          @SnapshotId = snapshotid
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @SnapshotName = params['SnapshotName']
          @CreateTime = params['CreateTime']
          @DiskId = params['DiskId']
          @InstanceId = params['InstanceId']
          @RegionId = params['RegionId']
          @SnapshotId = params['SnapshotId']
        end
      end

      # 服务器标签信息
      class MachineTag < TencentCloud::Common::AbstractModel
        # @param Rid: 关联标签ID
        # @type Rid: Integer
        # @param Name: 标签名
        # @type Name: String
        # @param TagId: 标签ID
        # @type TagId: Integer

        attr_accessor :Rid, :Name, :TagId

        def initialize(rid=nil, name=nil, tagid=nil)
          @Rid = rid
          @Name = name
          @TagId = tagid
        end

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

      # 木马列表集合
      class MalWareList < TencentCloud::Common::AbstractModel
        # @param HostIp: 服务器ip
        # @type HostIp: String
        # @param Uuid: 唯一UUID
        # @type Uuid: String
        # @param FilePath: 路径
        # @type FilePath: String
        # @param VirusName: 描述
        # @type VirusName: String
        # @param Status: 状态;4-:待处理,5-已信任,6-已隔离,8-文件已删除, 14:已处理
        # @type Status: Integer
        # @param Id: 唯一ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Id: Integer
        # @param Alias: 主机别名
        # @type Alias: String
        # @param Tags: 特性标签,已废弃字段,不会再返回标签,详情中才会返回标签信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tags: Array
        # @param FileCreateTime: 首次运行时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FileCreateTime: String
        # @param FileModifierTime: 最近运行时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FileModifierTime: String
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param LatestScanTime: 最近扫描时间
        # @type LatestScanTime: String
        # @param Level: 风险等级 0未知、1低、2中、3高、4严重
        # @type Level: Integer
        # @param CheckPlatform: '木马检测平台用,分割 1云查杀引擎、2TAV、3binaryAi、4异常行为、5威胁情报
        # @type CheckPlatform: String
        # @param ProcessExists: 木马进程是否存在 0:不存在,1:存在
        # @type ProcessExists: Integer
        # @param FileExists: 木马文件是否存在 0:不存在,1:存在
        # @type FileExists: Integer
        # @param Quuid: cvm quuid
        # @type Quuid: String
        # @param MD5: 木马样本md5
        # @type MD5: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :HostIp, :Uuid, :FilePath, :VirusName, :Status, :Id, :Alias, :Tags, :FileCreateTime, :FileModifierTime, :CreateTime, :LatestScanTime, :Level, :CheckPlatform, :ProcessExists, :FileExists, :Quuid, :MD5, :MachineExtraInfo

        def initialize(hostip=nil, uuid=nil, filepath=nil, virusname=nil, status=nil, id=nil, _alias=nil, tags=nil, filecreatetime=nil, filemodifiertime=nil, createtime=nil, latestscantime=nil, level=nil, checkplatform=nil, processexists=nil, fileexists=nil, quuid=nil, md5=nil, machineextrainfo=nil)
          @HostIp = hostip
          @Uuid = uuid
          @FilePath = filepath
          @VirusName = virusname
          @Status = status
          @Id = id
          @Alias = _alias
          @Tags = tags
          @FileCreateTime = filecreatetime
          @FileModifierTime = filemodifiertime
          @CreateTime = createtime
          @LatestScanTime = latestscantime
          @Level = level
          @CheckPlatform = checkplatform
          @ProcessExists = processexists
          @FileExists = fileexists
          @Quuid = quuid
          @MD5 = md5
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @HostIp = params['HostIp']
          @Uuid = params['Uuid']
          @FilePath = params['FilePath']
          @VirusName = params['VirusName']
          @Status = params['Status']
          @Id = params['Id']
          @Alias = params['Alias']
          @Tags = params['Tags']
          @FileCreateTime = params['FileCreateTime']
          @FileModifierTime = params['FileModifierTime']
          @CreateTime = params['CreateTime']
          @LatestScanTime = params['LatestScanTime']
          @Level = params['Level']
          @CheckPlatform = params['CheckPlatform']
          @ProcessExists = params['ProcessExists']
          @FileExists = params['FileExists']
          @Quuid = params['Quuid']
          @MD5 = params['MD5']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 恶意请求白名单列表信息
      class MaliciousRequestWhiteListInfo < TencentCloud::Common::AbstractModel
        # @param Id: 白名单id
        # @type Id: Integer
        # @param Domain: 域名
        # @type Domain: String
        # @param Mark: 备注
        # @type Mark: String
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 更新时间
        # @type ModifyTime: String

        attr_accessor :Id, :Domain, :Mark, :CreateTime, :ModifyTime

        def initialize(id=nil, domain=nil, mark=nil, createtime=nil, modifytime=nil)
          @Id = id
          @Domain = domain
          @Mark = mark
          @CreateTime = createtime
          @ModifyTime = modifytime
        end

        def deserialize(params)
          @Id = params['Id']
          @Domain = params['Domain']
          @Mark = params['Mark']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
        end
      end

      # 恶意文件详情
      class MalwareInfo < TencentCloud::Common::AbstractModel
        # @param VirusName: 病毒名称
        # @type VirusName: String
        # @param FileSize: 文件大小
        # @type FileSize: Integer
        # @param MD5: 文件MD5
        # @type MD5: String
        # @param FilePath: 文件地址
        # @type FilePath: String
        # @param FileCreateTime: 首次运行时间
        # @type FileCreateTime: String
        # @param FileModifierTime: 最近一次运行时间
        # @type FileModifierTime: String
        # @param HarmDescribe: 危害描述
        # @type HarmDescribe: String
        # @param SuggestScheme: 建议方案
        # @type SuggestScheme: String
        # @param ServersName: 服务器名称
        # @type ServersName: String
        # @param HostIp: 服务器IP
        # @type HostIp: String
        # @param ProcessName: 进程名称
        # @type ProcessName: String
        # @param ProcessID: 进程ID
        # @type ProcessID: String
        # @param Tags: 标签特性
        # @type Tags: Array
        # @param Breadth: 影响广度 // 暂时不提供
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Breadth: String
        # @param Heat: 查询热度 // 暂时不提供
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Heat: String
        # @param Id: 唯一ID
        # @type Id: Integer
        # @param FileName: 文件名称
        # @type FileName: String
        # @param CreateTime: 首次发现时间
        # @type CreateTime: String
        # @param LatestScanTime: 最近扫描时间
        # @type LatestScanTime: String
        # @param Reference: 参考链接
        # @type Reference: String
        # @param MachineWanIp: 外网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineWanIp: String
        # @param PsTree: 进程树 json  pid:进程id,exe:文件路径 ,account:进程所属用组和用户 ,cmdline:执行命令,ssh_service: SSH服务ip, ssh_soure:登录源
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PsTree: String
        # @param MachineStatus: 主机在线状态 OFFLINE  ONLINE
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineStatus: String
        # @param Status: 状态;4-:待处理,5-已信任,6-已隔离
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Status: Integer
        # @param Level: 风险等级 0提示、1低、2中、3高、4严重
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param CheckPlatform: 木马检测平台用,分割 1云查杀引擎、2TAV、3binaryAi、4异常行为、5威胁情报
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CheckPlatform: String
        # @param Uuid: 主机uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param ModifyTime: 最近修改时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param StrFileAccessTime: 最近访问时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrFileAccessTime: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :VirusName, :FileSize, :MD5, :FilePath, :FileCreateTime, :FileModifierTime, :HarmDescribe, :SuggestScheme, :ServersName, :HostIp, :ProcessName, :ProcessID, :Tags, :Breadth, :Heat, :Id, :FileName, :CreateTime, :LatestScanTime, :Reference, :MachineWanIp, :PsTree, :MachineStatus, :Status, :Level, :CheckPlatform, :Uuid, :ModifyTime, :StrFileAccessTime, :MachineExtraInfo

        def initialize(virusname=nil, filesize=nil, md5=nil, filepath=nil, filecreatetime=nil, filemodifiertime=nil, harmdescribe=nil, suggestscheme=nil, serversname=nil, hostip=nil, processname=nil, processid=nil, tags=nil, breadth=nil, heat=nil, id=nil, filename=nil, createtime=nil, latestscantime=nil, reference=nil, machinewanip=nil, pstree=nil, machinestatus=nil, status=nil, level=nil, checkplatform=nil, uuid=nil, modifytime=nil, strfileaccesstime=nil, machineextrainfo=nil)
          @VirusName = virusname
          @FileSize = filesize
          @MD5 = md5
          @FilePath = filepath
          @FileCreateTime = filecreatetime
          @FileModifierTime = filemodifiertime
          @HarmDescribe = harmdescribe
          @SuggestScheme = suggestscheme
          @ServersName = serversname
          @HostIp = hostip
          @ProcessName = processname
          @ProcessID = processid
          @Tags = tags
          @Breadth = breadth
          @Heat = heat
          @Id = id
          @FileName = filename
          @CreateTime = createtime
          @LatestScanTime = latestscantime
          @Reference = reference
          @MachineWanIp = machinewanip
          @PsTree = pstree
          @MachineStatus = machinestatus
          @Status = status
          @Level = level
          @CheckPlatform = checkplatform
          @Uuid = uuid
          @ModifyTime = modifytime
          @StrFileAccessTime = strfileaccesstime
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @VirusName = params['VirusName']
          @FileSize = params['FileSize']
          @MD5 = params['MD5']
          @FilePath = params['FilePath']
          @FileCreateTime = params['FileCreateTime']
          @FileModifierTime = params['FileModifierTime']
          @HarmDescribe = params['HarmDescribe']
          @SuggestScheme = params['SuggestScheme']
          @ServersName = params['ServersName']
          @HostIp = params['HostIp']
          @ProcessName = params['ProcessName']
          @ProcessID = params['ProcessID']
          @Tags = params['Tags']
          @Breadth = params['Breadth']
          @Heat = params['Heat']
          @Id = params['Id']
          @FileName = params['FileName']
          @CreateTime = params['CreateTime']
          @LatestScanTime = params['LatestScanTime']
          @Reference = params['Reference']
          @MachineWanIp = params['MachineWanIp']
          @PsTree = params['PsTree']
          @MachineStatus = params['MachineStatus']
          @Status = params['Status']
          @Level = params['Level']
          @CheckPlatform = params['CheckPlatform']
          @Uuid = params['Uuid']
          @ModifyTime = params['ModifyTime']
          @StrFileAccessTime = params['StrFileAccessTime']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 恶意文件风险提示列表信息
      class MalwareRisk < TencentCloud::Common::AbstractModel
        # @param MachineIp: 机器IP
        # @type MachineIp: String
        # @param VirusName: 病毒名
        # @type VirusName: String
        # @param CreateTime: 发现时间
        # @type CreateTime: String
        # @param Id: 唯一ID
        # @type Id: Integer

        attr_accessor :MachineIp, :VirusName, :CreateTime, :Id

        def initialize(machineip=nil, virusname=nil, createtime=nil, id=nil)
          @MachineIp = machineip
          @VirusName = virusname
          @CreateTime = createtime
          @Id = id
        end

        def deserialize(params)
          @MachineIp = params['MachineIp']
          @VirusName = params['VirusName']
          @CreateTime = params['CreateTime']
          @Id = params['Id']
        end
      end

      # 文件查杀概览信息
      class MalwareRiskOverview < TencentCloud::Common::AbstractModel
        # @param HostCount: 影响主机数
        # @type HostCount: Integer
        # @param ProcessCount: 异常进程数
        # @type ProcessCount: Integer
        # @param FileCount: 恶意文件数
        # @type FileCount: Integer
        # @param IsFirstScan: 是否首次扫描[false:否|true:是]
        # @type IsFirstScan: Boolean
        # @param ScanTime: 最后扫描时间
        # @type ScanTime: String

        attr_accessor :HostCount, :ProcessCount, :FileCount, :IsFirstScan, :ScanTime

        def initialize(hostcount=nil, processcount=nil, filecount=nil, isfirstscan=nil, scantime=nil)
          @HostCount = hostcount
          @ProcessCount = processcount
          @FileCount = filecount
          @IsFirstScan = isfirstscan
          @ScanTime = scantime
        end

        def deserialize(params)
          @HostCount = params['HostCount']
          @ProcessCount = params['ProcessCount']
          @FileCount = params['FileCount']
          @IsFirstScan = params['IsFirstScan']
          @ScanTime = params['ScanTime']
        end
      end

      # 木马白名单影响事件信息
      class MalwareWhiteListAffectEvent < TencentCloud::Common::AbstractModel
        # @param Id: 唯一ID。
        # @type Id: Integer
        # @param HostIp: 主机ip
        # @type HostIp: String
        # @param Md5: 影响的md5
        # @type Md5: String
        # @param FilePath: 文件路径
        # @type FilePath: String
        # @param CreateTime: 添加时间
        # @type CreateTime: String

        attr_accessor :Id, :HostIp, :Md5, :FilePath, :CreateTime

        def initialize(id=nil, hostip=nil, md5=nil, filepath=nil, createtime=nil)
          @Id = id
          @HostIp = hostip
          @Md5 = md5
          @FilePath = filepath
          @CreateTime = createtime
        end

        def deserialize(params)
          @Id = params['Id']
          @HostIp = params['HostIp']
          @Md5 = params['Md5']
          @FilePath = params['FilePath']
          @CreateTime = params['CreateTime']
        end
      end

      # 木马白名单信息
      class MalwareWhiteListInfo < TencentCloud::Common::AbstractModel
        # @param Id: 唯一ID。
        # @type Id: Integer
        # @param QuuidList: cvm quuid 按,分割。
        # @type QuuidList: String
        # @param Md5List: md5列表 按,分割
        # @type Md5List: String
        # @param IsGlobal: 是否全部主机; 0否,1是
        # @type IsGlobal: Integer
        # @param Mode: 白名单模式;0 MD5 ,1自定义
        # @type Mode: Integer
        # @param MatchType: 匹配模式;0精确匹配,1模糊匹配
        # @type MatchType: Integer
        # @param FileName: 文件名;按,分割
        # @type FileName: String
        # @param FileDirectory: 文件目录;按,分割
        # @type FileDirectory: String
        # @param FileExtension: 文件后缀;按,分割
        # @type FileExtension: String
        # @param CreateTime: 规则创建时间
        # @type CreateTime: String
        # @param EventsCount: 受影响记录
        # @type EventsCount: Integer

        attr_accessor :Id, :QuuidList, :Md5List, :IsGlobal, :Mode, :MatchType, :FileName, :FileDirectory, :FileExtension, :CreateTime, :EventsCount

        def initialize(id=nil, quuidlist=nil, md5list=nil, isglobal=nil, mode=nil, matchtype=nil, filename=nil, filedirectory=nil, fileextension=nil, createtime=nil, eventscount=nil)
          @Id = id
          @QuuidList = quuidlist
          @Md5List = md5list
          @IsGlobal = isglobal
          @Mode = mode
          @MatchType = matchtype
          @FileName = filename
          @FileDirectory = filedirectory
          @FileExtension = fileextension
          @CreateTime = createtime
          @EventsCount = eventscount
        end

        def deserialize(params)
          @Id = params['Id']
          @QuuidList = params['QuuidList']
          @Md5List = params['Md5List']
          @IsGlobal = params['IsGlobal']
          @Mode = params['Mode']
          @MatchType = params['MatchType']
          @FileName = params['FileName']
          @FileDirectory = params['FileDirectory']
          @FileExtension = params['FileExtension']
          @CreateTime = params['CreateTime']
          @EventsCount = params['EventsCount']
        end
      end

      # ModifyAutoOpenProVersionConfig请求参数结构体
      class ModifyAutoOpenProVersionConfigRequest < TencentCloud::Common::AbstractModel
        # @param Status: 设置自动开通状态。
        # <li>CLOSE:关闭</li>
        # <li>OPEN:打开</li>
        # @type Status: String
        # @param AutoRepurchaseSwitch: 自动加购/扩容授权开关,默认 1, 0关闭, 1开启
        # @type AutoRepurchaseSwitch: Integer
        # @param AutoRepurchaseRenewSwitch: 自动加购的订单是否自动续费,默认0 ,0关闭, 1开启
        # @type AutoRepurchaseRenewSwitch: Integer
        # @param RepurchaseRenewSwitch: 手动购买的订单是否自动续费,默认0, 0关闭 ,1 开启
        # @type RepurchaseRenewSwitch: Integer

        attr_accessor :Status, :AutoRepurchaseSwitch, :AutoRepurchaseRenewSwitch, :RepurchaseRenewSwitch

        def initialize(status=nil, autorepurchaseswitch=nil, autorepurchaserenewswitch=nil, repurchaserenewswitch=nil)
          @Status = status
          @AutoRepurchaseSwitch = autorepurchaseswitch
          @AutoRepurchaseRenewSwitch = autorepurchaserenewswitch
          @RepurchaseRenewSwitch = repurchaserenewswitch
        end

        def deserialize(params)
          @Status = params['Status']
          @AutoRepurchaseSwitch = params['AutoRepurchaseSwitch']
          @AutoRepurchaseRenewSwitch = params['AutoRepurchaseRenewSwitch']
          @RepurchaseRenewSwitch = params['RepurchaseRenewSwitch']
        end
      end

      # ModifyAutoOpenProVersionConfig返回参数结构体
      class ModifyAutoOpenProVersionConfigResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBanMode请求参数结构体
      class ModifyBanModeRequest < TencentCloud::Common::AbstractModel
        # @param Mode: 阻断模式,STANDARD_MODE:标准阻断,DEEP_MODE:深度阻断
        # @type Mode: String
        # @param Ttl: 阻断时间,用于标准阻断模式
        # @type Ttl: Integer

        attr_accessor :Mode, :Ttl

        def initialize(mode=nil, ttl=nil)
          @Mode = mode
          @Ttl = ttl
        end

        def deserialize(params)
          @Mode = params['Mode']
          @Ttl = params['Ttl']
        end
      end

      # ModifyBanMode返回参数结构体
      class ModifyBanModeResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBanStatus请求参数结构体
      class ModifyBanStatusRequest < TencentCloud::Common::AbstractModel
        # @param Status: 阻断状态 0:关闭 1:开启
        # @type Status: Integer

        attr_accessor :Status

        def initialize(status=nil)
          @Status = status
        end

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

      # ModifyBanStatus返回参数结构体
      class ModifyBanStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBanWhiteList请求参数结构体
      class ModifyBanWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Rules: 修改白名单规则项
        # @type Rules: :class:`Tencentcloud::Cwp.v20180228.models.BanWhiteList`

        attr_accessor :Rules

        def initialize(rules=nil)
          @Rules = rules
        end

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

      # ModifyBanWhiteList返回参数结构体
      class ModifyBanWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBaselinePolicy请求参数结构体
      class ModifyBaselinePolicyRequest < TencentCloud::Common::AbstractModel
        # @param Data: 无
        # @type Data: :class:`Tencentcloud::Cwp.v20180228.models.BaselinePolicy`
        # @param Filters: <li>RuleName - String - 是否必填:否 - 规则名称</li>
        # <li>CategoryId - int64 - 是否必填:否 自定义筛选为-1 - 规则分类</li>
        # <li>RuleType - int - 是否必填:否 0:系统 1:自定义 - 规则类型</li>
        # @type Filters: Array
        # @param SelectAll: 是否按照过滤的全选
        # @type SelectAll: Integer

        attr_accessor :Data, :Filters, :SelectAll

        def initialize(data=nil, filters=nil, selectall=nil)
          @Data = data
          @Filters = filters
          @SelectAll = selectall
        end

        def deserialize(params)
          unless params['Data'].nil?
            @Data = BaselinePolicy.new
            @Data.deserialize(params['Data'])
          end
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @SelectAll = params['SelectAll']
        end
      end

      # ModifyBaselinePolicy返回参数结构体
      class ModifyBaselinePolicyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBaselinePolicyState请求参数结构体
      class ModifyBaselinePolicyStateRequest < TencentCloud::Common::AbstractModel
        # @param PolicyId: 策略Id
        # @type PolicyId: Integer
        # @param IsEnabled: 开启状态[1:开启|0:未开启]
        # @type IsEnabled: Integer

        attr_accessor :PolicyId, :IsEnabled

        def initialize(policyid=nil, isenabled=nil)
          @PolicyId = policyid
          @IsEnabled = isenabled
        end

        def deserialize(params)
          @PolicyId = params['PolicyId']
          @IsEnabled = params['IsEnabled']
        end
      end

      # ModifyBaselinePolicyState返回参数结构体
      class ModifyBaselinePolicyStateResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBaselineRuleIgnore请求参数结构体
      class ModifyBaselineRuleIgnoreRequest < TencentCloud::Common::AbstractModel
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param AssetType: 资产类型[0:所有专业版旗舰版|1:id|2:ip]
        # @type AssetType: Integer
        # @param RuleId: 规则Id
        # @type RuleId: Integer
        # @param ItemIds: 关联项
        # @type ItemIds: Array
        # @param HostIds: 主机Id
        # @type HostIds: Array
        # @param HostIps: 主机Ip
        # @type HostIps: Array
        # @param SelectAll: 是否全选过滤
        # @type SelectAll: Integer
        # @param Filters: <li>ItemName - string - 是否必填:否 - 项名称</li>
        # @type Filters: Array

        attr_accessor :RuleName, :AssetType, :RuleId, :ItemIds, :HostIds, :HostIps, :SelectAll, :Filters

        def initialize(rulename=nil, assettype=nil, ruleid=nil, itemids=nil, hostids=nil, hostips=nil, selectall=nil, filters=nil)
          @RuleName = rulename
          @AssetType = assettype
          @RuleId = ruleid
          @ItemIds = itemids
          @HostIds = hostids
          @HostIps = hostips
          @SelectAll = selectall
          @Filters = filters
        end

        def deserialize(params)
          @RuleName = params['RuleName']
          @AssetType = params['AssetType']
          @RuleId = params['RuleId']
          @ItemIds = params['ItemIds']
          @HostIds = params['HostIds']
          @HostIps = params['HostIps']
          @SelectAll = params['SelectAll']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # ModifyBaselineRuleIgnore返回参数结构体
      class ModifyBaselineRuleIgnoreResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBaselineRule请求参数结构体
      class ModifyBaselineRuleRequest < TencentCloud::Common::AbstractModel
        # @param Data: 无
        # @type Data: :class:`Tencentcloud::Cwp.v20180228.models.BaselineRule`
        # @param SelectAll: 是否过滤全选
        # @type SelectAll: Integer
        # @param Filters: <li>ItemName - string - 是否必填:否 - 项名称</li>
        # @type Filters: Array

        attr_accessor :Data, :SelectAll, :Filters

        def initialize(data=nil, selectall=nil, filters=nil)
          @Data = data
          @SelectAll = selectall
          @Filters = filters
        end

        def deserialize(params)
          unless params['Data'].nil?
            @Data = BaselineRule.new
            @Data.deserialize(params['Data'])
          end
          @SelectAll = params['SelectAll']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
        end
      end

      # ModifyBaselineRule返回参数结构体
      class ModifyBaselineRuleResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBaselineWeakPassword请求参数结构体
      class ModifyBaselineWeakPasswordRequest < TencentCloud::Common::AbstractModel
        # @param Data: 无
        # @type Data: Array

        attr_accessor :Data

        def initialize(data=nil)
          @Data = data
        end

        def deserialize(params)
          unless params['Data'].nil?
            @Data = []
            params['Data'].each do |i|
              baselineweakpassword_tmp = BaselineWeakPassword.new
              baselineweakpassword_tmp.deserialize(i)
              @Data << baselineweakpassword_tmp
            end
          end
        end
      end

      # ModifyBaselineWeakPassword返回参数结构体
      class ModifyBaselineWeakPasswordResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBashPolicy请求参数结构体
      class ModifyBashPolicyRequest < TencentCloud::Common::AbstractModel
        # @param Policy: 具体的策略配置
        # @type Policy: :class:`Tencentcloud::Cwp.v20180228.models.BashPolicy`

        attr_accessor :Policy

        def initialize(policy=nil)
          @Policy = policy
        end

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

      # ModifyBashPolicy返回参数结构体
      class ModifyBashPolicyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBashPolicyStatus请求参数结构体
      class ModifyBashPolicyStatusRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则ID
        # @type Id: Integer
        # @param Enable: 是否禁用
        # @type Enable: Integer

        attr_accessor :Id, :Enable

        def initialize(id=nil, enable=nil)
          @Id = id
          @Enable = enable
        end

        def deserialize(params)
          @Id = params['Id']
          @Enable = params['Enable']
        end
      end

      # ModifyBashPolicyStatus返回参数结构体
      class ModifyBashPolicyStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyBruteAttackRules请求参数结构体
      class ModifyBruteAttackRulesRequest < TencentCloud::Common::AbstractModel
        # @param Rules: 暴力破解判断规则
        # @type Rules: Array

        attr_accessor :Rules

        def initialize(rules=nil)
          @Rules = rules
        end

        def deserialize(params)
          unless params['Rules'].nil?
            @Rules = []
            params['Rules'].each do |i|
              bruteattackrule_tmp = BruteAttackRule.new
              bruteattackrule_tmp.deserialize(i)
              @Rules << bruteattackrule_tmp
            end
          end
        end
      end

      # ModifyBruteAttackRules返回参数结构体
      class ModifyBruteAttackRulesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyEventAttackStatus请求参数结构体
      class ModifyEventAttackStatusRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 需要修改的事件id 数组,支持批量
        # @type Ids: Array
        # @param All: 是否更新全部,即是否对所有的事件进行操作,当ids 不为空时,此参数无效
        # @type All: Boolean
        # @param Status: 0:待处理 1:已处理 2: 已加白 3: 已忽略 4:已删除
        # @type Status: Integer
        # @param Filters: 过滤条件。
        # <li>Type - String 攻击状态 0: 尝试攻击 1: 攻击成功 - 是否必填: 否</li>
        # <li>Status - String 事件处理状态 0:待处理 1:已处理 2: 已加白 3: 已忽略 4:已删除  - 是否必填: 否</li>
        # <li>SrcIP - String 来源IP - 是否必填: 否</li>
        # <li>DstPort - String 攻击目标端口 - 是否必填: 否</li>
        # <li>MachineName - String 主机名称 - 是否必填: 否</li>
        # <li>InstanceID - String 主机实例ID - 是否必填: 否</li>
        # <li>Quuids - String 主机cvm uuid - 是否必填: 否</li>
        # @type Filters: Array
        # @param ExcludeId: 排除的id
        # @type ExcludeId: Array

        attr_accessor :Ids, :All, :Status, :Filters, :ExcludeId

        def initialize(ids=nil, all=nil, status=nil, filters=nil, excludeid=nil)
          @Ids = ids
          @All = all
          @Status = status
          @Filters = filters
          @ExcludeId = excludeid
        end

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

      # ModifyEventAttackStatus返回参数结构体
      class ModifyEventAttackStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyFileTamperEvents请求参数结构体
      class ModifyFileTamperEventsRequest < TencentCloud::Common::AbstractModel
        # @param Status: Status 1 -- 加白 2 -- 删除 3 - 忽略
        # @type Status: Integer
        # @param Ids: 对应事件id
        # @type Ids: Array

        attr_accessor :Status, :Ids

        def initialize(status=nil, ids=nil)
          @Status = status
          @Ids = ids
        end

        def deserialize(params)
          @Status = params['Status']
          @Ids = params['Ids']
        end
      end

      # ModifyFileTamperEvents返回参数结构体
      class ModifyFileTamperEventsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyFileTamperRule请求参数结构体
      class ModifyFileTamperRuleRequest < TencentCloud::Common::AbstractModel
        # @param Name: 规则名称
        # @type Name: String
        # @param Rules: 规则内容
        # @type Rules: Array
        # @param IsGlobal: 是否全局规则(默认否) 0:否 ,1:是,全局是Uuids 可为空
        # @type IsGlobal: Integer
        # @param Status: 启用状态 0: 启用 1: 已关闭
        # @type Status: Integer
        # @param Id: 规则id  不填或者0表示新增
        # @type Id: Integer
        # @param Uuids: 影响的主机uuid集合
        # @type Uuids: Array
        # @param Level: 风险等级 0:无, 1: 高危, 2:中危, 3: 低危
        # @type Level: Integer
        # @param AddWhiteType: 加白处理类型
        # <li>cur 仅对当前加白</li>
        # <li>all 所有符合条件加白</li>
        # @type AddWhiteType: String

        attr_accessor :Name, :Rules, :IsGlobal, :Status, :Id, :Uuids, :Level, :AddWhiteType

        def initialize(name=nil, rules=nil, isglobal=nil, status=nil, id=nil, uuids=nil, level=nil, addwhitetype=nil)
          @Name = name
          @Rules = rules
          @IsGlobal = isglobal
          @Status = status
          @Id = id
          @Uuids = uuids
          @Level = level
          @AddWhiteType = addwhitetype
        end

        def deserialize(params)
          @Name = params['Name']
          unless params['Rules'].nil?
            @Rules = []
            params['Rules'].each do |i|
              filetamperrule_tmp = FileTamperRule.new
              filetamperrule_tmp.deserialize(i)
              @Rules << filetamperrule_tmp
            end
          end
          @IsGlobal = params['IsGlobal']
          @Status = params['Status']
          @Id = params['Id']
          @Uuids = params['Uuids']
          @Level = params['Level']
          @AddWhiteType = params['AddWhiteType']
        end
      end

      # ModifyFileTamperRule返回参数结构体
      class ModifyFileTamperRuleResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyFileTamperRuleStatus请求参数结构体
      class ModifyFileTamperRuleStatusRequest < TencentCloud::Common::AbstractModel
        # @param Status: 0: 启用1: 关闭2:删除
        # @type Status: Integer
        # @param Ids: 对应事件id
        # @type Ids: Array
        # @param RuleCategory: 是否是系统规则 0=系统规则 1=用户自定义规则,系统规则Status 不支持删除
        # @type RuleCategory: Integer

        attr_accessor :Status, :Ids, :RuleCategory

        def initialize(status=nil, ids=nil, rulecategory=nil)
          @Status = status
          @Ids = ids
          @RuleCategory = rulecategory
        end

        def deserialize(params)
          @Status = params['Status']
          @Ids = params['Ids']
          @RuleCategory = params['RuleCategory']
        end
      end

      # ModifyFileTamperRuleStatus返回参数结构体
      class ModifyFileTamperRuleStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyJavaMemShellPluginSwitch请求参数结构体
      class ModifyJavaMemShellPluginSwitchRequest < TencentCloud::Common::AbstractModel
        # @param Quuids: 主机quuid数组
        # @type Quuids: Array
        # @param JavaShellStatus: 插件目标状态:0: 关闭 1: 开启
        # @type JavaShellStatus: Integer

        attr_accessor :Quuids, :JavaShellStatus

        def initialize(quuids=nil, javashellstatus=nil)
          @Quuids = quuids
          @JavaShellStatus = javashellstatus
        end

        def deserialize(params)
          @Quuids = params['Quuids']
          @JavaShellStatus = params['JavaShellStatus']
        end
      end

      # ModifyJavaMemShellPluginSwitch返回参数结构体
      class ModifyJavaMemShellPluginSwitchResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyJavaMemShellsStatus请求参数结构体
      class ModifyJavaMemShellsStatusRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 事件Id数组
        # @type Ids: Array
        # @param Status: 目标处理状态: 0 - 待处理 1 - 已加白 2 - 已删除 3 - 已忽略 4 - 已手动处理
        # @type Status: Integer

        attr_accessor :Ids, :Status

        def initialize(ids=nil, status=nil)
          @Ids = ids
          @Status = status
        end

        def deserialize(params)
          @Ids = params['Ids']
          @Status = params['Status']
        end
      end

      # ModifyJavaMemShellsStatus返回参数结构体
      class ModifyJavaMemShellsStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyLicenseBinds请求参数结构体
      class ModifyLicenseBindsRequest < TencentCloud::Common::AbstractModel
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param LicenseType: 授权类型
        # @type LicenseType: Integer
        # @param IsAll: 是否全部机器(当全部机器数大于当前订单可用授权数时,多余机器会被跳过)
        # @type IsAll: Boolean
        # @param QuuidList: 需要绑定的机器quuid列表, 当IsAll = false 时必填,反之忽略该参数. 最大长度=2000
        # @type QuuidList: Array

        attr_accessor :ResourceId, :LicenseType, :IsAll, :QuuidList

        def initialize(resourceid=nil, licensetype=nil, isall=nil, quuidlist=nil)
          @ResourceId = resourceid
          @LicenseType = licensetype
          @IsAll = isall
          @QuuidList = quuidlist
        end

        def deserialize(params)
          @ResourceId = params['ResourceId']
          @LicenseType = params['LicenseType']
          @IsAll = params['IsAll']
          @QuuidList = params['QuuidList']
        end
      end

      # ModifyLicenseBinds返回参数结构体
      class ModifyLicenseBindsResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务ID
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ModifyLicenseOrder请求参数结构体
      class ModifyLicenseOrderRequest < TencentCloud::Common::AbstractModel
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param InquireNum: 预期值,如果当前为10,扩容则输入原来大的值, 缩容则比原来小的值(缩容时不允许预期值比使用量小),如果保持不变则填写原值,
        # @type InquireNum: Integer
        # @param ProjectId: 项目ID,不修改则输入原值.
        # @type ProjectId: Integer
        # @param Alias: 资源别名,不修改则输入原值.
        # @type Alias: String

        attr_accessor :ResourceId, :InquireNum, :ProjectId, :Alias

        def initialize(resourceid=nil, inquirenum=nil, projectid=nil, _alias=nil)
          @ResourceId = resourceid
          @InquireNum = inquirenum
          @ProjectId = projectid
          @Alias = _alias
        end

        def deserialize(params)
          @ResourceId = params['ResourceId']
          @InquireNum = params['InquireNum']
          @ProjectId = params['ProjectId']
          @Alias = params['Alias']
        end
      end

      # ModifyLicenseOrder返回参数结构体
      class ModifyLicenseOrderResponse < TencentCloud::Common::AbstractModel
        # @param DealNames: 订单号
        # @type DealNames: Array
        # @param ResourceIds: 资源ID
        # @type ResourceIds: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :DealNames, :ResourceIds, :RequestId

        def initialize(dealnames=nil, resourceids=nil, requestid=nil)
          @DealNames = dealnames
          @ResourceIds = resourceids
          @RequestId = requestid
        end

        def deserialize(params)
          @DealNames = params['DealNames']
          @ResourceIds = params['ResourceIds']
          @RequestId = params['RequestId']
        end
      end

      # ModifyLicenseUnBinds请求参数结构体
      class ModifyLicenseUnBindsRequest < TencentCloud::Common::AbstractModel
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param LicenseType: 授权类型
        # @type LicenseType: Integer
        # @param IsAll: 是否全部机器(当全部机器数大于当前订单可用授权数时,多余机器会被跳过)
        # @type IsAll: Boolean
        # @param QuuidList: 需要绑定的机器quuid列表, 当IsAll = false 时必填,反之忽略该参数.
        # 最大长度=100
        # @type QuuidList: Array

        attr_accessor :ResourceId, :LicenseType, :IsAll, :QuuidList

        def initialize(resourceid=nil, licensetype=nil, isall=nil, quuidlist=nil)
          @ResourceId = resourceid
          @LicenseType = licensetype
          @IsAll = isall
          @QuuidList = quuidlist
        end

        def deserialize(params)
          @ResourceId = params['ResourceId']
          @LicenseType = params['LicenseType']
          @IsAll = params['IsAll']
          @QuuidList = params['QuuidList']
        end
      end

      # ModifyLicenseUnBinds返回参数结构体
      class ModifyLicenseUnBindsResponse < TencentCloud::Common::AbstractModel
        # @param ErrMsg: 只有解绑失败的才有该值.
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ErrMsg: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ErrMsg, :RequestId

        def initialize(errmsg=nil, requestid=nil)
          @ErrMsg = errmsg
          @RequestId = requestid
        end

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

      # ModifyLogKafkaAccess请求参数结构体
      class ModifyLogKafkaAccessRequest < TencentCloud::Common::AbstractModel
        # @param KafkaEnvName: 实例名称 如 云镜测试环境
        # @type KafkaEnvName: String
        # @param KafkaId: 实例ID
        # @type KafkaId: String
        # @param AccessType: 接入方式,1公网域名接入,2支撑环境接入
        # @type AccessType: Integer
        # @param AccessAddr: 接入地址
        # @type AccessAddr: String
        # @param Username: 用户名
        # @type Username: String
        # @param HasPwd: 0不用密码,1有密码
        # @type HasPwd: Integer
        # @param DeliverTypeDetails: 日志投递类型配置细节
        # @type DeliverTypeDetails: Array
        # @param InsVersion: kafka版本
        # @type InsVersion: String
        # @param Zone: 地域
        # @type Zone: String
        # @param Az: 可用区
        # @type Az: String
        # @param VpcId: vpcid地址
        # @type VpcId: String
        # @param SubnetId: 子网id
        # @type SubnetId: String
        # @param DeliverStatus: 投递状态,1:健康,2:告警,3:异常
        # @type DeliverStatus: Integer
        # @param BandWidth: 峰值带宽
        # @type BandWidth: Integer
        # @param DiskSize: 磁盘容量
        # @type DiskSize: Integer
        # @param Pwd: 密码,aes加密
        # @type Pwd: String

        attr_accessor :KafkaEnvName, :KafkaId, :AccessType, :AccessAddr, :Username, :HasPwd, :DeliverTypeDetails, :InsVersion, :Zone, :Az, :VpcId, :SubnetId, :DeliverStatus, :BandWidth, :DiskSize, :Pwd

        def initialize(kafkaenvname=nil, kafkaid=nil, accesstype=nil, accessaddr=nil, username=nil, haspwd=nil, delivertypedetails=nil, insversion=nil, zone=nil, az=nil, vpcid=nil, subnetid=nil, deliverstatus=nil, bandwidth=nil, disksize=nil, pwd=nil)
          @KafkaEnvName = kafkaenvname
          @KafkaId = kafkaid
          @AccessType = accesstype
          @AccessAddr = accessaddr
          @Username = username
          @HasPwd = haspwd
          @DeliverTypeDetails = delivertypedetails
          @InsVersion = insversion
          @Zone = zone
          @Az = az
          @VpcId = vpcid
          @SubnetId = subnetid
          @DeliverStatus = deliverstatus
          @BandWidth = bandwidth
          @DiskSize = disksize
          @Pwd = pwd
        end

        def deserialize(params)
          @KafkaEnvName = params['KafkaEnvName']
          @KafkaId = params['KafkaId']
          @AccessType = params['AccessType']
          @AccessAddr = params['AccessAddr']
          @Username = params['Username']
          @HasPwd = params['HasPwd']
          unless params['DeliverTypeDetails'].nil?
            @DeliverTypeDetails = []
            params['DeliverTypeDetails'].each do |i|
              delivertypedetails_tmp = DeliverTypeDetails.new
              delivertypedetails_tmp.deserialize(i)
              @DeliverTypeDetails << delivertypedetails_tmp
            end
          end
          @InsVersion = params['InsVersion']
          @Zone = params['Zone']
          @Az = params['Az']
          @VpcId = params['VpcId']
          @SubnetId = params['SubnetId']
          @DeliverStatus = params['DeliverStatus']
          @BandWidth = params['BandWidth']
          @DiskSize = params['DiskSize']
          @Pwd = params['Pwd']
        end
      end

      # ModifyLogKafkaAccess返回参数结构体
      class ModifyLogKafkaAccessResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyLogKafkaDeliverType请求参数结构体
      class ModifyLogKafkaDeliverTypeRequest < TencentCloud::Common::AbstractModel
        # @param SecurityType: 安全模块类型 1: 入侵检测 2: 漏洞管理 3: 基线管理 4: 高级防御 5:客户端相关 6: 资产指纹
        # @type SecurityType: Integer
        # @param LogType: 安全模块下的日志类型,
        # @type LogType: Array
        # @param Switch: 投递开关 0关闭 1开启
        # @type Switch: Integer
        # @param TopicId: kafka topic id
        # @type TopicId: String
        # @param TopicName: kafka topic name
        # @type TopicName: String

        attr_accessor :SecurityType, :LogType, :Switch, :TopicId, :TopicName

        def initialize(securitytype=nil, logtype=nil, switch=nil, topicid=nil, topicname=nil)
          @SecurityType = securitytype
          @LogType = logtype
          @Switch = switch
          @TopicId = topicid
          @TopicName = topicname
        end

        def deserialize(params)
          @SecurityType = params['SecurityType']
          @LogType = params['LogType']
          @Switch = params['Switch']
          @TopicId = params['TopicId']
          @TopicName = params['TopicName']
        end
      end

      # ModifyLogKafkaDeliverType返回参数结构体
      class ModifyLogKafkaDeliverTypeResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyLogKafkaState请求参数结构体
      class ModifyLogKafkaStateRequest < TencentCloud::Common::AbstractModel
        # @param KafkaEnvName: 实例名称 如 云镜测试环境
        # @type KafkaEnvName: String
        # @param KafkaId: 实例ID
        # @type KafkaId: String
        # @param AccessType: 接入方式,1公网域名接入,2支撑环境接入
        # @type AccessType: Integer
        # @param AccessAddr: 接入地址
        # @type AccessAddr: String
        # @param Username: 用户名
        # @type Username: String
        # @param Zone: 区域
        # @type Zone: String
        # @param Az: 可用区
        # @type Az: String
        # @param VpcId: 所属网络
        # @type VpcId: String
        # @param SubnetId: 所在子网
        # @type SubnetId: String
        # @param DeliverStatus: 投递状态,1:健康,2:告警,3:异常
        # @type DeliverStatus: Integer
        # @param InsVersion: kafka版本
        # @type InsVersion: String
        # @param BandWidth: 峰值带宽
        # @type BandWidth: Integer
        # @param DiskSize: 磁盘容量
        # @type DiskSize: Integer

        attr_accessor :KafkaEnvName, :KafkaId, :AccessType, :AccessAddr, :Username, :Zone, :Az, :VpcId, :SubnetId, :DeliverStatus, :InsVersion, :BandWidth, :DiskSize

        def initialize(kafkaenvname=nil, kafkaid=nil, accesstype=nil, accessaddr=nil, username=nil, zone=nil, az=nil, vpcid=nil, subnetid=nil, deliverstatus=nil, insversion=nil, bandwidth=nil, disksize=nil)
          @KafkaEnvName = kafkaenvname
          @KafkaId = kafkaid
          @AccessType = accesstype
          @AccessAddr = accessaddr
          @Username = username
          @Zone = zone
          @Az = az
          @VpcId = vpcid
          @SubnetId = subnetid
          @DeliverStatus = deliverstatus
          @InsVersion = insversion
          @BandWidth = bandwidth
          @DiskSize = disksize
        end

        def deserialize(params)
          @KafkaEnvName = params['KafkaEnvName']
          @KafkaId = params['KafkaId']
          @AccessType = params['AccessType']
          @AccessAddr = params['AccessAddr']
          @Username = params['Username']
          @Zone = params['Zone']
          @Az = params['Az']
          @VpcId = params['VpcId']
          @SubnetId = params['SubnetId']
          @DeliverStatus = params['DeliverStatus']
          @InsVersion = params['InsVersion']
          @BandWidth = params['BandWidth']
          @DiskSize = params['DiskSize']
        end
      end

      # ModifyLogKafkaState返回参数结构体
      class ModifyLogKafkaStateResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyLogStorageConfig请求参数结构体
      class ModifyLogStorageConfigRequest < TencentCloud::Common::AbstractModel
        # @param IsModifyPeriod: 是否修改有效期
        # @type IsModifyPeriod: Boolean
        # @param Type: 存储类型,string数组
        # @type Type: Array
        # @param Period: 日志存储天数,3640表示不限
        # @type Period: Integer

        attr_accessor :IsModifyPeriod, :Type, :Period

        def initialize(ismodifyperiod=nil, type=nil, period=nil)
          @IsModifyPeriod = ismodifyperiod
          @Type = type
          @Period = period
        end

        def deserialize(params)
          @IsModifyPeriod = params['IsModifyPeriod']
          @Type = params['Type']
          @Period = params['Period']
        end
      end

      # ModifyLogStorageConfig返回参数结构体
      class ModifyLogStorageConfigResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyLoginWhiteInfo请求参数结构体
      class ModifyLoginWhiteInfoRequest < TencentCloud::Common::AbstractModel
        # @param HostLoginWhiteObj: 更新白名单信息实体
        # @type HostLoginWhiteObj: :class:`Tencentcloud::Cwp.v20180228.models.UpdateHostLoginWhiteObj`

        attr_accessor :HostLoginWhiteObj

        def initialize(hostloginwhiteobj=nil)
          @HostLoginWhiteObj = hostloginwhiteobj
        end

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

      # ModifyLoginWhiteInfo返回参数结构体
      class ModifyLoginWhiteInfoResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyLoginWhiteRecord请求参数结构体
      class ModifyLoginWhiteRecordRequest < TencentCloud::Common::AbstractModel
        # @param UserName: 白名单用户(多个用户逗号隔开)
        # @type UserName: String
        # @param SrcIp: 更新后记录的白名单维度信息
        # @type SrcIp: String
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String
        # @param Remark: 备注
        # @type Remark: String
        # @param IsGlobal: 是否对所有服务器生效,0-否,1-是
        # @type IsGlobal: Integer
        # @param Id: 白名单ID
        # @type Id: Integer
        # @param Hosts: 服务器列表
        # @type Hosts: Array
        # @param Places: 地域列表
        # @type Places: Array

        attr_accessor :UserName, :SrcIp, :StartTime, :EndTime, :Remark, :IsGlobal, :Id, :Hosts, :Places

        def initialize(username=nil, srcip=nil, starttime=nil, endtime=nil, remark=nil, isglobal=nil, id=nil, hosts=nil, places=nil)
          @UserName = username
          @SrcIp = srcip
          @StartTime = starttime
          @EndTime = endtime
          @Remark = remark
          @IsGlobal = isglobal
          @Id = id
          @Hosts = hosts
          @Places = places
        end

        def deserialize(params)
          @UserName = params['UserName']
          @SrcIp = params['SrcIp']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @Remark = params['Remark']
          @IsGlobal = params['IsGlobal']
          @Id = params['Id']
          unless params['Hosts'].nil?
            @Hosts = []
            params['Hosts'].each do |i|
              hostinfo_tmp = HostInfo.new
              hostinfo_tmp.deserialize(i)
              @Hosts << hostinfo_tmp
            end
          end
          unless params['Places'].nil?
            @Places = []
            params['Places'].each do |i|
              place_tmp = Place.new
              place_tmp.deserialize(i)
              @Places << place_tmp
            end
          end
        end
      end

      # ModifyLoginWhiteRecord返回参数结构体
      class ModifyLoginWhiteRecordResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyMachineAutoClearConfig请求参数结构体
      class ModifyMachineAutoClearConfigRequest < TencentCloud::Common::AbstractModel
        # @param ClearRule: 清理规则时间, 0 表示关闭, 单位为天, 最大为 30天
        # @type ClearRule: Integer

        attr_accessor :ClearRule

        def initialize(clearrule=nil)
          @ClearRule = clearrule
        end

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

      # ModifyMachineAutoClearConfig返回参数结构体
      class ModifyMachineAutoClearConfigResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyMachineRemark请求参数结构体
      class ModifyMachineRemarkRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param Remark: 备注信息
        # @type Remark: String

        attr_accessor :Quuid, :Remark

        def initialize(quuid=nil, remark=nil)
          @Quuid = quuid
          @Remark = remark
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Remark = params['Remark']
        end
      end

      # ModifyMachineRemark返回参数结构体
      class ModifyMachineRemarkResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyMaliciousRequestWhiteList请求参数结构体
      class ModifyMaliciousRequestWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Id: 白名单id
        # @type Id: Integer
        # @param Domain: 白名单域名
        # @type Domain: String
        # @param Mark: 备注
        # @type Mark: String

        attr_accessor :Id, :Domain, :Mark

        def initialize(id=nil, domain=nil, mark=nil)
          @Id = id
          @Domain = domain
          @Mark = mark
        end

        def deserialize(params)
          @Id = params['Id']
          @Domain = params['Domain']
          @Mark = params['Mark']
        end
      end

      # ModifyMaliciousRequestWhiteList返回参数结构体
      class ModifyMaliciousRequestWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyMalwareTimingScanSettings请求参数结构体
      class ModifyMalwareTimingScanSettingsRequest < TencentCloud::Common::AbstractModel
        # @param CheckPattern: 检测模式 0 全盘检测  1快速检测
        # @type CheckPattern: Integer
        # @param StartTime: 检测周期 开始时间,如:02:00:00
        # @type StartTime: String
        # @param EndTime: 检测周期 超时结束时间,如:04:00:00
        # @type EndTime: String
        # @param IsGlobal: 是否全部服务器 1 全部 2 自选
        # @type IsGlobal: Integer
        # @param EnableScan: 定时检测开关 0 关闭 1开启
        # @type EnableScan: Integer
        # @param MonitoringPattern: 监控模式 0 标准 1深度
        # @type MonitoringPattern: Integer
        # @param Cycle: 扫描周期 默认每天 1
        # @type Cycle: Integer
        # @param RealTimeMonitoring: 实时监控 0 关闭 1开启
        # @type RealTimeMonitoring: Integer
        # @param QuuidList: 自选服务器时必须 主机quuid的string数组
        # @type QuuidList: Array
        # @param AutoIsolation: 是否自动隔离 1隔离 0 不隔离
        # @type AutoIsolation: Integer
        # @param KillProcess: 是否杀掉进程 1杀掉 0不杀掉
        # @type KillProcess: Integer
        # @param EngineType: 1标准模式(只报严重、高危)、2增强模式(报严重、高危、中危)、3严格模式(报严重、高、中、低、提示)
        # @type EngineType: Integer
        # @param EnableInspiredEngine: 启发引擎开关 0 关闭 1开启
        # @type EnableInspiredEngine: Integer
        # @param EnableMemShellScan: 是否开启恶意进程查杀[0:未开启,1:开启]
        # @type EnableMemShellScan: Integer

        attr_accessor :CheckPattern, :StartTime, :EndTime, :IsGlobal, :EnableScan, :MonitoringPattern, :Cycle, :RealTimeMonitoring, :QuuidList, :AutoIsolation, :KillProcess, :EngineType, :EnableInspiredEngine, :EnableMemShellScan

        def initialize(checkpattern=nil, starttime=nil, endtime=nil, isglobal=nil, enablescan=nil, monitoringpattern=nil, cycle=nil, realtimemonitoring=nil, quuidlist=nil, autoisolation=nil, killprocess=nil, enginetype=nil, enableinspiredengine=nil, enablememshellscan=nil)
          @CheckPattern = checkpattern
          @StartTime = starttime
          @EndTime = endtime
          @IsGlobal = isglobal
          @EnableScan = enablescan
          @MonitoringPattern = monitoringpattern
          @Cycle = cycle
          @RealTimeMonitoring = realtimemonitoring
          @QuuidList = quuidlist
          @AutoIsolation = autoisolation
          @KillProcess = killprocess
          @EngineType = enginetype
          @EnableInspiredEngine = enableinspiredengine
          @EnableMemShellScan = enablememshellscan
        end

        def deserialize(params)
          @CheckPattern = params['CheckPattern']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @IsGlobal = params['IsGlobal']
          @EnableScan = params['EnableScan']
          @MonitoringPattern = params['MonitoringPattern']
          @Cycle = params['Cycle']
          @RealTimeMonitoring = params['RealTimeMonitoring']
          @QuuidList = params['QuuidList']
          @AutoIsolation = params['AutoIsolation']
          @KillProcess = params['KillProcess']
          @EngineType = params['EngineType']
          @EnableInspiredEngine = params['EnableInspiredEngine']
          @EnableMemShellScan = params['EnableMemShellScan']
        end
      end

      # ModifyMalwareTimingScanSettings返回参数结构体
      class ModifyMalwareTimingScanSettingsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyMalwareWhiteList请求参数结构体
      class ModifyMalwareWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Mode: 白名单模式; 0MD5白名单,1自定义
        # @type Mode: Integer
        # @param Id: 规则唯一ID
        # @type Id: Integer
        # @param QuuidList: quuid 列表
        # @type QuuidList: Array
        # @param IsGlobal: 是否全部主机; 0否,1是。
        # @type IsGlobal: Integer
        # @param MatchType: 匹配模式 ;0 精确匹配,1模糊匹配(废弃)
        # @type MatchType: Integer
        # @param FileName: 文件名称(正则);长度不超过200个
        # @type FileName: Array
        # @param FileDirectory: 文件目录(正则);长度不超过200个,内容base64转义
        # @type FileDirectory: Array
        # @param FileExtension: 文件后缀;长度不超过200个,内容base64转义(废弃)
        # @type FileExtension: Array
        # @param Md5List: MD5列表
        # @type Md5List: Array

        attr_accessor :Mode, :Id, :QuuidList, :IsGlobal, :MatchType, :FileName, :FileDirectory, :FileExtension, :Md5List

        def initialize(mode=nil, id=nil, quuidlist=nil, isglobal=nil, matchtype=nil, filename=nil, filedirectory=nil, fileextension=nil, md5list=nil)
          @Mode = mode
          @Id = id
          @QuuidList = quuidlist
          @IsGlobal = isglobal
          @MatchType = matchtype
          @FileName = filename
          @FileDirectory = filedirectory
          @FileExtension = fileextension
          @Md5List = md5list
        end

        def deserialize(params)
          @Mode = params['Mode']
          @Id = params['Id']
          @QuuidList = params['QuuidList']
          @IsGlobal = params['IsGlobal']
          @MatchType = params['MatchType']
          @FileName = params['FileName']
          @FileDirectory = params['FileDirectory']
          @FileExtension = params['FileExtension']
          @Md5List = params['Md5List']
        end
      end

      # ModifyMalwareWhiteList返回参数结构体
      class ModifyMalwareWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyNetAttackSetting请求参数结构体
      class ModifyNetAttackSettingRequest < TencentCloud::Common::AbstractModel
        # @param NetAttackEnable: 0 关闭网络攻击检测,1开启网络攻击检测
        # @type NetAttackEnable: Integer
        # @param NetAttackAlarmStatus: 0 新增告警事件默认待处理,1新增告警事件默认已处理,3新增告警事件默认忽略
        # @type NetAttackAlarmStatus: Integer
        # @param Scope: 1 全部旗舰版主机,0 Quuids列表主机
        # @type Scope: Integer
        # @param InstanceIds: 自选主机
        # @type InstanceIds: Array
        # @param ExcludeInstanceIds: 自选排除的主机
        # @type ExcludeInstanceIds: Array
        # @param AutoInclude: 新增资产自动包含 0 不包含 1包含
        # @type AutoInclude: Integer

        attr_accessor :NetAttackEnable, :NetAttackAlarmStatus, :Scope, :InstanceIds, :ExcludeInstanceIds, :AutoInclude

        def initialize(netattackenable=nil, netattackalarmstatus=nil, scope=nil, instanceids=nil, excludeinstanceids=nil, autoinclude=nil)
          @NetAttackEnable = netattackenable
          @NetAttackAlarmStatus = netattackalarmstatus
          @Scope = scope
          @InstanceIds = instanceids
          @ExcludeInstanceIds = excludeinstanceids
          @AutoInclude = autoinclude
        end

        def deserialize(params)
          @NetAttackEnable = params['NetAttackEnable']
          @NetAttackAlarmStatus = params['NetAttackAlarmStatus']
          @Scope = params['Scope']
          @InstanceIds = params['InstanceIds']
          @ExcludeInstanceIds = params['ExcludeInstanceIds']
          @AutoInclude = params['AutoInclude']
        end
      end

      # ModifyNetAttackSetting返回参数结构体
      class ModifyNetAttackSettingResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyNetAttackWhiteList请求参数结构体
      class ModifyNetAttackWhiteListRequest < TencentCloud::Common::AbstractModel
        # @param Scope: 是否全部主机; 0否,1是。
        # @type Scope: Integer
        # @param SrcIp: 来源IP 单IP:1.1.1.1  IP范围:1.1.1.1-1.1.2.1  IP范围:1.1.1.0/24
        # @type SrcIp: Array
        # @param DealOldEvents: 是否加白所有符合该规则的告警 ,1:处理,0:不处理
        # @type DealOldEvents: Integer
        # @param Id: 规则id
        # @type Id: Integer
        # @param QuuidList: quuid 列表
        # @type QuuidList: Array
        # @param Description: 规则描述
        # @type Description: String

        attr_accessor :Scope, :SrcIp, :DealOldEvents, :Id, :QuuidList, :Description

        def initialize(scope=nil, srcip=nil, dealoldevents=nil, id=nil, quuidlist=nil, description=nil)
          @Scope = scope
          @SrcIp = srcip
          @DealOldEvents = dealoldevents
          @Id = id
          @QuuidList = quuidlist
          @Description = description
        end

        def deserialize(params)
          @Scope = params['Scope']
          @SrcIp = params['SrcIp']
          @DealOldEvents = params['DealOldEvents']
          @Id = params['Id']
          @QuuidList = params['QuuidList']
          @Description = params['Description']
        end
      end

      # ModifyNetAttackWhiteList返回参数结构体
      class ModifyNetAttackWhiteListResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyOrderAttribute请求参数结构体
      class ModifyOrderAttributeRequest < TencentCloud::Common::AbstractModel
        # @param LicenseType: 授权类型 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        # @type LicenseType: Integer
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param AttrName: 可编辑的属性名称 ,当前支持的有: alias 资源别名
        # @type AttrName: String
        # @param AttrValue: 属性值
        # @type AttrValue: String

        attr_accessor :LicenseType, :ResourceId, :AttrName, :AttrValue

        def initialize(licensetype=nil, resourceid=nil, attrname=nil, attrvalue=nil)
          @LicenseType = licensetype
          @ResourceId = resourceid
          @AttrName = attrname
          @AttrValue = attrvalue
        end

        def deserialize(params)
          @LicenseType = params['LicenseType']
          @ResourceId = params['ResourceId']
          @AttrName = params['AttrName']
          @AttrValue = params['AttrValue']
        end
      end

      # ModifyOrderAttribute返回参数结构体
      class ModifyOrderAttributeResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyRansomDefenseEventsStatus请求参数结构体
      class ModifyRansomDefenseEventsStatusRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 需要修改的事件id 数组,支持批量
        # @type Ids: Array
        # @param Status: 操作 0待处理,1已处理,2信任,9:删除记录
        # @type Status: Integer
        # @param All: 是否更新所有同路径事件
        # @type All: Boolean

        attr_accessor :Ids, :Status, :All

        def initialize(ids=nil, status=nil, all=nil)
          @Ids = ids
          @Status = status
          @All = all
        end

        def deserialize(params)
          @Ids = params['Ids']
          @Status = params['Status']
          @All = params['All']
        end
      end

      # ModifyRansomDefenseEventsStatus返回参数结构体
      class ModifyRansomDefenseEventsStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyRansomDefenseStrategyStatus请求参数结构体
      class ModifyRansomDefenseStrategyStatusRequest < TencentCloud::Common::AbstractModel
        # @param IsAll: 是否对全部策略生效: 0否,1是
        # @type IsAll: Integer
        # @param Status: 0关闭,1开启,9删除
        # @type Status: Integer
        # @param IdList: 策略ID列表
        # @type IdList: Array

        attr_accessor :IsAll, :Status, :IdList

        def initialize(isall=nil, status=nil, idlist=nil)
          @IsAll = isall
          @Status = status
          @IdList = idlist
        end

        def deserialize(params)
          @IsAll = params['IsAll']
          @Status = params['Status']
          @IdList = params['IdList']
        end
      end

      # ModifyRansomDefenseStrategyStatus返回参数结构体
      class ModifyRansomDefenseStrategyStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyRiskDnsPolicy请求参数结构体
      class ModifyRiskDnsPolicyRequest < TencentCloud::Common::AbstractModel
        # @param Data: 策略
        # @type Data: :class:`Tencentcloud::Cwp.v20180228.models.RiskDnsPolicy`

        attr_accessor :Data

        def initialize(data=nil)
          @Data = data
        end

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

      # ModifyRiskDnsPolicy返回参数结构体
      class ModifyRiskDnsPolicyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyRiskDnsPolicyStatus请求参数结构体
      class ModifyRiskDnsPolicyStatusRequest < TencentCloud::Common::AbstractModel
        # @param PolicyId: 策略ID
        # @type PolicyId: Integer
        # @param IsEnabled: 是否生效[0:生效,1:不生效]
        # @type IsEnabled: Integer

        attr_accessor :PolicyId, :IsEnabled

        def initialize(policyid=nil, isenabled=nil)
          @PolicyId = policyid
          @IsEnabled = isenabled
        end

        def deserialize(params)
          @PolicyId = params['PolicyId']
          @IsEnabled = params['IsEnabled']
        end
      end

      # ModifyRiskDnsPolicyStatus返回参数结构体
      class ModifyRiskDnsPolicyStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyRiskEventsStatus请求参数结构体
      class ModifyRiskEventsStatusRequest < TencentCloud::Common::AbstractModel
        # @param Operate: 操作-0:标记已处理,1:忽略,2:删除记录,3:木马隔离,4:木马恢复隔离,5:木马信任,6:木马取消信任,7:查杀异常进程
        # @type Operate: Integer
        # @param RiskType: 操作事件类型,文件查杀:MALWARE,异常登录:HOST_LOGIN,密码破解:BRUTE_ATTACK,恶意请求:MALICIOUS_REQUEST,高危命令:BASH_EVENT,本地提权:PRIVILEGE_EVENT,反弹shell:REVERSE_SHELL. 异常进程:PROCESS
        # @type RiskType: String
        # @param Ids: 需要修改的事件id 数组,支持批量
        # @type Ids: Array
        # @param UpdateAll: 是否更新全部,即是否对所有的事件进行操作,当ids 不为空时,此参数无效
        # @type UpdateAll: Boolean
        # @param ExcludeId: 排除的事件id,当操作全部事件时,需要排除这次id
        # @type ExcludeId: Array
        # @param KillProcess: 当Operate 是木马隔离时,表示是否要杀进程,其他操作无效
        # @type KillProcess: Boolean
        # @param Ip: 当RiskType 为异地登录且ids为空时,可以修改所有来源ip的事件的状态
        # @type Ip: Array
        # @param Filters: 过滤条件。RiskType为 MALWARE时
        # 1、当RiskType为 MALWARE时:
        # <li>IpOrAlias - String - 是否必填:否 - 主机ip或别名筛选</li>
        # <li>FilePath - String - 是否必填:否 - 路径筛选</li>
        # <li>VirusName - String - 是否必填:否 - 描述筛选</li>
        # <li>CreateBeginTime - String - 是否必填:否 - 创建时间筛选-开始时间</li>
        # <li>CreateEndTime - String - 是否必填:否 - 创建时间筛选-结束时间</li>
        # <li>Status - String - 是否必填:否 - 状态筛选 4待处理,5信任,6已隔离,10隔离中,11恢复隔离中</li>
        # RiskType 为PROCESS时:
        # 过滤条件。
        # <li>IpOrName - String - 是否必填:否 - 主机IP或主机名</li>
        # <li>VirusName - String - 是否必填:否 - 病毒名</li>
        # <li>BeginTime - String - 是否必填:否 - 进程启动时间-开始</li>
        # <li>EndTime - String - 是否必填:否 - 进程启动时间-结束</li>
        # <li>Status - String - 是否必填:否 - 状态筛选 0待处理;1查杀中;2已查杀3已退出;4已信任</li>
        # @type Filters: Array

        attr_accessor :Operate, :RiskType, :Ids, :UpdateAll, :ExcludeId, :KillProcess, :Ip, :Filters

        def initialize(operate=nil, risktype=nil, ids=nil, updateall=nil, excludeid=nil, killprocess=nil, ip=nil, filters=nil)
          @Operate = operate
          @RiskType = risktype
          @Ids = ids
          @UpdateAll = updateall
          @ExcludeId = excludeid
          @KillProcess = killprocess
          @Ip = ip
          @Filters = filters
        end

        def deserialize(params)
          @Operate = params['Operate']
          @RiskType = params['RiskType']
          @Ids = params['Ids']
          @UpdateAll = params['UpdateAll']
          @ExcludeId = params['ExcludeId']
          @KillProcess = params['KillProcess']
          @Ip = params['Ip']
          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

      # ModifyRiskEventsStatus返回参数结构体
      class ModifyRiskEventsStatusResponse < TencentCloud::Common::AbstractModel
        # @param IsSync: 此次操作是否是异步操作,0:操作已完成,1:正在异步操作中,前端需要通过DescribeRiskBatchStatus 查询操作是否完成
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsSync: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :IsSync, :RequestId

        def initialize(issync=nil, requestid=nil)
          @IsSync = issync
          @RequestId = requestid
        end

        def deserialize(params)
          @IsSync = params['IsSync']
          @RequestId = params['RequestId']
        end
      end

      # ModifyUsersConfig请求参数结构体
      class ModifyUsersConfigRequest < TencentCloud::Common::AbstractModel
        # @param ConfigName: 配置名称
        # <li>license_monitor 新增授权监控配置 0 关闭, 1开启</li>
        # @type ConfigName: String
        # @param ConfigValue: 配置值
        # @type ConfigValue: String

        attr_accessor :ConfigName, :ConfigValue

        def initialize(configname=nil, configvalue=nil)
          @ConfigName = configname
          @ConfigValue = configvalue
        end

        def deserialize(params)
          @ConfigName = params['ConfigName']
          @ConfigValue = params['ConfigValue']
        end
      end

      # ModifyUsersConfig返回参数结构体
      class ModifyUsersConfigResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyVulDefenceEventStatus请求参数结构体
      class ModifyVulDefenceEventStatusRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 事件id
        # @type Ids: Array
        # @param Status: 0: 待处理  2:已处理 3: 已忽略 4: 已删除
        # @type Status: Integer

        attr_accessor :Ids, :Status

        def initialize(ids=nil, status=nil)
          @Ids = ids
          @Status = status
        end

        def deserialize(params)
          @Ids = params['Ids']
          @Status = params['Status']
        end
      end

      # ModifyVulDefenceEventStatus返回参数结构体
      class ModifyVulDefenceEventStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyVulDefenceSetting请求参数结构体
      class ModifyVulDefenceSettingRequest < TencentCloud::Common::AbstractModel
        # @param Enable: 防御开关,0 关闭 1 开启
        # @type Enable: Integer
        # @param Scope: 1 全部旗舰版主机,0 Quuids列表主机
        # @type Scope: Integer
        # @param Quuids: 作用范围内旗舰版主机列表
        # @type Quuids: Array
        # @param ExcludeInstanceIds: 排除作用范围内旗舰版主机列表
        # @type ExcludeInstanceIds: Array
        # @param AutoInclude: 新增资产自动包含 0 不包含 1包含
        # @type AutoInclude: Integer
        # @param InstanceIds: 作用范围内旗舰版主机列表
        # @type InstanceIds: Array

        attr_accessor :Enable, :Scope, :Quuids, :ExcludeInstanceIds, :AutoInclude, :InstanceIds

        def initialize(enable=nil, scope=nil, quuids=nil, excludeinstanceids=nil, autoinclude=nil, instanceids=nil)
          @Enable = enable
          @Scope = scope
          @Quuids = quuids
          @ExcludeInstanceIds = excludeinstanceids
          @AutoInclude = autoinclude
          @InstanceIds = instanceids
        end

        def deserialize(params)
          @Enable = params['Enable']
          @Scope = params['Scope']
          @Quuids = params['Quuids']
          @ExcludeInstanceIds = params['ExcludeInstanceIds']
          @AutoInclude = params['AutoInclude']
          @InstanceIds = params['InstanceIds']
        end
      end

      # ModifyVulDefenceSetting返回参数结构体
      class ModifyVulDefenceSettingResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWarningHostConfig请求参数结构体
      class ModifyWarningHostConfigRequest < TencentCloud::Common::AbstractModel
        # @param Type: 告警类型
        # @type Type: Integer
        # @param HostRange: 告警主机范围类型,0:全部主机,1:按所属项目选,2:按腾讯云标签选,3:按主机安全标签选,4:自选主机
        # @type HostRange: Integer
        # @param ItemLabels: 项目或标签的名称列表,自选主机时为空
        # @type ItemLabels: Array
        # @param Quuids: 机器列表
        # @type Quuids: Array
        # @param ItemLabelIds: 项目或标签的id列表,自选主机时为空
        # @type ItemLabelIds: Array

        attr_accessor :Type, :HostRange, :ItemLabels, :Quuids, :ItemLabelIds

        def initialize(type=nil, hostrange=nil, itemlabels=nil, quuids=nil, itemlabelids=nil)
          @Type = type
          @HostRange = hostrange
          @ItemLabels = itemlabels
          @Quuids = quuids
          @ItemLabelIds = itemlabelids
        end

        def deserialize(params)
          @Type = params['Type']
          @HostRange = params['HostRange']
          @ItemLabels = params['ItemLabels']
          @Quuids = params['Quuids']
          @ItemLabelIds = params['ItemLabelIds']
        end
      end

      # ModifyWarningHostConfig返回参数结构体
      class ModifyWarningHostConfigResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWarningSetting请求参数结构体
      class ModifyWarningSettingRequest < TencentCloud::Common::AbstractModel
        # @param WarningObjects: 告警设置的修改内容
        # @type WarningObjects: Array

        attr_accessor :WarningObjects

        def initialize(warningobjects=nil)
          @WarningObjects = warningobjects
        end

        def deserialize(params)
          unless params['WarningObjects'].nil?
            @WarningObjects = []
            params['WarningObjects'].each do |i|
              warningobject_tmp = WarningObject.new
              warningobject_tmp.deserialize(i)
              @WarningObjects << warningobject_tmp
            end
          end
        end
      end

      # ModifyWarningSetting返回参数结构体
      class ModifyWarningSettingResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWebHookPolicy请求参数结构体
      class ModifyWebHookPolicyRequest < TencentCloud::Common::AbstractModel
        # @param Id: id
        # @type Id: Integer
        # @param Name: 策略名称
        # @type Name: String
        # @param Events: 事件类型
        # @type Events: Array
        # @param HostLabels: 主机范围
        # @type HostLabels: Array
        # @param Receivers: 接收人
        # @type Receivers: Array
        # @param Format: 格式 0text 1json
        # @type Format: Integer
        # @param CustomFields: 自定义透传字段
        # @type CustomFields: Array
        # @param IsDisabled: 是否启用[1:禁用|0:启用]
        # @type IsDisabled: Integer
        # @param Quuids: 主机列表
        # @type Quuids: Array

        attr_accessor :Id, :Name, :Events, :HostLabels, :Receivers, :Format, :CustomFields, :IsDisabled, :Quuids

        def initialize(id=nil, name=nil, events=nil, hostlabels=nil, receivers=nil, format=nil, customfields=nil, isdisabled=nil, quuids=nil)
          @Id = id
          @Name = name
          @Events = events
          @HostLabels = hostlabels
          @Receivers = receivers
          @Format = format
          @CustomFields = customfields
          @IsDisabled = isdisabled
          @Quuids = quuids
        end

        def deserialize(params)
          @Id = params['Id']
          @Name = params['Name']
          unless params['Events'].nil?
            @Events = []
            params['Events'].each do |i|
              webhookeventkv_tmp = WebHookEventKv.new
              webhookeventkv_tmp.deserialize(i)
              @Events << webhookeventkv_tmp
            end
          end
          unless params['HostLabels'].nil?
            @HostLabels = []
            params['HostLabels'].each do |i|
              webhookhostlabel_tmp = WebHookHostLabel.new
              webhookhostlabel_tmp.deserialize(i)
              @HostLabels << webhookhostlabel_tmp
            end
          end
          unless params['Receivers'].nil?
            @Receivers = []
            params['Receivers'].each do |i|
              webhookreceiver_tmp = WebHookReceiver.new
              webhookreceiver_tmp.deserialize(i)
              @Receivers << webhookreceiver_tmp
            end
          end
          @Format = params['Format']
          unless params['CustomFields'].nil?
            @CustomFields = []
            params['CustomFields'].each do |i|
              webhookcustomfield_tmp = WebHookCustomField.new
              webhookcustomfield_tmp.deserialize(i)
              @CustomFields << webhookcustomfield_tmp
            end
          end
          @IsDisabled = params['IsDisabled']
          @Quuids = params['Quuids']
        end
      end

      # ModifyWebHookPolicy返回参数结构体
      class ModifyWebHookPolicyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWebHookPolicyStatus请求参数结构体
      class ModifyWebHookPolicyStatusRequest < TencentCloud::Common::AbstractModel
        # @param Id: id
        # @type Id: Integer
        # @param IsDisabled: 开关, 1禁用 0启用
        # @type IsDisabled: Integer

        attr_accessor :Id, :IsDisabled

        def initialize(id=nil, isdisabled=nil)
          @Id = id
          @IsDisabled = isdisabled
        end

        def deserialize(params)
          @Id = params['Id']
          @IsDisabled = params['IsDisabled']
        end
      end

      # ModifyWebHookPolicyStatus返回参数结构体
      class ModifyWebHookPolicyStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWebHookReceiver请求参数结构体
      class ModifyWebHookReceiverRequest < TencentCloud::Common::AbstractModel
        # @param Id: id
        # @type Id: Integer
        # @param Name: 接收人名称
        # @type Name: String
        # @param Addr: webhook地址
        # @type Addr: String
        # @param IsModify: 是否修改
        # @type IsModify: Boolean

        attr_accessor :Id, :Name, :Addr, :IsModify

        def initialize(id=nil, name=nil, addr=nil, ismodify=nil)
          @Id = id
          @Name = name
          @Addr = addr
          @IsModify = ismodify
        end

        def deserialize(params)
          @Id = params['Id']
          @Name = params['Name']
          @Addr = params['Addr']
          @IsModify = params['IsModify']
        end
      end

      # ModifyWebHookReceiver返回参数结构体
      class ModifyWebHookReceiverResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWebHookRule请求参数结构体
      class ModifyWebHookRuleRequest < TencentCloud::Common::AbstractModel
        # @param Data: 规则内容
        # @type Data: :class:`Tencentcloud::Cwp.v20180228.models.WebHookRuleDetail`

        attr_accessor :Data

        def initialize(data=nil)
          @Data = data
        end

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

      # ModifyWebHookRule返回参数结构体
      class ModifyWebHookRuleResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWebHookRuleStatus请求参数结构体
      class ModifyWebHookRuleStatusRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则Id
        # @type Id: Integer
        # @param IsDisabled: 开启状态[0:开启|1:关闭]
        # @type IsDisabled: Integer

        attr_accessor :Id, :IsDisabled

        def initialize(id=nil, isdisabled=nil)
          @Id = id
          @IsDisabled = isdisabled
        end

        def deserialize(params)
          @Id = params['Id']
          @IsDisabled = params['IsDisabled']
        end
      end

      # ModifyWebHookRuleStatus返回参数结构体
      class ModifyWebHookRuleStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWebPageProtectDir请求参数结构体
      class ModifyWebPageProtectDirRequest < TencentCloud::Common::AbstractModel
        # @param ProtectDirAddr: 网站防护目录地址
        # @type ProtectDirAddr: String
        # @param ProtectDirName: 网站防护目录名称
        # @type ProtectDirName: String
        # @param ProtectFileType: 防护文件类型,分号分割 ;
        # @type ProtectFileType: String
        # @param HostConfig: 防护机器列表信息
        # @type HostConfig: Array

        attr_accessor :ProtectDirAddr, :ProtectDirName, :ProtectFileType, :HostConfig

        def initialize(protectdiraddr=nil, protectdirname=nil, protectfiletype=nil, hostconfig=nil)
          @ProtectDirAddr = protectdiraddr
          @ProtectDirName = protectdirname
          @ProtectFileType = protectfiletype
          @HostConfig = hostconfig
        end

        def deserialize(params)
          @ProtectDirAddr = params['ProtectDirAddr']
          @ProtectDirName = params['ProtectDirName']
          @ProtectFileType = params['ProtectFileType']
          unless params['HostConfig'].nil?
            @HostConfig = []
            params['HostConfig'].each do |i|
              protecthostconfig_tmp = ProtectHostConfig.new
              protecthostconfig_tmp.deserialize(i)
              @HostConfig << protecthostconfig_tmp
            end
          end
        end
      end

      # ModifyWebPageProtectDir返回参数结构体
      class ModifyWebPageProtectDirResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWebPageProtectSetting请求参数结构体
      class ModifyWebPageProtectSettingRequest < TencentCloud::Common::AbstractModel
        # @param ModifyType: 需要操作的类型1 目录名称 2 防护文件类型
        # @type ModifyType: Integer
        # @param Value: 提交值
        # @type Value: String
        # @param Id: 配置对应的protect_path
        # @type Id: String

        attr_accessor :ModifyType, :Value, :Id

        def initialize(modifytype=nil, value=nil, id=nil)
          @ModifyType = modifytype
          @Value = value
          @Id = id
        end

        def deserialize(params)
          @ModifyType = params['ModifyType']
          @Value = params['Value']
          @Id = params['Id']
        end
      end

      # ModifyWebPageProtectSetting返回参数结构体
      class ModifyWebPageProtectSettingResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ModifyWebPageProtectSwitch请求参数结构体
      class ModifyWebPageProtectSwitchRequest < TencentCloud::Common::AbstractModel
        # @param SwitchType: 开关类型 1 防护开关  2 自动恢复开关 3 移除防护目录
        # @type SwitchType: Integer
        # @param Ids: 需要操作开关的网站 最大100条
        # @type Ids: Array
        # @param Status: 1 开启 0 关闭 SwitchType 为 1 | 2 必填;
        # @type Status: Integer

        attr_accessor :SwitchType, :Ids, :Status

        def initialize(switchtype=nil, ids=nil, status=nil)
          @SwitchType = switchtype
          @Ids = ids
          @Status = status
        end

        def deserialize(params)
          @SwitchType = params['SwitchType']
          @Ids = params['Ids']
          @Status = params['Status']
        end
      end

      # ModifyWebPageProtectSwitch返回参数结构体
      class ModifyWebPageProtectSwitchResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 专家服务-月巡检报告
      class MonthInspectionReport < TencentCloud::Common::AbstractModel
        # @param ReportName: 巡检报告名称
        # @type ReportName: String
        # @param ReportPath: 巡检报告下载地址
        # @type ReportPath: String
        # @param ModifyTime: 巡检报告更新时间
        # @type ModifyTime: String

        attr_accessor :ReportName, :ReportPath, :ModifyTime

        def initialize(reportname=nil, reportpath=nil, modifytime=nil)
          @ReportName = reportname
          @ReportPath = reportpath
          @ModifyTime = modifytime
        end

        def deserialize(params)
          @ReportName = params['ReportName']
          @ReportPath = params['ReportPath']
          @ModifyTime = params['ModifyTime']
        end
      end

      # 网络攻击事件
      class NetAttackEvent < TencentCloud::Common::AbstractModel
        # @param Id: 日志ID
        # @type Id: Integer
        # @param Uuid: 客户端ID
        # @type Uuid: String
        # @param DstPort: 目标端口
        # @type DstPort: Integer
        # @param SrcIP: 来源IP
        # @type SrcIP: String
        # @param Location: 来源地
        # @type Location: String
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param VulName: 漏洞名称
        # @type VulName: String
        # @param MergeTime: 攻击时间
        # @type MergeTime: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Type: 攻击状态,0: 尝试攻击 1: 实锤攻击(攻击成功)
        # @type Type: Integer
        # @param Status: 处理状态,0 待处理 1 已处理 2 已加白  3 已忽略 4 已删除 5: 已开启防御
        # @type Status: Integer
        # @param VulSupportDefense: 漏洞是否支持防御,0:不支持 1:支持
        # @type VulSupportDefense: Integer
        # @param VulDefenceStatus: 是否开启漏洞防御,0关1开
        # @type VulDefenceStatus: Integer
        # @param PayVersion: 机器付费版本,0 基础版,1专业版,2旗舰版,3普惠版
        # @type PayVersion: Integer
        # @param Quuid: cvm uuid
        # @type Quuid: String
        # @param Count: 攻击次数
        # @type Count: Integer
        # @param New: 是否今日新增主机
        # @type New: Boolean

        attr_accessor :Id, :Uuid, :DstPort, :SrcIP, :Location, :VulId, :VulName, :MergeTime, :MachineExtraInfo, :Type, :Status, :VulSupportDefense, :VulDefenceStatus, :PayVersion, :Quuid, :Count, :New

        def initialize(id=nil, uuid=nil, dstport=nil, srcip=nil, location=nil, vulid=nil, vulname=nil, mergetime=nil, machineextrainfo=nil, type=nil, status=nil, vulsupportdefense=nil, vuldefencestatus=nil, payversion=nil, quuid=nil, count=nil, new=nil)
          @Id = id
          @Uuid = uuid
          @DstPort = dstport
          @SrcIP = srcip
          @Location = location
          @VulId = vulid
          @VulName = vulname
          @MergeTime = mergetime
          @MachineExtraInfo = machineextrainfo
          @Type = type
          @Status = status
          @VulSupportDefense = vulsupportdefense
          @VulDefenceStatus = vuldefencestatus
          @PayVersion = payversion
          @Quuid = quuid
          @Count = count
          @New = new
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @DstPort = params['DstPort']
          @SrcIP = params['SrcIP']
          @Location = params['Location']
          @VulId = params['VulId']
          @VulName = params['VulName']
          @MergeTime = params['MergeTime']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Type = params['Type']
          @Status = params['Status']
          @VulSupportDefense = params['VulSupportDefense']
          @VulDefenceStatus = params['VulDefenceStatus']
          @PayVersion = params['PayVersion']
          @Quuid = params['Quuid']
          @Count = params['Count']
          @New = params['New']
        end
      end

      # 网络攻击事件详情
      class NetAttackEventInfo < TencentCloud::Common::AbstractModel
        # @param Status: 处理状态,0 待处理 1 已处理 2 已加白  3 已忽略 4 已删除 5: 已开启防御
        # @type Status: Integer
        # @param SrcIP: 攻击源ip
        # @type SrcIP: String
        # @param Location: 攻击源地
        # @type Location: String
        # @param VulName: 漏洞名称
        # @type VulName: String
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param CVEId: 漏洞CVE编号
        # @type CVEId: String
        # @param AttackLevel: 漏洞攻击热度
        # @type AttackLevel: Integer
        # @param VulDefenceStatus: 漏洞防御状态,0关闭,1开启
        # @type VulDefenceStatus: Integer
        # @param VulSupportDefense: 漏洞是否支持防御,0:不支持 1:支持
        # @type VulSupportDefense: Integer
        # @param SvcPs: 服务进程 base64
        # @type SvcPs: String
        # @param NetPayload: 攻击数据包
        # @type NetPayload: String
        # @param AbnormalAction: 异常行为
        # @type AbnormalAction: String
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param Id: 事件id
        # @type Id: Integer
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param DstPort: 目标端口
        # @type DstPort: Integer
        # @param Count: 攻击次数
        # @type Count: Integer
        # @param PayVersion: 机器付费版本,0 基础版,1专业版,2旗舰版,3普惠版
        # @type PayVersion: Integer
        # @param Quuid: cvm uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param MergeTime: 攻击发生时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MergeTime: String
        # @param Type: 0: 尝试攻击 1:攻击成功
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Type: Integer
        # @param HostOpType: 0:无失陷行为 1: rce(命令执行) 2: dnslog 3: writefile
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostOpType: Integer
        # @param HostOpProcessTree: 进程树,需要用base64 解码
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostOpProcessTree: String

        attr_accessor :Status, :SrcIP, :Location, :VulName, :VulId, :CVEId, :AttackLevel, :VulDefenceStatus, :VulSupportDefense, :SvcPs, :NetPayload, :AbnormalAction, :Uuid, :Id, :MachineExtraInfo, :DstPort, :Count, :PayVersion, :Quuid, :MergeTime, :Type, :HostOpType, :HostOpProcessTree

        def initialize(status=nil, srcip=nil, location=nil, vulname=nil, vulid=nil, cveid=nil, attacklevel=nil, vuldefencestatus=nil, vulsupportdefense=nil, svcps=nil, netpayload=nil, abnormalaction=nil, uuid=nil, id=nil, machineextrainfo=nil, dstport=nil, count=nil, payversion=nil, quuid=nil, mergetime=nil, type=nil, hostoptype=nil, hostopprocesstree=nil)
          @Status = status
          @SrcIP = srcip
          @Location = location
          @VulName = vulname
          @VulId = vulid
          @CVEId = cveid
          @AttackLevel = attacklevel
          @VulDefenceStatus = vuldefencestatus
          @VulSupportDefense = vulsupportdefense
          @SvcPs = svcps
          @NetPayload = netpayload
          @AbnormalAction = abnormalaction
          @Uuid = uuid
          @Id = id
          @MachineExtraInfo = machineextrainfo
          @DstPort = dstport
          @Count = count
          @PayVersion = payversion
          @Quuid = quuid
          @MergeTime = mergetime
          @Type = type
          @HostOpType = hostoptype
          @HostOpProcessTree = hostopprocesstree
        end

        def deserialize(params)
          @Status = params['Status']
          @SrcIP = params['SrcIP']
          @Location = params['Location']
          @VulName = params['VulName']
          @VulId = params['VulId']
          @CVEId = params['CVEId']
          @AttackLevel = params['AttackLevel']
          @VulDefenceStatus = params['VulDefenceStatus']
          @VulSupportDefense = params['VulSupportDefense']
          @SvcPs = params['SvcPs']
          @NetPayload = params['NetPayload']
          @AbnormalAction = params['AbnormalAction']
          @Uuid = params['Uuid']
          @Id = params['Id']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @DstPort = params['DstPort']
          @Count = params['Count']
          @PayVersion = params['PayVersion']
          @Quuid = params['Quuid']
          @MergeTime = params['MergeTime']
          @Type = params['Type']
          @HostOpType = params['HostOpType']
          @HostOpProcessTree = params['HostOpProcessTree']
        end
      end

      # 网络攻击top统计数据
      class NetAttackTopInfo < TencentCloud::Common::AbstractModel
        # @param Agent: 网络攻击主机维度top统计数据
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Agent: Array
        # @param SrcIp: 网络攻击ip来源维度top统计数据
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SrcIp: Array
        # @param DstPort: 网络攻击目标端口维度top统计数据
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DstPort: Array
        # @param Vul: 网络攻击漏洞维度top统计数据
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Vul: Array

        attr_accessor :Agent, :SrcIp, :DstPort, :Vul

        def initialize(agent=nil, srcip=nil, dstport=nil, vul=nil)
          @Agent = agent
          @SrcIp = srcip
          @DstPort = dstport
          @Vul = vul
        end

        def deserialize(params)
          unless params['Agent'].nil?
            @Agent = []
            params['Agent'].each do |i|
              topinfo_tmp = TopInfo.new
              topinfo_tmp.deserialize(i)
              @Agent << topinfo_tmp
            end
          end
          unless params['SrcIp'].nil?
            @SrcIp = []
            params['SrcIp'].each do |i|
              topinfo_tmp = TopInfo.new
              topinfo_tmp.deserialize(i)
              @SrcIp << topinfo_tmp
            end
          end
          unless params['DstPort'].nil?
            @DstPort = []
            params['DstPort'].each do |i|
              topinfo_tmp = TopInfo.new
              topinfo_tmp.deserialize(i)
              @DstPort << topinfo_tmp
            end
          end
          unless params['Vul'].nil?
            @Vul = []
            params['Vul'].each do |i|
              topinfo_tmp = TopInfo.new
              topinfo_tmp.deserialize(i)
              @Vul << topinfo_tmp
            end
          end
        end
      end

      # 攻击趋势统计数据
      class NetAttackTrend < TencentCloud::Common::AbstractModel
        # @param DateTime: 时间点,如 2023-05-06
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DateTime: String
        # @param AttackCount: 攻击次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AttackCount: Integer
        # @param TryAttackCount: 尝试攻击次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TryAttackCount: Integer
        # @param SuccAttackCount: 攻击成功次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SuccAttackCount: Integer

        attr_accessor :DateTime, :AttackCount, :TryAttackCount, :SuccAttackCount

        def initialize(datetime=nil, attackcount=nil, tryattackcount=nil, succattackcount=nil)
          @DateTime = datetime
          @AttackCount = attackcount
          @TryAttackCount = tryattackcount
          @SuccAttackCount = succattackcount
        end

        def deserialize(params)
          @DateTime = params['DateTime']
          @AttackCount = params['AttackCount']
          @TryAttackCount = params['TryAttackCount']
          @SuccAttackCount = params['SuccAttackCount']
        end
      end

      # 网络攻击白名单规则
      class NetAttackWhiteRule < TencentCloud::Common::AbstractModel
        # @param Id: 规则id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Id: Integer
        # @param Description: 规则描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Description: String
        # @param Scope: 0: 一组quuid 1: 所有主机
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Scope: Integer
        # @param DealOldEvents: 是否处理之前的事件 0: 不处理 1:处理
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DealOldEvents: Integer
        # @param Quuids: 主机quuid 多个用;隔开
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuids: String
        # @param SrcIP: 来源IP 单IP:1.1.1.1  IP范围:1.1.1.1-1.1.2.1  IP范围:1.1.1.0/24 多个用;隔开
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SrcIP: String
        # @param CreateTime: 创建时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CreateTime: String
        # @param ModifyTime: 修改时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String

        attr_accessor :Id, :Description, :Scope, :DealOldEvents, :Quuids, :SrcIP, :CreateTime, :ModifyTime

        def initialize(id=nil, description=nil, scope=nil, dealoldevents=nil, quuids=nil, srcip=nil, createtime=nil, modifytime=nil)
          @Id = id
          @Description = description
          @Scope = scope
          @DealOldEvents = dealoldevents
          @Quuids = quuids
          @SrcIP = srcip
          @CreateTime = createtime
          @ModifyTime = modifytime
        end

        def deserialize(params)
          @Id = params['Id']
          @Description = params['Description']
          @Scope = params['Scope']
          @DealOldEvents = params['DealOldEvents']
          @Quuids = params['Quuids']
          @SrcIP = params['SrcIP']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
        end
      end

      # 端口统计列表
      class OpenPortStatistics < TencentCloud::Common::AbstractModel
        # @param Port: 端口号
        # @type Port: Integer
        # @param MachineNum: 主机数量
        # @type MachineNum: Integer

        attr_accessor :Port, :MachineNum

        def initialize(port=nil, machinenum=nil)
          @Port = port
          @MachineNum = machinenum
        end

        def deserialize(params)
          @Port = params['Port']
          @MachineNum = params['MachineNum']
        end
      end

      # 订单变配参数对象
      class OrderModifyObject < TencentCloud::Common::AbstractModel
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param NewSubProductCode: 新产品标识,这里支持PRO_VERSION 专业版,FLAGSHIP 旗舰版
        # @type NewSubProductCode: String
        # @param InquireNum: 扩容/缩容数,变配子产品忽略该参数
        # @type InquireNum: Integer

        attr_accessor :ResourceId, :NewSubProductCode, :InquireNum

        def initialize(resourceid=nil, newsubproductcode=nil, inquirenum=nil)
          @ResourceId = resourceid
          @NewSubProductCode = newsubproductcode
          @InquireNum = inquirenum
        end

        def deserialize(params)
          @ResourceId = params['ResourceId']
          @NewSubProductCode = params['NewSubProductCode']
          @InquireNum = params['InquireNum']
        end
      end

      # 订单资源
      class OrderResource < TencentCloud::Common::AbstractModel
        # @param Id: 资源主键ID
        # @type Id: Integer
        # @param ResourceId: 资源ID
        # @type ResourceId: String
        # @param BeginTime: 开始时间
        # @type BeginTime: String
        # @param EndTime: 到期时间
        # @type EndTime: String
        # @param LicenseType: 授权类型
        # @type LicenseType: Integer

        attr_accessor :Id, :ResourceId, :BeginTime, :EndTime, :LicenseType

        def initialize(id=nil, resourceid=nil, begintime=nil, endtime=nil, licensetype=nil)
          @Id = id
          @ResourceId = resourceid
          @BeginTime = begintime
          @EndTime = endtime
          @LicenseType = licensetype
        end

        def deserialize(params)
          @Id = params['Id']
          @ResourceId = params['ResourceId']
          @BeginTime = params['BeginTime']
          @EndTime = params['EndTime']
          @LicenseType = params['LicenseType']
        end
      end

      # 操作系统名称
      class OsName < TencentCloud::Common::AbstractModel
        # @param Name: 系统名称
        # @type Name: String
        # @param MachineOSType: 操作系统类型枚举值
        # @type MachineOSType: Integer

        attr_accessor :Name, :MachineOSType

        def initialize(name=nil, machineostype=nil)
          @Name = name
          @MachineOSType = machineostype
        end

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

      # 登录地信息
      class Place < TencentCloud::Common::AbstractModel
        # @param CityId: 城市 ID。
        # @type CityId: Integer
        # @param ProvinceId: 省份 ID。
        # @type ProvinceId: Integer
        # @param CountryId: 国家ID,暂只支持国内:1。
        # @type CountryId: Integer
        # @param Location: 位置名称
        # @type Location: String

        attr_accessor :CityId, :ProvinceId, :CountryId, :Location

        def initialize(cityid=nil, provinceid=nil, countryid=nil, location=nil)
          @CityId = cityid
          @ProvinceId = provinceid
          @CountryId = countryid
          @Location = location
        end

        def deserialize(params)
          @CityId = params['CityId']
          @ProvinceId = params['ProvinceId']
          @CountryId = params['CountryId']
          @Location = params['Location']
        end
      end

      # 本地提权数据
      class PrivilegeEscalationProcess < TencentCloud::Common::AbstractModel
        # @param Id: 数据ID
        # @type Id: Integer
        # @param Uuid: 主机安全ID
        # @type Uuid: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param Hostip: 主机内网IP
        # @type Hostip: String
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param FullPath: 进程路径
        # @type FullPath: String
        # @param CmdLine: 执行命令
        # @type CmdLine: String
        # @param UserName: 用户名
        # @type UserName: String
        # @param UserGroup: 用户组
        # @type UserGroup: String
        # @param ProcFilePrivilege: 进程文件权限
        # @type ProcFilePrivilege: String
        # @param ParentProcName: 父进程名
        # @type ParentProcName: String
        # @param ParentProcUser: 父进程用户名
        # @type ParentProcUser: String
        # @param ParentProcGroup: 父进程用户组
        # @type ParentProcGroup: String
        # @param ParentProcPath: 父进程路径
        # @type ParentProcPath: String
        # @param ProcTree: 进程树
        # @type ProcTree: String
        # @param Status: 处理状态:0-待处理 2-白名单 3-已处理 4-已忽略
        # @type Status: Integer
        # @param CreateTime: 发生时间
        # @type CreateTime: String
        # @param MachineName: 机器名
        # @type MachineName: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Pid: 进程id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Pid: Integer

        attr_accessor :Id, :Uuid, :Quuid, :Hostip, :ProcessName, :FullPath, :CmdLine, :UserName, :UserGroup, :ProcFilePrivilege, :ParentProcName, :ParentProcUser, :ParentProcGroup, :ParentProcPath, :ProcTree, :Status, :CreateTime, :MachineName, :MachineExtraInfo, :Pid

        def initialize(id=nil, uuid=nil, quuid=nil, hostip=nil, processname=nil, fullpath=nil, cmdline=nil, username=nil, usergroup=nil, procfileprivilege=nil, parentprocname=nil, parentprocuser=nil, parentprocgroup=nil, parentprocpath=nil, proctree=nil, status=nil, createtime=nil, machinename=nil, machineextrainfo=nil, pid=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @Hostip = hostip
          @ProcessName = processname
          @FullPath = fullpath
          @CmdLine = cmdline
          @UserName = username
          @UserGroup = usergroup
          @ProcFilePrivilege = procfileprivilege
          @ParentProcName = parentprocname
          @ParentProcUser = parentprocuser
          @ParentProcGroup = parentprocgroup
          @ParentProcPath = parentprocpath
          @ProcTree = proctree
          @Status = status
          @CreateTime = createtime
          @MachineName = machinename
          @MachineExtraInfo = machineextrainfo
          @Pid = pid
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Hostip = params['Hostip']
          @ProcessName = params['ProcessName']
          @FullPath = params['FullPath']
          @CmdLine = params['CmdLine']
          @UserName = params['UserName']
          @UserGroup = params['UserGroup']
          @ProcFilePrivilege = params['ProcFilePrivilege']
          @ParentProcName = params['ParentProcName']
          @ParentProcUser = params['ParentProcUser']
          @ParentProcGroup = params['ParentProcGroup']
          @ParentProcPath = params['ParentProcPath']
          @ProcTree = params['ProcTree']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MachineName = params['MachineName']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Pid = params['Pid']
        end
      end

      # 本地提权数据
      class PrivilegeEventInfo < TencentCloud::Common::AbstractModel
        # @param Id: 数据ID
        # @type Id: Integer
        # @param Uuid: 云镜ID
        # @type Uuid: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param HostIp: 主机内网IP
        # @type HostIp: String
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param FullPath: 进程路径
        # @type FullPath: String
        # @param CmdLine: 执行命令
        # @type CmdLine: String
        # @param UserName: 用户名
        # @type UserName: String
        # @param UserGroup: 用户组
        # @type UserGroup: String
        # @param ProcFilePrivilege: 进程文件权限
        # @type ProcFilePrivilege: String
        # @param ParentProcName: 父进程名
        # @type ParentProcName: String
        # @param ParentProcUser: 父进程用户名
        # @type ParentProcUser: String
        # @param ParentProcGroup: 父进程用户组
        # @type ParentProcGroup: String
        # @param ParentProcPath: 父进程路径
        # @type ParentProcPath: String
        # @param PsTree: 进程树 json  pid:进程id,exe:文件路径 ,account:进程所属用组和用户 ,cmdline:执行命令,ssh_service: SSH服务ip, ssh_soure:登录源
        # @type PsTree: String
        # @param Status: 处理状态:0-待处理 2-白名单 3-已处理 4-已忽略
        # @type Status: Integer
        # @param CreateTime: 发生时间
        # @type CreateTime: String
        # @param MachineName: 机器名
        # @type MachineName: String
        # @param SuggestScheme: 建议方案
        # @type SuggestScheme: String
        # @param HarmDescribe: 危害描述信息
        # @type HarmDescribe: String
        # @param Tags: 标签
        # @type Tags: Array
        # @param References: 参考链接
        # @type References: Array
        # @param MachineWanIp: 主机外网ip
        # @type MachineWanIp: String
        # @param NewCaps: 权限列表|隔开
        # @type NewCaps: String
        # @param MachineStatus: 主机在线状态 OFFLINE  ONLINE
        # @type MachineStatus: String
        # @param ModifyTime: 处理时间
        # @type ModifyTime: String

        attr_accessor :Id, :Uuid, :Quuid, :HostIp, :ProcessName, :FullPath, :CmdLine, :UserName, :UserGroup, :ProcFilePrivilege, :ParentProcName, :ParentProcUser, :ParentProcGroup, :ParentProcPath, :PsTree, :Status, :CreateTime, :MachineName, :SuggestScheme, :HarmDescribe, :Tags, :References, :MachineWanIp, :NewCaps, :MachineStatus, :ModifyTime

        def initialize(id=nil, uuid=nil, quuid=nil, hostip=nil, processname=nil, fullpath=nil, cmdline=nil, username=nil, usergroup=nil, procfileprivilege=nil, parentprocname=nil, parentprocuser=nil, parentprocgroup=nil, parentprocpath=nil, pstree=nil, status=nil, createtime=nil, machinename=nil, suggestscheme=nil, harmdescribe=nil, tags=nil, references=nil, machinewanip=nil, newcaps=nil, machinestatus=nil, modifytime=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @HostIp = hostip
          @ProcessName = processname
          @FullPath = fullpath
          @CmdLine = cmdline
          @UserName = username
          @UserGroup = usergroup
          @ProcFilePrivilege = procfileprivilege
          @ParentProcName = parentprocname
          @ParentProcUser = parentprocuser
          @ParentProcGroup = parentprocgroup
          @ParentProcPath = parentprocpath
          @PsTree = pstree
          @Status = status
          @CreateTime = createtime
          @MachineName = machinename
          @SuggestScheme = suggestscheme
          @HarmDescribe = harmdescribe
          @Tags = tags
          @References = references
          @MachineWanIp = machinewanip
          @NewCaps = newcaps
          @MachineStatus = machinestatus
          @ModifyTime = modifytime
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @HostIp = params['HostIp']
          @ProcessName = params['ProcessName']
          @FullPath = params['FullPath']
          @CmdLine = params['CmdLine']
          @UserName = params['UserName']
          @UserGroup = params['UserGroup']
          @ProcFilePrivilege = params['ProcFilePrivilege']
          @ParentProcName = params['ParentProcName']
          @ParentProcUser = params['ParentProcUser']
          @ParentProcGroup = params['ParentProcGroup']
          @ParentProcPath = params['ParentProcPath']
          @PsTree = params['PsTree']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MachineName = params['MachineName']
          @SuggestScheme = params['SuggestScheme']
          @HarmDescribe = params['HarmDescribe']
          @Tags = params['Tags']
          @References = params['References']
          @MachineWanIp = params['MachineWanIp']
          @NewCaps = params['NewCaps']
          @MachineStatus = params['MachineStatus']
          @ModifyTime = params['ModifyTime']
        end
      end

      # 本地提权规则
      class PrivilegeRule < TencentCloud::Common::AbstractModel
        # @param Id: 规则ID
        # @type Id: Integer
        # @param Uuid: 客户端ID
        # @type Uuid: String
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param SMode: 是否S权限
        # @type SMode: Integer
        # @param Operator: 操作人
        # @type Operator: String
        # @param IsGlobal: 是否全局规则
        # @type IsGlobal: Integer
        # @param Status: 状态(0: 有效 1: 无效)
        # @type Status: Integer
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 修改时间
        # @type ModifyTime: String
        # @param Hostip: 主机IP
        # @type Hostip: String

        attr_accessor :Id, :Uuid, :ProcessName, :SMode, :Operator, :IsGlobal, :Status, :CreateTime, :ModifyTime, :Hostip

        def initialize(id=nil, uuid=nil, processname=nil, smode=nil, operator=nil, isglobal=nil, status=nil, createtime=nil, modifytime=nil, hostip=nil)
          @Id = id
          @Uuid = uuid
          @ProcessName = processname
          @SMode = smode
          @Operator = operator
          @IsGlobal = isglobal
          @Status = status
          @CreateTime = createtime
          @ModifyTime = modifytime
          @Hostip = hostip
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @ProcessName = params['ProcessName']
          @SMode = params['SMode']
          @Operator = params['Operator']
          @IsGlobal = params['IsGlobal']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @Hostip = params['Hostip']
        end
      end

      # 进程数据统计数据。
      class ProcessStatistics < TencentCloud::Common::AbstractModel
        # @param ProcessName: 进程名。
        # @type ProcessName: String
        # @param MachineNum: 主机数量。
        # @type MachineNum: Integer

        attr_accessor :ProcessName, :MachineNum

        def initialize(processname=nil, machinenum=nil)
          @ProcessName = processname
          @MachineNum = machinenum
        end

        def deserialize(params)
          @ProcessName = params['ProcessName']
          @MachineNum = params['MachineNum']
        end
      end

      # 产品试用状态查询接口Data出参
      class ProductStatusInfo < TencentCloud::Common::AbstractModel
        # @param FWUserStatus: 防护状态,1未防护,2防护中,3试用中,4已过期
        # @type FWUserStatus: Integer
        # @param CanApplyTrial: 是否可以申请试用,true可以申请
        # @type CanApplyTrial: Boolean
        # @param CanNotApplyReason: 无法试用原因,可试用为空
        # @type CanNotApplyReason: String
        # @param LastTrialTime: 上次试用结束时间(不存在试用记录则为空)
        # @type LastTrialTime: String

        attr_accessor :FWUserStatus, :CanApplyTrial, :CanNotApplyReason, :LastTrialTime

        def initialize(fwuserstatus=nil, canapplytrial=nil, cannotapplyreason=nil, lasttrialtime=nil)
          @FWUserStatus = fwuserstatus
          @CanApplyTrial = canapplytrial
          @CanNotApplyReason = cannotapplyreason
          @LastTrialTime = lasttrialtime
        end

        def deserialize(params)
          @FWUserStatus = params['FWUserStatus']
          @CanApplyTrial = params['CanApplyTrial']
          @CanNotApplyReason = params['CanNotApplyReason']
          @LastTrialTime = params['LastTrialTime']
        end
      end

      # 防护目录列表集
      class ProtectDirInfo < TencentCloud::Common::AbstractModel
        # @param DirName: 网站名称
        # @type DirName: String
        # @param DirPath: 网站防护目录地址
        # @type DirPath: String
        # @param RelatedServerNum: 关联服务器数
        # @type RelatedServerNum: Integer
        # @param ProtectServerNum: 防护服务器数
        # @type ProtectServerNum: Integer
        # @param NoProtectServerNum: 未防护服务器数
        # @type NoProtectServerNum: Integer
        # @param Id: 唯一ID
        # @type Id: String
        # @param ProtectStatus: 防护状态
        # @type ProtectStatus: Integer
        # @param ProtectException: 防护异常
        # @type ProtectException: Integer
        # @param AutoRestoreSwitchStatus: 自动恢复开关 (Filters 过滤Quuid 时 返回) 默认0
        # @type AutoRestoreSwitchStatus: Integer
        # @param FirstProtectTime: 首次开启防护时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FirstProtectTime: String
        # @param LatestProtectTime: 最近开启防护时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LatestProtectTime: String
        # @param ProtectFileType: 防护文件类型
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ProtectFileType: String
        # @param ProtectFilesCount: 防护文件总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ProtectFilesCount: Integer

        attr_accessor :DirName, :DirPath, :RelatedServerNum, :ProtectServerNum, :NoProtectServerNum, :Id, :ProtectStatus, :ProtectException, :AutoRestoreSwitchStatus, :FirstProtectTime, :LatestProtectTime, :ProtectFileType, :ProtectFilesCount

        def initialize(dirname=nil, dirpath=nil, relatedservernum=nil, protectservernum=nil, noprotectservernum=nil, id=nil, protectstatus=nil, protectexception=nil, autorestoreswitchstatus=nil, firstprotecttime=nil, latestprotecttime=nil, protectfiletype=nil, protectfilescount=nil)
          @DirName = dirname
          @DirPath = dirpath
          @RelatedServerNum = relatedservernum
          @ProtectServerNum = protectservernum
          @NoProtectServerNum = noprotectservernum
          @Id = id
          @ProtectStatus = protectstatus
          @ProtectException = protectexception
          @AutoRestoreSwitchStatus = autorestoreswitchstatus
          @FirstProtectTime = firstprotecttime
          @LatestProtectTime = latestprotecttime
          @ProtectFileType = protectfiletype
          @ProtectFilesCount = protectfilescount
        end

        def deserialize(params)
          @DirName = params['DirName']
          @DirPath = params['DirPath']
          @RelatedServerNum = params['RelatedServerNum']
          @ProtectServerNum = params['ProtectServerNum']
          @NoProtectServerNum = params['NoProtectServerNum']
          @Id = params['Id']
          @ProtectStatus = params['ProtectStatus']
          @ProtectException = params['ProtectException']
          @AutoRestoreSwitchStatus = params['AutoRestoreSwitchStatus']
          @FirstProtectTime = params['FirstProtectTime']
          @LatestProtectTime = params['LatestProtectTime']
          @ProtectFileType = params['ProtectFileType']
          @ProtectFilesCount = params['ProtectFilesCount']
        end
      end

      # 防护目录关联服务器列表信息
      class ProtectDirRelatedServer < TencentCloud::Common::AbstractModel
        # @param Id: 唯一ID
        # @type Id: String
        # @param HostName: 服务器名称
        # @type HostName: String
        # @param HostIp: 服务器IP
        # @type HostIp: String
        # @param MachineOs: 服务器系统
        # @type MachineOs: String
        # @param RelateDirNum: 关联目录数
        # @type RelateDirNum: Integer
        # @param ProtectStatus: 防护状态
        # @type ProtectStatus: Integer
        # @param ProtectSwitch: 防护开关
        # @type ProtectSwitch: Integer
        # @param AutoRestoreSwitchStatus: 自动恢复开关
        # @type AutoRestoreSwitchStatus: Integer
        # @param Quuid: 服务器唯一ID
        # @type Quuid: String
        # @param Authorization: 是否已经授权
        # @type Authorization: Boolean
        # @param Exception: 异常状态
        # @type Exception: Integer
        # @param Progress: 过渡进度
        # @type Progress: Integer
        # @param ExceptionMessage: 异常信息
        # @type ExceptionMessage: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :Id, :HostName, :HostIp, :MachineOs, :RelateDirNum, :ProtectStatus, :ProtectSwitch, :AutoRestoreSwitchStatus, :Quuid, :Authorization, :Exception, :Progress, :ExceptionMessage, :MachineExtraInfo

        def initialize(id=nil, hostname=nil, hostip=nil, machineos=nil, relatedirnum=nil, protectstatus=nil, protectswitch=nil, autorestoreswitchstatus=nil, quuid=nil, authorization=nil, exception=nil, progress=nil, exceptionmessage=nil, machineextrainfo=nil)
          @Id = id
          @HostName = hostname
          @HostIp = hostip
          @MachineOs = machineos
          @RelateDirNum = relatedirnum
          @ProtectStatus = protectstatus
          @ProtectSwitch = protectswitch
          @AutoRestoreSwitchStatus = autorestoreswitchstatus
          @Quuid = quuid
          @Authorization = authorization
          @Exception = exception
          @Progress = progress
          @ExceptionMessage = exceptionmessage
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @Id = params['Id']
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @MachineOs = params['MachineOs']
          @RelateDirNum = params['RelateDirNum']
          @ProtectStatus = params['ProtectStatus']
          @ProtectSwitch = params['ProtectSwitch']
          @AutoRestoreSwitchStatus = params['AutoRestoreSwitchStatus']
          @Quuid = params['Quuid']
          @Authorization = params['Authorization']
          @Exception = params['Exception']
          @Progress = params['Progress']
          @ExceptionMessage = params['ExceptionMessage']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 防护事件列表信息
      class ProtectEventLists < TencentCloud::Common::AbstractModel
        # @param HostName: 服务器名称
        # @type HostName: String
        # @param HostIp: 服务器ip
        # @type HostIp: String
        # @param EventDir: 事件地址
        # @type EventDir: String
        # @param EventType: 事件类型 0-内容被修改恢复;1-权限被修改恢复;2-归属被修改恢复;3-被删除恢复;4-新增删除
        # @type EventType: Integer
        # @param EventStatus: 事件状态 1 已恢复 0 未恢复
        # @type EventStatus: Integer
        # @param CreateTime: 发现时间
        # @type CreateTime: String
        # @param RestoreTime: 恢复时间
        # @type RestoreTime: String
        # @param Id: 唯一ID
        # @type Id: Integer
        # @param FileType: 文件类型 0-常规文件;1-目录;2-软链
        # @type FileType: Integer
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Quuid: 机器实例uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String

        attr_accessor :HostName, :HostIp, :EventDir, :EventType, :EventStatus, :CreateTime, :RestoreTime, :Id, :FileType, :MachineExtraInfo, :Quuid

        def initialize(hostname=nil, hostip=nil, eventdir=nil, eventtype=nil, eventstatus=nil, createtime=nil, restoretime=nil, id=nil, filetype=nil, machineextrainfo=nil, quuid=nil)
          @HostName = hostname
          @HostIp = hostip
          @EventDir = eventdir
          @EventType = eventtype
          @EventStatus = eventstatus
          @CreateTime = createtime
          @RestoreTime = restoretime
          @Id = id
          @FileType = filetype
          @MachineExtraInfo = machineextrainfo
          @Quuid = quuid
        end

        def deserialize(params)
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @EventDir = params['EventDir']
          @EventType = params['EventType']
          @EventStatus = params['EventStatus']
          @CreateTime = params['CreateTime']
          @RestoreTime = params['RestoreTime']
          @Id = params['Id']
          @FileType = params['FileType']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Quuid = params['Quuid']
        end
      end

      # 防护机器信息
      class ProtectHostConfig < TencentCloud::Common::AbstractModel
        # @param Quuid: 机器唯一ID
        # @type Quuid: String
        # @param ProtectSwitch: 防护开关 0  关闭 1开启
        # @type ProtectSwitch: Integer
        # @param AutoRecovery: 自动恢复开关 0 关闭 1开启
        # @type AutoRecovery: Integer

        attr_accessor :Quuid, :ProtectSwitch, :AutoRecovery

        def initialize(quuid=nil, protectswitch=nil, autorecovery=nil)
          @Quuid = quuid
          @ProtectSwitch = protectswitch
          @AutoRecovery = autorecovery
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @ProtectSwitch = params['ProtectSwitch']
          @AutoRecovery = params['AutoRecovery']
        end
      end

      # 机器授权到期信息
      class ProtectMachine < TencentCloud::Common::AbstractModel
        # @param HostName: 机器名称
        # @type HostName: String
        # @param HostIp: 机器IP
        # @type HostIp: String
        # @param SafeguardDirNum: 防护目录数
        # @type SafeguardDirNum: Integer

        attr_accessor :HostName, :HostIp, :SafeguardDirNum

        def initialize(hostname=nil, hostip=nil, safeguarddirnum=nil)
          @HostName = hostname
          @HostIp = hostip
          @SafeguardDirNum = safeguarddirnum
        end

        def deserialize(params)
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @SafeguardDirNum = params['SafeguardDirNum']
        end
      end

      # 授权机器信息
      class ProtectMachineInfo < TencentCloud::Common::AbstractModel
        # @param HostName: 机器名称
        # @type HostName: String
        # @param HostIp: 机器IP
        # @type HostIp: String
        # @param CreateTime: 开通时间
        # @type CreateTime: String
        # @param ExpireTime: 到期时间
        # @type ExpireTime: String

        attr_accessor :HostName, :HostIp, :CreateTime, :ExpireTime

        def initialize(hostname=nil, hostip=nil, createtime=nil, expiretime=nil)
          @HostName = hostname
          @HostIp = hostip
          @CreateTime = createtime
          @ExpireTime = expiretime
        end

        def deserialize(params)
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @CreateTime = params['CreateTime']
          @ExpireTime = params['ExpireTime']
        end
      end

      # 专家服务-旗舰护网信息
      class ProtectNetInfo < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务id
        # @type TaskId: String
        # @param ProtectDays: 护网天数
        # @type ProtectDays: Integer
        # @param Status: 护网状态 0未启动,1护网中,2已完成
        # @type Status: Integer
        # @param StartTime: 护网启动时间
        # @type StartTime: String
        # @param EndTime: 护网完成时间
        # @type EndTime: String
        # @param ReportPath: 报告下载地址
        # @type ReportPath: String

        attr_accessor :TaskId, :ProtectDays, :Status, :StartTime, :EndTime, :ReportPath

        def initialize(taskid=nil, protectdays=nil, status=nil, starttime=nil, endtime=nil, reportpath=nil)
          @TaskId = taskid
          @ProtectDays = protectdays
          @Status = status
          @StartTime = starttime
          @EndTime = endtime
          @ReportPath = reportpath
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @ProtectDays = params['ProtectDays']
          @Status = params['Status']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @ReportPath = params['ReportPath']
        end
      end

      # 防护信息统计
      class ProtectStat < TencentCloud::Common::AbstractModel
        # @param Name: 名称
        # @type Name: String
        # @param Num: 数量
        # @type Num: Integer

        attr_accessor :Name, :Num

        def initialize(name=nil, num=nil)
          @Name = name
          @Num = num
        end

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

      # 主机快照备份列表
      class RansomDefenseBackup < TencentCloud::Common::AbstractModel
        # @param BackupTime: 备份时间
        # @type BackupTime: String
        # @param EventStatus: 勒索状态:0无告警, 1有告警
        # @type EventStatus: Integer
        # @param BackupStatus: 备份状态:0备份中,1正常,2、3失败,4快照已过期,9快照已删除
        # @type BackupStatus: Integer
        # @param DiskCount: 备份磁盘数量
        # @type DiskCount: Integer
        # @param Disks: 硬盘信息,;分隔
        # @type Disks: String
        # @param SnapshotIds: 快照列表,;分隔
        # @type SnapshotIds: String
        # @param StrategyId: 策略id
        # @type StrategyId: Integer
        # @param StrategyStatus: 策略状态:0关闭,1开启,9已删除
        # @type StrategyStatus: Integer
        # @param StrategyName: 策略名称
        # @type StrategyName: String

        attr_accessor :BackupTime, :EventStatus, :BackupStatus, :DiskCount, :Disks, :SnapshotIds, :StrategyId, :StrategyStatus, :StrategyName

        def initialize(backuptime=nil, eventstatus=nil, backupstatus=nil, diskcount=nil, disks=nil, snapshotids=nil, strategyid=nil, strategystatus=nil, strategyname=nil)
          @BackupTime = backuptime
          @EventStatus = eventstatus
          @BackupStatus = backupstatus
          @DiskCount = diskcount
          @Disks = disks
          @SnapshotIds = snapshotids
          @StrategyId = strategyid
          @StrategyStatus = strategystatus
          @StrategyName = strategyname
        end

        def deserialize(params)
          @BackupTime = params['BackupTime']
          @EventStatus = params['EventStatus']
          @BackupStatus = params['BackupStatus']
          @DiskCount = params['DiskCount']
          @Disks = params['Disks']
          @SnapshotIds = params['SnapshotIds']
          @StrategyId = params['StrategyId']
          @StrategyStatus = params['StrategyStatus']
          @StrategyName = params['StrategyName']
        end
      end

      # 防勒索诱饵篡改事件
      class RansomDefenseEvent < TencentCloud::Common::AbstractModel
        # @param Id: 事件id
        # @type Id: Integer
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param Quuid: cvm uuid
        # @type Quuid: String
        # @param HostName: 主机名称
        # @type HostName: String
        # @param Status: 事件状态 0待处理,1已处理,2已信任,3处理中,4已恢复备份
        # @type Status: Integer
        # @param BaitFilePath: 被篡改文件路径
        # @type BaitFilePath: String
        # @param FilePath: 恶意文件路径
        # @type FilePath: String
        # @param Pid: 恶意进程id
        # @type Pid: Integer
        # @param PidParam: 恶意进程参数
        # @type PidParam: String
        # @param FileSize: 恶意文件大小
        # @type FileSize: Integer
        # @param FileMd5: 恶意文件md5
        # @type FileMd5: String
        # @param Type: 事件类型:0加密勒索,1文件篡改
        # @type Type: Integer
        # @param CreateTime: 事件发送时间
        # @type CreateTime: String
        # @param InstanceId: cvm 实例id
        # @type InstanceId: String
        # @param ModifyTime: 事件修改事件
        # @type ModifyTime: String
        # @param StrategyId: 策略id
        # @type StrategyId: Integer
        # @param StrategyName: 策略名称
        # @type StrategyName: String
        # @param HostIp: 主机外网ip
        # @type HostIp: String
        # @param WanIp: 主机内网ip
        # @type WanIp: String
        # @param PsTree: 进程树 base64 json
        # @type PsTree: String
        # @param ProcessStartTime: 进程启动时间
        # @type ProcessStartTime: String
        # @param SnapshotNum: 主机拥有快照备份数
        # @type SnapshotNum: Integer

        attr_accessor :Id, :Uuid, :Quuid, :HostName, :Status, :BaitFilePath, :FilePath, :Pid, :PidParam, :FileSize, :FileMd5, :Type, :CreateTime, :InstanceId, :ModifyTime, :StrategyId, :StrategyName, :HostIp, :WanIp, :PsTree, :ProcessStartTime, :SnapshotNum

        def initialize(id=nil, uuid=nil, quuid=nil, hostname=nil, status=nil, baitfilepath=nil, filepath=nil, pid=nil, pidparam=nil, filesize=nil, filemd5=nil, type=nil, createtime=nil, instanceid=nil, modifytime=nil, strategyid=nil, strategyname=nil, hostip=nil, wanip=nil, pstree=nil, processstarttime=nil, snapshotnum=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @HostName = hostname
          @Status = status
          @BaitFilePath = baitfilepath
          @FilePath = filepath
          @Pid = pid
          @PidParam = pidparam
          @FileSize = filesize
          @FileMd5 = filemd5
          @Type = type
          @CreateTime = createtime
          @InstanceId = instanceid
          @ModifyTime = modifytime
          @StrategyId = strategyid
          @StrategyName = strategyname
          @HostIp = hostip
          @WanIp = wanip
          @PsTree = pstree
          @ProcessStartTime = processstarttime
          @SnapshotNum = snapshotnum
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @HostName = params['HostName']
          @Status = params['Status']
          @BaitFilePath = params['BaitFilePath']
          @FilePath = params['FilePath']
          @Pid = params['Pid']
          @PidParam = params['PidParam']
          @FileSize = params['FileSize']
          @FileMd5 = params['FileMd5']
          @Type = params['Type']
          @CreateTime = params['CreateTime']
          @InstanceId = params['InstanceId']
          @ModifyTime = params['ModifyTime']
          @StrategyId = params['StrategyId']
          @StrategyName = params['StrategyName']
          @HostIp = params['HostIp']
          @WanIp = params['WanIp']
          @PsTree = params['PsTree']
          @ProcessStartTime = params['ProcessStartTime']
          @SnapshotNum = params['SnapshotNum']
        end
      end

      # RansomDefenseRollback请求参数结构体
      class RansomDefenseRollbackRequest < TencentCloud::Common::AbstractModel
        # @param BackupTime: 快照时间
        # @type BackupTime: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param DiskInfo: 需要回滚的硬盘信息,硬盘直接用;分隔,留空为全部已快照磁盘: disk-id1|disk-name1;disk-id2|disk-name2
        # @type DiskInfo: String

        attr_accessor :BackupTime, :Quuid, :DiskInfo

        def initialize(backuptime=nil, quuid=nil, diskinfo=nil)
          @BackupTime = backuptime
          @Quuid = quuid
          @DiskInfo = diskinfo
        end

        def deserialize(params)
          @BackupTime = params['BackupTime']
          @Quuid = params['Quuid']
          @DiskInfo = params['DiskInfo']
        end
      end

      # RansomDefenseRollback返回参数结构体
      class RansomDefenseRollbackResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 防勒索回滚任务
      class RansomDefenseRollbackTask < TencentCloud::Common::AbstractModel
        # @param Id: 任务ID
        # @type Id: Integer
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param Status: 回滚任务状态:0进行中,1成功,2失败
        # @type Status: Integer
        # @param Disks: 硬盘id列表,;分隔
        # @type Disks: String
        # @param CreateTime: 操作时间
        # @type CreateTime: String
        # @param BackupTime: 快照时间
        # @type BackupTime: String
        # @param ModifyTime: Status!=0时为完成时间
        # @type ModifyTime: String
        # @param RegionInfo: 可用区信息
        # @type RegionInfo: :class:`Tencentcloud::Cwp.v20180228.models.RegionInfo`

        attr_accessor :Id, :Uuid, :Quuid, :MachineName, :Status, :Disks, :CreateTime, :BackupTime, :ModifyTime, :RegionInfo

        def initialize(id=nil, uuid=nil, quuid=nil, machinename=nil, status=nil, disks=nil, createtime=nil, backuptime=nil, modifytime=nil, regioninfo=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @MachineName = machinename
          @Status = status
          @Disks = disks
          @CreateTime = createtime
          @BackupTime = backuptime
          @ModifyTime = modifytime
          @RegionInfo = regioninfo
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @MachineName = params['MachineName']
          @Status = params['Status']
          @Disks = params['Disks']
          @CreateTime = params['CreateTime']
          @BackupTime = params['BackupTime']
          @ModifyTime = params['ModifyTime']
          unless params['RegionInfo'].nil?
            @RegionInfo = RegionInfo.new
            @RegionInfo.deserialize(params['RegionInfo'])
          end
        end
      end

      # 主机列表查询接口相应数据HostList的TagList节点
      class RansomDefenseStrategy < TencentCloud::Common::AbstractModel
        # @param Id: 策略id
        # @type Id: Integer
        # @param Uin: 操作uin
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uin: String
        # @param Name: 策略名称
        # @type Name: String
        # @param Description: 策略备注
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Description: String
        # @param Status: 开启状态:0关闭,1开启
        # @type Status: Integer
        # @param IsAll: 是否对所有主机生效
        # @type IsAll: Integer
        # @param IncludeDir: 包含目录,用;分隔
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IncludeDir: String
        # @param ExcludeDir: 包含目录,用;分隔
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ExcludeDir: String
        # @param BackupType: 备份模式: 0按周,1按天
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BackupType: Integer
        # @param Weekday: 备份星期天数(1-7):1;2;3;4
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Weekday: String
        # @param Hour: 备份执行时间点(0-23): 11:00;12:00
        # @type Hour: String
        # @param SaveDay: 保存天数,0永久保存
        # @type SaveDay: Integer
        # @param CreateTime: 创建时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CreateTime: String
        # @param ModifyTime: 最近修改时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param MachineCount: 绑定机器数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineCount: Integer

        attr_accessor :Id, :Uin, :Name, :Description, :Status, :IsAll, :IncludeDir, :ExcludeDir, :BackupType, :Weekday, :Hour, :SaveDay, :CreateTime, :ModifyTime, :MachineCount

        def initialize(id=nil, uin=nil, name=nil, description=nil, status=nil, isall=nil, includedir=nil, excludedir=nil, backuptype=nil, weekday=nil, hour=nil, saveday=nil, createtime=nil, modifytime=nil, machinecount=nil)
          @Id = id
          @Uin = uin
          @Name = name
          @Description = description
          @Status = status
          @IsAll = isall
          @IncludeDir = includedir
          @ExcludeDir = excludedir
          @BackupType = backuptype
          @Weekday = weekday
          @Hour = hour
          @SaveDay = saveday
          @CreateTime = createtime
          @ModifyTime = modifytime
          @MachineCount = machinecount
        end

        def deserialize(params)
          @Id = params['Id']
          @Uin = params['Uin']
          @Name = params['Name']
          @Description = params['Description']
          @Status = params['Status']
          @IsAll = params['IsAll']
          @IncludeDir = params['IncludeDir']
          @ExcludeDir = params['ExcludeDir']
          @BackupType = params['BackupType']
          @Weekday = params['Weekday']
          @Hour = params['Hour']
          @SaveDay = params['SaveDay']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @MachineCount = params['MachineCount']
        end
      end

      # 主机列表查询接口相应数据HostList的TagList节点
      class RansomDefenseStrategyDetail < TencentCloud::Common::AbstractModel
        # @param Id: 策略id
        # @type Id: Integer
        # @param Uin: 操作uin
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uin: String
        # @param Name: 策略名称
        # @type Name: String
        # @param Description: 策略备注
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Description: String
        # @param Status: 开启状态:0关闭,1开启
        # @type Status: Integer
        # @param IsAll: 是否对所有主机生效
        # @type IsAll: Integer
        # @param IncludeDir: 包含目录,用;分隔
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IncludeDir: String
        # @param ExcludeDir: 包含目录,用;分隔
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ExcludeDir: String
        # @param BackupType: 备份模式: 0按周,1按天
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BackupType: Integer
        # @param Weekday: 备份星期天数(1-7):1;2;3;4
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Weekday: String
        # @param Hour: 备份执行时间点(0-23): 11:00;12:00
        # @type Hour: String
        # @param SaveDay: 保存天数,0永久保存
        # @type SaveDay: Integer
        # @param CreateTime: 创建时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CreateTime: String
        # @param ModifyTime: 最近修改时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param MachineCount: 绑定机器数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineCount: Integer
        # @param EventCount: 策略关联事件数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventCount: Integer

        attr_accessor :Id, :Uin, :Name, :Description, :Status, :IsAll, :IncludeDir, :ExcludeDir, :BackupType, :Weekday, :Hour, :SaveDay, :CreateTime, :ModifyTime, :MachineCount, :EventCount

        def initialize(id=nil, uin=nil, name=nil, description=nil, status=nil, isall=nil, includedir=nil, excludedir=nil, backuptype=nil, weekday=nil, hour=nil, saveday=nil, createtime=nil, modifytime=nil, machinecount=nil, eventcount=nil)
          @Id = id
          @Uin = uin
          @Name = name
          @Description = description
          @Status = status
          @IsAll = isall
          @IncludeDir = includedir
          @ExcludeDir = excludedir
          @BackupType = backuptype
          @Weekday = weekday
          @Hour = hour
          @SaveDay = saveday
          @CreateTime = createtime
          @ModifyTime = modifytime
          @MachineCount = machinecount
          @EventCount = eventcount
        end

        def deserialize(params)
          @Id = params['Id']
          @Uin = params['Uin']
          @Name = params['Name']
          @Description = params['Description']
          @Status = params['Status']
          @IsAll = params['IsAll']
          @IncludeDir = params['IncludeDir']
          @ExcludeDir = params['ExcludeDir']
          @BackupType = params['BackupType']
          @Weekday = params['Weekday']
          @Hour = params['Hour']
          @SaveDay = params['SaveDay']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @MachineCount = params['MachineCount']
          @EventCount = params['EventCount']
        end
      end

      # 防勒索策略绑定主机备份详情
      class RansomDefenseStrategyMachineBackupInfo < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param InstanceId: 主机实例id
        # @type InstanceId: String
        # @param MachineIp: 内网ip
        # @type MachineIp: String
        # @param MachineWanIp: 外网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineWanIp: String
        # @param CloudTags: 云标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CloudTags: Array
        # @param RegionInfo: 可用区信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RegionInfo: :class:`Tencentcloud::Cwp.v20180228.models.RegionInfo`
        # @param Tag: 主机安全标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param Status: 防护状态:0关闭,1开启
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Status: Integer
        # @param StrategyId: 策略id,为0时未绑定策略
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyId: Integer
        # @param DiskInfo: 硬盘信息,为空时所有硬盘生效:
        # ;分割 diskId1|diskName1;diskId2|diskName2
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DiskInfo: String
        # @param StrategyName: 策略名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyName: String
        # @param BackupCount: 备份数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BackupCount: Integer
        # @param LastBackupStatus: 最近一次备份状态:0备份中,1正常,2失败,9暂无备份
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastBackupStatus: Integer
        # @param LastBackupMessage: 最近一次备份失败原因
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastBackupMessage: String
        # @param LastBackupTime: 最近一次备份时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastBackupTime: String
        # @param RollBackPercent: 最近一次回滚进度百分比
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RollBackPercent: Integer
        # @param RollBackStatus: 最近一次回滚状态:0进行中,1成功,2失败
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RollBackStatus: Integer
        # @param BackupSuccessCount: 备份成功次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BackupSuccessCount: Integer

        attr_accessor :Uuid, :Quuid, :MachineName, :InstanceId, :MachineIp, :MachineWanIp, :CloudTags, :RegionInfo, :Tag, :Status, :StrategyId, :DiskInfo, :StrategyName, :BackupCount, :LastBackupStatus, :LastBackupMessage, :LastBackupTime, :RollBackPercent, :RollBackStatus, :BackupSuccessCount

        def initialize(uuid=nil, quuid=nil, machinename=nil, instanceid=nil, machineip=nil, machinewanip=nil, cloudtags=nil, regioninfo=nil, tag=nil, status=nil, strategyid=nil, diskinfo=nil, strategyname=nil, backupcount=nil, lastbackupstatus=nil, lastbackupmessage=nil, lastbackuptime=nil, rollbackpercent=nil, rollbackstatus=nil, backupsuccesscount=nil)
          @Uuid = uuid
          @Quuid = quuid
          @MachineName = machinename
          @InstanceId = instanceid
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @CloudTags = cloudtags
          @RegionInfo = regioninfo
          @Tag = tag
          @Status = status
          @StrategyId = strategyid
          @DiskInfo = diskinfo
          @StrategyName = strategyname
          @BackupCount = backupcount
          @LastBackupStatus = lastbackupstatus
          @LastBackupMessage = lastbackupmessage
          @LastBackupTime = lastbackuptime
          @RollBackPercent = rollbackpercent
          @RollBackStatus = rollbackstatus
          @BackupSuccessCount = backupsuccesscount
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @MachineName = params['MachineName']
          @InstanceId = params['InstanceId']
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          unless params['CloudTags'].nil?
            @CloudTags = []
            params['CloudTags'].each do |i|
              tag_tmp = Tag.new
              tag_tmp.deserialize(i)
              @CloudTags << tag_tmp
            end
          end
          unless params['RegionInfo'].nil?
            @RegionInfo = RegionInfo.new
            @RegionInfo.deserialize(params['RegionInfo'])
          end
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Status = params['Status']
          @StrategyId = params['StrategyId']
          @DiskInfo = params['DiskInfo']
          @StrategyName = params['StrategyName']
          @BackupCount = params['BackupCount']
          @LastBackupStatus = params['LastBackupStatus']
          @LastBackupMessage = params['LastBackupMessage']
          @LastBackupTime = params['LastBackupTime']
          @RollBackPercent = params['RollBackPercent']
          @RollBackStatus = params['RollBackStatus']
          @BackupSuccessCount = params['BackupSuccessCount']
        end
      end

      # 防勒索主机列表
      class RansomDefenseStrategyMachineDetail < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param InstanceId: 主机实例id
        # @type InstanceId: String
        # @param MachineIp: 内网ip
        # @type MachineIp: String
        # @param MachineWanIp: 外网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineWanIp: String
        # @param CloudTags: 云标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CloudTags: Array
        # @param RegionInfo: 可用区信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RegionInfo: :class:`Tencentcloud::Cwp.v20180228.models.RegionInfo`
        # @param Tag: 主机安全标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tag: Array
        # @param Status: 防护状态:0关闭,1开启
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Status: Integer
        # @param StrategyId: 策略id,为0时未绑定策略
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyId: Integer
        # @param DiskInfo: 硬盘信息,为空时所有硬盘生效:
        # ;分割 diskId1|diskName1;diskId2|diskName2
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DiskInfo: String
        # @param HostVersion: 版本信息:0-基础版 1-专业版 2-旗舰版 3-普惠版
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostVersion: Integer
        # @param StrategyName: 策略名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyName: String

        attr_accessor :Uuid, :Quuid, :MachineName, :InstanceId, :MachineIp, :MachineWanIp, :CloudTags, :RegionInfo, :Tag, :Status, :StrategyId, :DiskInfo, :HostVersion, :StrategyName

        def initialize(uuid=nil, quuid=nil, machinename=nil, instanceid=nil, machineip=nil, machinewanip=nil, cloudtags=nil, regioninfo=nil, tag=nil, status=nil, strategyid=nil, diskinfo=nil, hostversion=nil, strategyname=nil)
          @Uuid = uuid
          @Quuid = quuid
          @MachineName = machinename
          @InstanceId = instanceid
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @CloudTags = cloudtags
          @RegionInfo = regioninfo
          @Tag = tag
          @Status = status
          @StrategyId = strategyid
          @DiskInfo = diskinfo
          @HostVersion = hostversion
          @StrategyName = strategyname
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @MachineName = params['MachineName']
          @InstanceId = params['InstanceId']
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          unless params['CloudTags'].nil?
            @CloudTags = []
            params['CloudTags'].each do |i|
              tag_tmp = Tag.new
              tag_tmp.deserialize(i)
              @CloudTags << tag_tmp
            end
          end
          unless params['RegionInfo'].nil?
            @RegionInfo = RegionInfo.new
            @RegionInfo.deserialize(params['RegionInfo'])
          end
          unless params['Tag'].nil?
            @Tag = []
            params['Tag'].each do |i|
              machinetag_tmp = MachineTag.new
              machinetag_tmp.deserialize(i)
              @Tag << machinetag_tmp
            end
          end
          @Status = params['Status']
          @StrategyId = params['StrategyId']
          @DiskInfo = params['DiskInfo']
          @HostVersion = params['HostVersion']
          @StrategyName = params['StrategyName']
        end
      end

      # 防勒索机器硬盘配置
      class RansomDefenseStrategyMachineInfo < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param DiskInfo: 指定硬盘列表,为空时表示所有硬盘:disk_id1|disk_name1;disk_id2|disk_name2
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DiskInfo: String

        attr_accessor :Uuid, :DiskInfo

        def initialize(uuid=nil, diskinfo=nil)
          @Uuid = uuid
          @DiskInfo = diskinfo
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @DiskInfo = params['DiskInfo']
        end
      end

      # 客户端异常信息结构
      class RecordInfo < TencentCloud::Common::AbstractModel
        # @param HostIP: 主机ip
        # @type HostIP: String
        # @param InstanceID: 主机实例id
        # @type InstanceID: String
        # @param OfflineTime: 客户端离线时间
        # @type OfflineTime: String
        # @param UninstallTime: 客户端卸载时间
        # @type UninstallTime: String
        # @param UninstallCmd: 客户端卸载调用链
        # @type UninstallCmd: String
        # @param Uuid: 客户端uuid
        # @type Uuid: String

        attr_accessor :HostIP, :InstanceID, :OfflineTime, :UninstallTime, :UninstallCmd, :Uuid

        def initialize(hostip=nil, instanceid=nil, offlinetime=nil, uninstalltime=nil, uninstallcmd=nil, uuid=nil)
          @HostIP = hostip
          @InstanceID = instanceid
          @OfflineTime = offlinetime
          @UninstallTime = uninstalltime
          @UninstallCmd = uninstallcmd
          @Uuid = uuid
        end

        def deserialize(params)
          @HostIP = params['HostIP']
          @InstanceID = params['InstanceID']
          @OfflineTime = params['OfflineTime']
          @UninstallTime = params['UninstallTime']
          @UninstallCmd = params['UninstallCmd']
          @Uuid = params['Uuid']
        end
      end

      # RecoverMalwares请求参数结构体
      class RecoverMalwaresRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 木马Id数组(最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # RecoverMalwares返回参数结构体
      class RecoverMalwaresResponse < TencentCloud::Common::AbstractModel
        # @param SuccessIds: 恢复成功id数组,若无则返回空数组
        # @type SuccessIds: Array
        # @param FailedIds: 恢复失败id数组,若无则返回空数组
        # @type FailedIds: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :SuccessIds, :FailedIds, :RequestId

        def initialize(successids=nil, failedids=nil, requestid=nil)
          @SuccessIds = successids
          @FailedIds = failedids
          @RequestId = requestid
        end

        def deserialize(params)
          @SuccessIds = params['SuccessIds']
          @FailedIds = params['FailedIds']
          @RequestId = params['RequestId']
        end
      end

      # 地域信息
      class RegionInfo < TencentCloud::Common::AbstractModel
        # @param Region: 地域标志,如 ap-guangzhou,ap-shanghai,ap-beijing
        # @type Region: String
        # @param RegionName: 地域中文名,如华南地区(广州),华东地区(上海金融),华北地区(北京)
        # @type RegionName: String
        # @param RegionId: 地域ID
        # @type RegionId: Integer
        # @param RegionCode: 地域代码,如 gz,sh,bj
        # @type RegionCode: String
        # @param RegionNameEn: 地域英文名
        # @type RegionNameEn: String

        attr_accessor :Region, :RegionName, :RegionId, :RegionCode, :RegionNameEn

        def initialize(region=nil, regionname=nil, regionid=nil, regioncode=nil, regionnameen=nil)
          @Region = region
          @RegionName = regionname
          @RegionId = regionid
          @RegionCode = regioncode
          @RegionNameEn = regionnameen
        end

        def deserialize(params)
          @Region = params['Region']
          @RegionName = params['RegionName']
          @RegionId = params['RegionId']
          @RegionCode = params['RegionCode']
          @RegionNameEn = params['RegionNameEn']
        end
      end

      # 地域列表详情
      class RegionListDetail < TencentCloud::Common::AbstractModel
        # @param MachineType: 机器类型
        # CVM 腾讯云云服务器
        # LH 腾讯云轻量服务器
        # ECM 腾讯云边缘计算服务器
        # BM 腾讯云黑石1.0 服务器
        # Other  其他服务器(非腾讯云)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineType: String
        # @param CloudFrom: 0 腾讯云
        # 1 IDC机房
        # 2 阿里云
        # 3 华为云
        # 4 亚马逊
        # 5 微软
        # 6 Google
        # 7 Oracle
        # 8 Digital Ocean
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CloudFrom: Integer
        # @param RegionList: 地域列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RegionList: Array

        attr_accessor :MachineType, :CloudFrom, :RegionList

        def initialize(machinetype=nil, cloudfrom=nil, regionlist=nil)
          @MachineType = machinetype
          @CloudFrom = cloudfrom
          @RegionList = regionlist
        end

        def deserialize(params)
          @MachineType = params['MachineType']
          @CloudFrom = params['CloudFrom']
          unless params['RegionList'].nil?
            @RegionList = []
            params['RegionList'].each do |i|
              regioninfo_tmp = RegionInfo.new
              regioninfo_tmp.deserialize(i)
              @RegionList << regioninfo_tmp
            end
          end
        end
      end

      # 地域信息
      class RegionSet < TencentCloud::Common::AbstractModel
        # @param RegionName: 地域名称
        # @type RegionName: String
        # @param ZoneSet: 可用区信息
        # @type ZoneSet: Array

        attr_accessor :RegionName, :ZoneSet

        def initialize(regionname=nil, zoneset=nil)
          @RegionName = regionname
          @ZoneSet = zoneset
        end

        def deserialize(params)
          @RegionName = params['RegionName']
          unless params['ZoneSet'].nil?
            @ZoneSet = []
            params['ZoneSet'].each do |i|
              zoneinfo_tmp = ZoneInfo.new
              zoneinfo_tmp.deserialize(i)
              @ZoneSet << zoneinfo_tmp
            end
          end
        end
      end

      # RemoveLocalStorageItem请求参数结构体
      class RemoveLocalStorageItemRequest < TencentCloud::Common::AbstractModel
        # @param Key: 键
        # @type Key: String

        attr_accessor :Key

        def initialize(key=nil)
          @Key = key
        end

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

      # RemoveLocalStorageItem返回参数结构体
      class RemoveLocalStorageItemResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # RemoveMachine请求参数结构体
      class RemoveMachineRequest < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机Uuid
        # @type Uuid: String
        # @param Quuid: 主机Quuid
        # @type Quuid: String

        attr_accessor :Uuid, :Quuid

        def initialize(uuid=nil, quuid=nil)
          @Uuid = uuid
          @Quuid = quuid
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
        end
      end

      # RemoveMachine返回参数结构体
      class RemoveMachineResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # RetryCreateSnapshot请求参数结构体
      class RetryCreateSnapshotRequest < TencentCloud::Common::AbstractModel
        # @param FixId: 修复任务id
        # @type FixId: Integer
        # @param Quuid: 主机quuid
        # @type Quuid: String
        # @param Id: 任务进度返回的快照唯一Id
        # @type Id: Integer

        attr_accessor :FixId, :Quuid, :Id

        def initialize(fixid=nil, quuid=nil, id=nil)
          @FixId = fixid
          @Quuid = quuid
          @Id = id
        end

        def deserialize(params)
          @FixId = params['FixId']
          @Quuid = params['Quuid']
          @Id = params['Id']
        end
      end

      # RetryCreateSnapshot返回参数结构体
      class RetryCreateSnapshotResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # RetryVulFix请求参数结构体
      class RetryVulFixRequest < TencentCloud::Common::AbstractModel
        # @param FixId: 漏洞id
        # @type FixId: Integer
        # @param Quuid: 主机Quuid
        # @type Quuid: String
        # @param VulId: 漏洞id
        # @type VulId: Integer

        attr_accessor :FixId, :Quuid, :VulId

        def initialize(fixid=nil, quuid=nil, vulid=nil)
          @FixId = fixid
          @Quuid = quuid
          @VulId = vulid
        end

        def deserialize(params)
          @FixId = params['FixId']
          @Quuid = params['Quuid']
          @VulId = params['VulId']
        end
      end

      # RetryVulFix返回参数结构体
      class RetryVulFixResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 反弹Shell数据
      class ReverseShell < TencentCloud::Common::AbstractModel
        # @param Id: ID 主键
        # @type Id: Integer
        # @param Uuid: 主机安全UUID
        # @type Uuid: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param Hostip: 主机内网IP
        # @type Hostip: String
        # @param DstIp: 目标IP
        # @type DstIp: String
        # @param DstPort: 目标端口
        # @type DstPort: Integer
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param FullPath: 进程路径
        # @type FullPath: String
        # @param CmdLine: 命令详情
        # @type CmdLine: String
        # @param UserName: 执行用户
        # @type UserName: String
        # @param UserGroup: 执行用户组
        # @type UserGroup: String
        # @param ParentProcName: 父进程名
        # @type ParentProcName: String
        # @param ParentProcUser: 父进程用户
        # @type ParentProcUser: String
        # @param ParentProcGroup: 父进程用户组
        # @type ParentProcGroup: String
        # @param ParentProcPath: 父进程路径
        # @type ParentProcPath: String
        # @param Status: 处理状态:0-待处理 2-白名单 3-已处理 4-已忽略
        # @type Status: Integer
        # @param CreateTime: 产生时间
        # @type CreateTime: String
        # @param MachineName: 主机名
        # @type MachineName: String
        # @param ProcTree: 进程树
        # @type ProcTree: String
        # @param DetectBy: 检测方法: 0行为分析; 1命令特征检测
        # @type DetectBy: Integer
        # @param MachineExtraInfo:  主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Pid: 进程id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Pid: Integer
        # @param RiskLevel: 威胁等级:0中危,1高危
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RiskLevel: Integer

        attr_accessor :Id, :Uuid, :Quuid, :Hostip, :DstIp, :DstPort, :ProcessName, :FullPath, :CmdLine, :UserName, :UserGroup, :ParentProcName, :ParentProcUser, :ParentProcGroup, :ParentProcPath, :Status, :CreateTime, :MachineName, :ProcTree, :DetectBy, :MachineExtraInfo, :Pid, :RiskLevel

        def initialize(id=nil, uuid=nil, quuid=nil, hostip=nil, dstip=nil, dstport=nil, processname=nil, fullpath=nil, cmdline=nil, username=nil, usergroup=nil, parentprocname=nil, parentprocuser=nil, parentprocgroup=nil, parentprocpath=nil, status=nil, createtime=nil, machinename=nil, proctree=nil, detectby=nil, machineextrainfo=nil, pid=nil, risklevel=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @Hostip = hostip
          @DstIp = dstip
          @DstPort = dstport
          @ProcessName = processname
          @FullPath = fullpath
          @CmdLine = cmdline
          @UserName = username
          @UserGroup = usergroup
          @ParentProcName = parentprocname
          @ParentProcUser = parentprocuser
          @ParentProcGroup = parentprocgroup
          @ParentProcPath = parentprocpath
          @Status = status
          @CreateTime = createtime
          @MachineName = machinename
          @ProcTree = proctree
          @DetectBy = detectby
          @MachineExtraInfo = machineextrainfo
          @Pid = pid
          @RiskLevel = risklevel
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Hostip = params['Hostip']
          @DstIp = params['DstIp']
          @DstPort = params['DstPort']
          @ProcessName = params['ProcessName']
          @FullPath = params['FullPath']
          @CmdLine = params['CmdLine']
          @UserName = params['UserName']
          @UserGroup = params['UserGroup']
          @ParentProcName = params['ParentProcName']
          @ParentProcUser = params['ParentProcUser']
          @ParentProcGroup = params['ParentProcGroup']
          @ParentProcPath = params['ParentProcPath']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MachineName = params['MachineName']
          @ProcTree = params['ProcTree']
          @DetectBy = params['DetectBy']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Pid = params['Pid']
          @RiskLevel = params['RiskLevel']
        end
      end

      # 反弹Shell数据详情
      class ReverseShellEventInfo < TencentCloud::Common::AbstractModel
        # @param Id: ID 主键
        # @type Id: Integer
        # @param Uuid: 云镜UUID
        # @type Uuid: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param HostIp: 主机内网IP
        # @type HostIp: String
        # @param DstIp: 目标IP
        # @type DstIp: String
        # @param DstPort: 目标端口
        # @type DstPort: Integer
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param FullPath: 进程路径
        # @type FullPath: String
        # @param CmdLine: 命令详情
        # @type CmdLine: String
        # @param UserName: 执行用户
        # @type UserName: String
        # @param UserGroup: 执行用户组
        # @type UserGroup: String
        # @param ParentProcName: 父进程名
        # @type ParentProcName: String
        # @param ParentProcUser: 父进程用户
        # @type ParentProcUser: String
        # @param ParentProcGroup: 父进程用户组
        # @type ParentProcGroup: String
        # @param ParentProcPath: 父进程路径
        # @type ParentProcPath: String
        # @param Status: 处理状态:0-待处理 2-白名单 3-已处理 4-已忽略
        # @type Status: Integer
        # @param CreateTime: 产生时间
        # @type CreateTime: String
        # @param MachineName: 主机名
        # @type MachineName: String
        # @param DetectBy: 检测方法
        # @type DetectBy: Integer
        # @param PsTree: 进程树 json  pid:进程id,exe:文件路径 ,account:进程所属用组和用户 ,cmdline:执行命令,ssh_service: SSH服务ip, ssh_soure:登录源
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PsTree: String
        # @param SuggestScheme: 建议方案
        # @type SuggestScheme: String
        # @param HarmDescribe: 描述
        # @type HarmDescribe: String
        # @param Tags: 标签
        # @type Tags: Array
        # @param References: 参考链接
        # @type References: Array
        # @param MachineWanIp: 主机外网ip
        # @type MachineWanIp: String
        # @param MachineStatus: 主机在线状态 OFFLINE  ONLINE
        # @type MachineStatus: String
        # @param ModifyTime: 处理时间
        # @type ModifyTime: String

        attr_accessor :Id, :Uuid, :Quuid, :HostIp, :DstIp, :DstPort, :ProcessName, :FullPath, :CmdLine, :UserName, :UserGroup, :ParentProcName, :ParentProcUser, :ParentProcGroup, :ParentProcPath, :Status, :CreateTime, :MachineName, :DetectBy, :PsTree, :SuggestScheme, :HarmDescribe, :Tags, :References, :MachineWanIp, :MachineStatus, :ModifyTime

        def initialize(id=nil, uuid=nil, quuid=nil, hostip=nil, dstip=nil, dstport=nil, processname=nil, fullpath=nil, cmdline=nil, username=nil, usergroup=nil, parentprocname=nil, parentprocuser=nil, parentprocgroup=nil, parentprocpath=nil, status=nil, createtime=nil, machinename=nil, detectby=nil, pstree=nil, suggestscheme=nil, harmdescribe=nil, tags=nil, references=nil, machinewanip=nil, machinestatus=nil, modifytime=nil)
          @Id = id
          @Uuid = uuid
          @Quuid = quuid
          @HostIp = hostip
          @DstIp = dstip
          @DstPort = dstport
          @ProcessName = processname
          @FullPath = fullpath
          @CmdLine = cmdline
          @UserName = username
          @UserGroup = usergroup
          @ParentProcName = parentprocname
          @ParentProcUser = parentprocuser
          @ParentProcGroup = parentprocgroup
          @ParentProcPath = parentprocpath
          @Status = status
          @CreateTime = createtime
          @MachineName = machinename
          @DetectBy = detectby
          @PsTree = pstree
          @SuggestScheme = suggestscheme
          @HarmDescribe = harmdescribe
          @Tags = tags
          @References = references
          @MachineWanIp = machinewanip
          @MachineStatus = machinestatus
          @ModifyTime = modifytime
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @HostIp = params['HostIp']
          @DstIp = params['DstIp']
          @DstPort = params['DstPort']
          @ProcessName = params['ProcessName']
          @FullPath = params['FullPath']
          @CmdLine = params['CmdLine']
          @UserName = params['UserName']
          @UserGroup = params['UserGroup']
          @ParentProcName = params['ParentProcName']
          @ParentProcUser = params['ParentProcUser']
          @ParentProcGroup = params['ParentProcGroup']
          @ParentProcPath = params['ParentProcPath']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MachineName = params['MachineName']
          @DetectBy = params['DetectBy']
          @PsTree = params['PsTree']
          @SuggestScheme = params['SuggestScheme']
          @HarmDescribe = params['HarmDescribe']
          @Tags = params['Tags']
          @References = params['References']
          @MachineWanIp = params['MachineWanIp']
          @MachineStatus = params['MachineStatus']
          @ModifyTime = params['ModifyTime']
        end
      end

      # 反弹Shell规则
      class ReverseShellRule < TencentCloud::Common::AbstractModel
        # @param Id: 规则ID
        # @type Id: Integer
        # @param Uuid: 客户端ID
        # @type Uuid: String
        # @param ProcessName: 进程名称
        # @type ProcessName: String
        # @param DestIp: 目标IP
        # @type DestIp: String
        # @param DestPort: 目标端口
        # @type DestPort: String
        # @param Operator: 操作人
        # @type Operator: String
        # @param IsGlobal: 是否全局规则
        # @type IsGlobal: Integer
        # @param Status: 状态 (0: 有效 1: 无效)
        # @type Status: Integer
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 修改时间
        # @type ModifyTime: String
        # @param Hostip: 主机IP
        # @type Hostip: String

        attr_accessor :Id, :Uuid, :ProcessName, :DestIp, :DestPort, :Operator, :IsGlobal, :Status, :CreateTime, :ModifyTime, :Hostip

        def initialize(id=nil, uuid=nil, processname=nil, destip=nil, destport=nil, operator=nil, isglobal=nil, status=nil, createtime=nil, modifytime=nil, hostip=nil)
          @Id = id
          @Uuid = uuid
          @ProcessName = processname
          @DestIp = destip
          @DestPort = destport
          @Operator = operator
          @IsGlobal = isglobal
          @Status = status
          @CreateTime = createtime
          @ModifyTime = modifytime
          @Hostip = hostip
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @ProcessName = params['ProcessName']
          @DestIp = params['DestIp']
          @DestPort = params['DestPort']
          @Operator = params['Operator']
          @IsGlobal = params['IsGlobal']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
          @Hostip = params['Hostip']
        end
      end

      # 恶意请求事件
      class RiskDnsEvent < TencentCloud::Common::AbstractModel
        # @param Id: 事件Id
        # @type Id: Integer
        # @param PolicyId: 策略ID
        # @type PolicyId: Integer
        # @param PolicyType: 命中策略类型[-1:未知|0系统|1:用户]
        # @type PolicyType: Integer
        # @param PolicyName: 命中策略名称
        # @type PolicyName: String
        # @param ProtectLevel: 保护级别[0:基础版|1:专业版|2:旗舰版]
        # @type ProtectLevel: Integer
        # @param HostId: 主机ID
        # @type HostId: String
        # @param HostName: 主机名称
        # @type HostName: String
        # @param HostIp: 主机IP
        # @type HostIp: String
        # @param WanIp: 外网IP
        # @type WanIp: String
        # @param AgentId: 客户端ID
        # @type AgentId: String
        # @param Domain: 访问域名
        # @type Domain: String
        # @param Tags: 标签特性
        # @type Tags: Array
        # @param AccessCount: 访问次数
        # @type AccessCount: Integer
        # @param ThreatDesc: 威胁描述
        # @type ThreatDesc: String
        # @param SuggestSolution: 修复方案
        # @type SuggestSolution: String
        # @param ReferenceLink: 参考链接
        # @type ReferenceLink: String
        # @param HandleStatus: 处理状态;[0:待处理|2:已加白|3:非信任状态|4:已处理|5:已忽略]
        # @type HandleStatus: Integer
        # @param Pid: 进程ID
        # @type Pid: Integer
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param ProcessMd5: 进程MD5
        # @type ProcessMd5: String
        # @param CmdLine: 命令行
        # @type CmdLine: String
        # @param FirstTime: 首次访问时间
        # @type FirstTime: String
        # @param LastTime: 最近访问时间
        # @type LastTime: String
        # @param HostStatus: 主机在线状态[OFFLINE:离线|ONLINE:在线|UNKNOWN:未知]
        # @type HostStatus: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param OsType: [1:CentOS|2:Debian|3:Gentoo|4:Redhat|5:Ubuntu|6:Windows|7:TencentOS|8:CoreOS|9:FreeBSD|10:SUSE]
        # @type OsType: Integer

        attr_accessor :Id, :PolicyId, :PolicyType, :PolicyName, :ProtectLevel, :HostId, :HostName, :HostIp, :WanIp, :AgentId, :Domain, :Tags, :AccessCount, :ThreatDesc, :SuggestSolution, :ReferenceLink, :HandleStatus, :Pid, :ProcessName, :ProcessMd5, :CmdLine, :FirstTime, :LastTime, :HostStatus, :MachineExtraInfo, :OsType

        def initialize(id=nil, policyid=nil, policytype=nil, policyname=nil, protectlevel=nil, hostid=nil, hostname=nil, hostip=nil, wanip=nil, agentid=nil, domain=nil, tags=nil, accesscount=nil, threatdesc=nil, suggestsolution=nil, referencelink=nil, handlestatus=nil, pid=nil, processname=nil, processmd5=nil, cmdline=nil, firsttime=nil, lasttime=nil, hoststatus=nil, machineextrainfo=nil, ostype=nil)
          @Id = id
          @PolicyId = policyid
          @PolicyType = policytype
          @PolicyName = policyname
          @ProtectLevel = protectlevel
          @HostId = hostid
          @HostName = hostname
          @HostIp = hostip
          @WanIp = wanip
          @AgentId = agentid
          @Domain = domain
          @Tags = tags
          @AccessCount = accesscount
          @ThreatDesc = threatdesc
          @SuggestSolution = suggestsolution
          @ReferenceLink = referencelink
          @HandleStatus = handlestatus
          @Pid = pid
          @ProcessName = processname
          @ProcessMd5 = processmd5
          @CmdLine = cmdline
          @FirstTime = firsttime
          @LastTime = lasttime
          @HostStatus = hoststatus
          @MachineExtraInfo = machineextrainfo
          @OsType = ostype
        end

        def deserialize(params)
          @Id = params['Id']
          @PolicyId = params['PolicyId']
          @PolicyType = params['PolicyType']
          @PolicyName = params['PolicyName']
          @ProtectLevel = params['ProtectLevel']
          @HostId = params['HostId']
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @WanIp = params['WanIp']
          @AgentId = params['AgentId']
          @Domain = params['Domain']
          @Tags = params['Tags']
          @AccessCount = params['AccessCount']
          @ThreatDesc = params['ThreatDesc']
          @SuggestSolution = params['SuggestSolution']
          @ReferenceLink = params['ReferenceLink']
          @HandleStatus = params['HandleStatus']
          @Pid = params['Pid']
          @ProcessName = params['ProcessName']
          @ProcessMd5 = params['ProcessMd5']
          @CmdLine = params['CmdLine']
          @FirstTime = params['FirstTime']
          @LastTime = params['LastTime']
          @HostStatus = params['HostStatus']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @OsType = params['OsType']
        end
      end

      # 恶意请求列表
      class RiskDnsList < TencentCloud::Common::AbstractModel
        # @param Url: 对外访问域名
        # @type Url: String
        # @param AccessCount: 访问次数
        # @type AccessCount: Integer
        # @param ProcessName: 进程名
        # @type ProcessName: String
        # @param ProcessMd5: 进程MD5
        # @type ProcessMd5: String
        # @param GlobalRuleId: 是否为全局规则,0否,1是
        # @type GlobalRuleId: Integer
        # @param UserRuleId: 用户规则id
        # @type UserRuleId: Integer
        # @param Status: 状态;0-待处理,2-已加白,3-非信任状态,4-已处理,5-已忽略
        # @type Status: Integer
        # @param CreateTime: 首次访问时间
        # @type CreateTime: String
        # @param MergeTime: 最近访问时间
        # @type MergeTime: String
        # @param Quuid: 唯一 Quuid
        # @type Quuid: String
        # @param HostIp: 主机ip
        # @type HostIp: String
        # @param Alias: 别名
        # @type Alias: String
        # @param Description: 描述
        # @type Description: String
        # @param Id: 唯一ID
        # @type Id: Integer
        # @param Reference: 参考
        # @type Reference: String
        # @param CmdLine: 命令行
        # @type CmdLine: String
        # @param Pid: 进程号
        # @type Pid: Integer
        # @param Uuid: 唯一UUID
        # @type Uuid: String
        # @param SuggestScheme: 建议方案
        # @type SuggestScheme: String
        # @param Tags: 标签特性
        # @type Tags: Array
        # @param MachineWanIp: 外网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineWanIp: String
        # @param MachineStatus: 主机在线状态[OFFLINE:离线|ONLINE:在线|UNKNOWN:未知]
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineStatus: String

        attr_accessor :Url, :AccessCount, :ProcessName, :ProcessMd5, :GlobalRuleId, :UserRuleId, :Status, :CreateTime, :MergeTime, :Quuid, :HostIp, :Alias, :Description, :Id, :Reference, :CmdLine, :Pid, :Uuid, :SuggestScheme, :Tags, :MachineWanIp, :MachineStatus

        def initialize(url=nil, accesscount=nil, processname=nil, processmd5=nil, globalruleid=nil, userruleid=nil, status=nil, createtime=nil, mergetime=nil, quuid=nil, hostip=nil, _alias=nil, description=nil, id=nil, reference=nil, cmdline=nil, pid=nil, uuid=nil, suggestscheme=nil, tags=nil, machinewanip=nil, machinestatus=nil)
          @Url = url
          @AccessCount = accesscount
          @ProcessName = processname
          @ProcessMd5 = processmd5
          @GlobalRuleId = globalruleid
          @UserRuleId = userruleid
          @Status = status
          @CreateTime = createtime
          @MergeTime = mergetime
          @Quuid = quuid
          @HostIp = hostip
          @Alias = _alias
          @Description = description
          @Id = id
          @Reference = reference
          @CmdLine = cmdline
          @Pid = pid
          @Uuid = uuid
          @SuggestScheme = suggestscheme
          @Tags = tags
          @MachineWanIp = machinewanip
          @MachineStatus = machinestatus
        end

        def deserialize(params)
          @Url = params['Url']
          @AccessCount = params['AccessCount']
          @ProcessName = params['ProcessName']
          @ProcessMd5 = params['ProcessMd5']
          @GlobalRuleId = params['GlobalRuleId']
          @UserRuleId = params['UserRuleId']
          @Status = params['Status']
          @CreateTime = params['CreateTime']
          @MergeTime = params['MergeTime']
          @Quuid = params['Quuid']
          @HostIp = params['HostIp']
          @Alias = params['Alias']
          @Description = params['Description']
          @Id = params['Id']
          @Reference = params['Reference']
          @CmdLine = params['CmdLine']
          @Pid = params['Pid']
          @Uuid = params['Uuid']
          @SuggestScheme = params['SuggestScheme']
          @Tags = params['Tags']
          @MachineWanIp = params['MachineWanIp']
          @MachineStatus = params['MachineStatus']
        end
      end

      # 恶意请求策略
      class RiskDnsPolicy < TencentCloud::Common::AbstractModel
        # @param PolicyName: 策略名称
        # @type PolicyName: String
        # @param PolicyType: 策略类型[0:系统,1:用户]
        # @type PolicyType: Integer
        # @param PolicyAction: 策略动作[0:告警,1:放行,2:拦截+告警]
        # @type PolicyAction: Integer
        # @param HostScope: 主机范围[1: 所有专业版+旗舰版|2:所有旗舰版|0: 部分主机]
        # @type HostScope: Integer
        # @param HostIds: 主机ID
        # @type HostIds: Array
        # @param Domains: 域名,作为入参时需要进行base64 encode
        # @type Domains: Array
        # @param IsEnabled: 是否生效[0:生效,1:不生效]
        # @type IsEnabled: Integer
        # @param PolicyId: 策略ID
        # @type PolicyId: Integer
        # @param PolicyDesc: 策略描述
        # @type PolicyDesc: String
        # @param IsDealOldEvent: 是否处理之前的事件[0:不处理|1:处理]
        # @type IsDealOldEvent: Integer
        # @param UpdateTime: 更新时间
        # @type UpdateTime: String
        # @param EventId: 事件ID
        # @type EventId: Integer

        attr_accessor :PolicyName, :PolicyType, :PolicyAction, :HostScope, :HostIds, :Domains, :IsEnabled, :PolicyId, :PolicyDesc, :IsDealOldEvent, :UpdateTime, :EventId

        def initialize(policyname=nil, policytype=nil, policyaction=nil, hostscope=nil, hostids=nil, domains=nil, isenabled=nil, policyid=nil, policydesc=nil, isdealoldevent=nil, updatetime=nil, eventid=nil)
          @PolicyName = policyname
          @PolicyType = policytype
          @PolicyAction = policyaction
          @HostScope = hostscope
          @HostIds = hostids
          @Domains = domains
          @IsEnabled = isenabled
          @PolicyId = policyid
          @PolicyDesc = policydesc
          @IsDealOldEvent = isdealoldevent
          @UpdateTime = updatetime
          @EventId = eventid
        end

        def deserialize(params)
          @PolicyName = params['PolicyName']
          @PolicyType = params['PolicyType']
          @PolicyAction = params['PolicyAction']
          @HostScope = params['HostScope']
          @HostIds = params['HostIds']
          @Domains = params['Domains']
          @IsEnabled = params['IsEnabled']
          @PolicyId = params['PolicyId']
          @PolicyDesc = params['PolicyDesc']
          @IsDealOldEvent = params['IsDealOldEvent']
          @UpdateTime = params['UpdateTime']
          @EventId = params['EventId']
        end
      end

      # 异常进程事件
      class RiskProcessEvent < TencentCloud::Common::AbstractModel
        # @param EventId: 事件ID
        # @type EventId: Integer
        # @param HostName: 主机名称
        # @type HostName: String
        # @param HostIp: 主机IP
        # @type HostIp: String
        # @param WanIp: 外网IP
        # @type WanIp: String
        # @param ProcessId: 进程ID
        # @type ProcessId: Integer
        # @param FilePath: 文件路径
        # @type FilePath: String
        # @param CmdLine: 执行命令
        # @type CmdLine: String
        # @param StartTime: 进程启动时间
        # @type StartTime: String
        # @param DetectTime: 最近检测时间
        # @type DetectTime: String
        # @param VirusName: 病毒名称
        # @type VirusName: String
        # @param CheckPlatform: 木马检测平台 [1:云查杀引擎|2:TAV|3:binaryAi|4:异常行为|5:威胁情报]
        # @type CheckPlatform: Array
        # @param VirusTags: 病毒标签
        # @type VirusTags: Array
        # @param ThreatDesc: 威胁描述
        # @type ThreatDesc: String
        # @param SuggestSolution: 建议方案
        # @type SuggestSolution: String
        # @param ReferenceLink: 参考链接
        # @type ReferenceLink: String
        # @param HandleStatus: 处理状态[0待处理;1已处理;2查杀中;3已查杀;4已退出;5忽略]
        # @type HandleStatus: Integer
        # @param OnlineStatus: 主机在线状态
        # @type OnlineStatus: Integer
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`
        # @param Uuid: 主机uuid
        # @type Uuid: String

        attr_accessor :EventId, :HostName, :HostIp, :WanIp, :ProcessId, :FilePath, :CmdLine, :StartTime, :DetectTime, :VirusName, :CheckPlatform, :VirusTags, :ThreatDesc, :SuggestSolution, :ReferenceLink, :HandleStatus, :OnlineStatus, :MachineExtraInfo, :Uuid

        def initialize(eventid=nil, hostname=nil, hostip=nil, wanip=nil, processid=nil, filepath=nil, cmdline=nil, starttime=nil, detecttime=nil, virusname=nil, checkplatform=nil, virustags=nil, threatdesc=nil, suggestsolution=nil, referencelink=nil, handlestatus=nil, onlinestatus=nil, machineextrainfo=nil, uuid=nil)
          @EventId = eventid
          @HostName = hostname
          @HostIp = hostip
          @WanIp = wanip
          @ProcessId = processid
          @FilePath = filepath
          @CmdLine = cmdline
          @StartTime = starttime
          @DetectTime = detecttime
          @VirusName = virusname
          @CheckPlatform = checkplatform
          @VirusTags = virustags
          @ThreatDesc = threatdesc
          @SuggestSolution = suggestsolution
          @ReferenceLink = referencelink
          @HandleStatus = handlestatus
          @OnlineStatus = onlinestatus
          @MachineExtraInfo = machineextrainfo
          @Uuid = uuid
        end

        def deserialize(params)
          @EventId = params['EventId']
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @WanIp = params['WanIp']
          @ProcessId = params['ProcessId']
          @FilePath = params['FilePath']
          @CmdLine = params['CmdLine']
          @StartTime = params['StartTime']
          @DetectTime = params['DetectTime']
          @VirusName = params['VirusName']
          @CheckPlatform = params['CheckPlatform']
          @VirusTags = params['VirusTags']
          @ThreatDesc = params['ThreatDesc']
          @SuggestSolution = params['SuggestSolution']
          @ReferenceLink = params['ReferenceLink']
          @HandleStatus = params['HandleStatus']
          @OnlineStatus = params['OnlineStatus']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
          @Uuid = params['Uuid']
        end
      end

      # 索引规则
      class RuleInfo < TencentCloud::Common::AbstractModel
        # @param FullText: 全文索引的相关配置
        # @type FullText: :class:`Tencentcloud::Cwp.v20180228.models.FullTextInfo`
        # @param KeyValue: 键值索引的相关配置
        # @type KeyValue: :class:`Tencentcloud::Cwp.v20180228.models.KeyValueInfo`
        # @param Tag: 元字段索引配置
        # @type Tag: :class:`Tencentcloud::Cwp.v20180228.models.KeyValueInfo`

        attr_accessor :FullText, :KeyValue, :Tag

        def initialize(fulltext=nil, keyvalue=nil, tag=nil)
          @FullText = fulltext
          @KeyValue = keyvalue
          @Tag = tag
        end

        def deserialize(params)
          unless params['FullText'].nil?
            @FullText = FullTextInfo.new
            @FullText.deserialize(params['FullText'])
          end
          unless params['KeyValue'].nil?
            @KeyValue = KeyValueInfo.new
            @KeyValue.deserialize(params['KeyValue'])
          end
          unless params['Tag'].nil?
            @Tag = KeyValueInfo.new
            @Tag.deserialize(params['Tag'])
          end
        end
      end

      # ScanAsset请求参数结构体
      class ScanAssetRequest < TencentCloud::Common::AbstractModel
        # @param AssetTypeIds: 资产指纹类型id列表
        # @type AssetTypeIds: Array
        # @param Quuids: Quuid列表
        # @type Quuids: Array

        attr_accessor :AssetTypeIds, :Quuids

        def initialize(assettypeids=nil, quuids=nil)
          @AssetTypeIds = assettypeids
          @Quuids = quuids
        end

        def deserialize(params)
          @AssetTypeIds = params['AssetTypeIds']
          @Quuids = params['Quuids']
        end
      end

      # ScanAsset返回参数结构体
      class ScanAssetResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ScanBaseline请求参数结构体
      class ScanBaselineRequest < TencentCloud::Common::AbstractModel
        # @param StrategyIdList: 策略id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        # @type StrategyIdList: Array
        # @param CategoryIdList: 基线id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        # @type CategoryIdList: Array
        # @param RuleIdList: 检测项id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        # @type RuleIdList: Array
        # @param QuuidList: 选择StrategyIdList时,不需要填写,其他情况必填
        # @type QuuidList: Array
        # @param UuidList: 主机Uuid数组
        # @type UuidList: Array

        attr_accessor :StrategyIdList, :CategoryIdList, :RuleIdList, :QuuidList, :UuidList

        def initialize(strategyidlist=nil, categoryidlist=nil, ruleidlist=nil, quuidlist=nil, uuidlist=nil)
          @StrategyIdList = strategyidlist
          @CategoryIdList = categoryidlist
          @RuleIdList = ruleidlist
          @QuuidList = quuidlist
          @UuidList = uuidlist
        end

        def deserialize(params)
          @StrategyIdList = params['StrategyIdList']
          @CategoryIdList = params['CategoryIdList']
          @RuleIdList = params['RuleIdList']
          @QuuidList = params['QuuidList']
          @UuidList = params['UuidList']
        end
      end

      # ScanBaseline返回参数结构体
      class ScanBaselineResponse < TencentCloud::Common::AbstractModel
        # @param ScanningQuuids: 正在扫描中的主机Quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanningQuuids: Array
        # @param TaskId: 任务下发成功返回的TaskId
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ScanningQuuids, :TaskId, :RequestId

        def initialize(scanningquuids=nil, taskid=nil, requestid=nil)
          @ScanningQuuids = scanningquuids
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @ScanningQuuids = params['ScanningQuuids']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ScanTaskAgain请求参数结构体
      class ScanTaskAgainRequest < TencentCloud::Common::AbstractModel
        # @param ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        # @type ModuleType: String
        # @param TaskId: 任务ID
        # @type TaskId: Integer
        # @param QuuidList: 自选服务器时生效,主机quuid的string数组
        # @type QuuidList: Array
        # @param TimeoutPeriod: 扫描超时时长
        # @type TimeoutPeriod: Integer

        attr_accessor :ModuleType, :TaskId, :QuuidList, :TimeoutPeriod

        def initialize(moduletype=nil, taskid=nil, quuidlist=nil, timeoutperiod=nil)
          @ModuleType = moduletype
          @TaskId = taskid
          @QuuidList = quuidlist
          @TimeoutPeriod = timeoutperiod
        end

        def deserialize(params)
          @ModuleType = params['ModuleType']
          @TaskId = params['TaskId']
          @QuuidList = params['QuuidList']
          @TimeoutPeriod = params['TimeoutPeriod']
        end
      end

      # ScanTaskAgain返回参数结构体
      class ScanTaskAgainResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 扫描任务详情列表信息
      class ScanTaskDetails < TencentCloud::Common::AbstractModel
        # @param HostIp: 服务器IP
        # @type HostIp: String
        # @param HostName: 服务器名称
        # @type HostName: String
        # @param OsName: 操作系统
        # @type OsName: String
        # @param RiskNum: 风险数量
        # @type RiskNum: Integer
        # @param ScanBeginTime: 扫描开始时间
        # @type ScanBeginTime: String
        # @param ScanEndTime: 扫描结束时间
        # @type ScanEndTime: String
        # @param Uuid: 唯一Uuid
        # @type Uuid: String
        # @param Quuid: 唯一Quuid
        # @type Quuid: String
        # @param Status: 状态码
        # @type Status: String
        # @param Description: 描述
        # @type Description: String
        # @param Id: id唯一
        # @type Id: Integer
        # @param FailType: 失败详情
        # @type FailType: Integer
        # @param MachineWanIp: 外网ip
        # @type MachineWanIp: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :HostIp, :HostName, :OsName, :RiskNum, :ScanBeginTime, :ScanEndTime, :Uuid, :Quuid, :Status, :Description, :Id, :FailType, :MachineWanIp, :MachineExtraInfo

        def initialize(hostip=nil, hostname=nil, osname=nil, risknum=nil, scanbegintime=nil, scanendtime=nil, uuid=nil, quuid=nil, status=nil, description=nil, id=nil, failtype=nil, machinewanip=nil, machineextrainfo=nil)
          @HostIp = hostip
          @HostName = hostname
          @OsName = osname
          @RiskNum = risknum
          @ScanBeginTime = scanbegintime
          @ScanEndTime = scanendtime
          @Uuid = uuid
          @Quuid = quuid
          @Status = status
          @Description = description
          @Id = id
          @FailType = failtype
          @MachineWanIp = machinewanip
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @HostIp = params['HostIp']
          @HostName = params['HostName']
          @OsName = params['OsName']
          @RiskNum = params['RiskNum']
          @ScanBeginTime = params['ScanBeginTime']
          @ScanEndTime = params['ScanEndTime']
          @Uuid = params['Uuid']
          @Quuid = params['Quuid']
          @Status = params['Status']
          @Description = params['Description']
          @Id = params['Id']
          @FailType = params['FailType']
          @MachineWanIp = params['MachineWanIp']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # ScanVulAgain请求参数结构体
      class ScanVulAgainRequest < TencentCloud::Common::AbstractModel
        # @param EventIds: 漏洞事件id串,多个用英文逗号分隔
        # @type EventIds: String
        # @param Uuids: 重新检查的机器uuid,多个逗号分隔
        # @type Uuids: String

        attr_accessor :EventIds, :Uuids

        def initialize(eventids=nil, uuids=nil)
          @EventIds = eventids
          @Uuids = uuids
        end

        def deserialize(params)
          @EventIds = params['EventIds']
          @Uuids = params['Uuids']
        end
      end

      # ScanVulAgain返回参数结构体
      class ScanVulAgainResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # ScanVul请求参数结构体
      class ScanVulRequest < TencentCloud::Common::AbstractModel
        # @param VulLevels: 危害等级:1-低危;2-中危;3-高危;4-严重 (多选英文;分隔)
        # @type VulLevels: String
        # @param HostType: 服务器分类:1:专业版服务器;2:自选服务器
        # @type HostType: Integer
        # @param VulCategories: 漏洞类型:1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 (多选英文;分隔)
        # @type VulCategories: String
        # @param QuuidList: 自选服务器时生效,主机quuid的string数组
        # @type QuuidList: Array
        # @param VulEmergency: 是否是应急漏洞 0 否 1 是
        # @type VulEmergency: Integer
        # @param TimeoutPeriod: 超时时长 单位秒 默认 3600 秒
        # @type TimeoutPeriod: Integer
        # @param VulIds: 需要扫描的漏洞id
        # @type VulIds: Array

        attr_accessor :VulLevels, :HostType, :VulCategories, :QuuidList, :VulEmergency, :TimeoutPeriod, :VulIds

        def initialize(vullevels=nil, hosttype=nil, vulcategories=nil, quuidlist=nil, vulemergency=nil, timeoutperiod=nil, vulids=nil)
          @VulLevels = vullevels
          @HostType = hosttype
          @VulCategories = vulcategories
          @QuuidList = quuidlist
          @VulEmergency = vulemergency
          @TimeoutPeriod = timeoutperiod
          @VulIds = vulids
        end

        def deserialize(params)
          @VulLevels = params['VulLevels']
          @HostType = params['HostType']
          @VulCategories = params['VulCategories']
          @QuuidList = params['QuuidList']
          @VulEmergency = params['VulEmergency']
          @TimeoutPeriod = params['TimeoutPeriod']
          @VulIds = params['VulIds']
        end
      end

      # ScanVul返回参数结构体
      class ScanVulResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # ScanVulSetting请求参数结构体
      class ScanVulSettingRequest < TencentCloud::Common::AbstractModel
        # @param TimerInterval: 定期检测间隔时间(天)
        # @type TimerInterval: Integer
        # @param VulCategories: 漏洞类型:1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞, 以数组方式传参[1,2]
        # @type VulCategories: Array
        # @param VulLevels: 危害等级:1-低危;2-中危;3-高危;4-严重,以数组方式传参[1,2,3]
        # @type VulLevels: Array
        # @param TimerTime: 定期检测时间,如:02:10:50
        # @type TimerTime: String
        # @param VulEmergency: 是否是应急漏洞 0 否 1 是
        # @type VulEmergency: Integer
        # @param StartTime: 扫描开始时间,如:00:00
        # @type StartTime: String
        # @param EndTime: 扫描结束时间,如:08:00
        # @type EndTime: String
        # @param EnableScan: 是否开启扫描 1开启 0不开启
        # @type EnableScan: Integer
        # @param Uuids: 为空默认扫描全部专业版、旗舰版、普惠版主机,不为空只扫描选中主机
        # @type Uuids: Array

        attr_accessor :TimerInterval, :VulCategories, :VulLevels, :TimerTime, :VulEmergency, :StartTime, :EndTime, :EnableScan, :Uuids

        def initialize(timerinterval=nil, vulcategories=nil, vullevels=nil, timertime=nil, vulemergency=nil, starttime=nil, endtime=nil, enablescan=nil, uuids=nil)
          @TimerInterval = timerinterval
          @VulCategories = vulcategories
          @VulLevels = vullevels
          @TimerTime = timertime
          @VulEmergency = vulemergency
          @StartTime = starttime
          @EndTime = endtime
          @EnableScan = enablescan
          @Uuids = uuids
        end

        def deserialize(params)
          @TimerInterval = params['TimerInterval']
          @VulCategories = params['VulCategories']
          @VulLevels = params['VulLevels']
          @TimerTime = params['TimerTime']
          @VulEmergency = params['VulEmergency']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @EnableScan = params['EnableScan']
          @Uuids = params['Uuids']
        end
      end

      # ScanVulSetting返回参数结构体
      class ScanVulSettingResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 大屏全网攻击热点
      class ScreenAttackHotspot < TencentCloud::Common::AbstractModel
        # @param EventName: 事件名
        # @type EventName: String
        # @param SrcIp: 攻击者IP
        # @type SrcIp: String
        # @param DstIp: 受害者IP
        # @type DstIp: String
        # @param Region: 地域
        # @type Region: String
        # @param CreatedTime: 时间
        # @type CreatedTime: String

        attr_accessor :EventName, :SrcIp, :DstIp, :Region, :CreatedTime

        def initialize(eventname=nil, srcip=nil, dstip=nil, region=nil, createdtime=nil)
          @EventName = eventname
          @SrcIp = srcip
          @DstIp = dstip
          @Region = region
          @CreatedTime = createdtime
        end

        def deserialize(params)
          @EventName = params['EventName']
          @SrcIp = params['SrcIp']
          @DstIp = params['DstIp']
          @Region = params['Region']
          @CreatedTime = params['CreatedTime']
        end
      end

      # 大屏基线信息
      class ScreenBaselineInfo < TencentCloud::Common::AbstractModel
        # @param Name: 基线名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String
        # @param Level: 危害等级:1-低危;2-中危;3-高危;4-严重
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param CategoryId: 基线id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CategoryId: Integer
        # @param LastScanTime: 最后检测时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastScanTime: String
        # @param BaselineFailCount: 基线风险项
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type BaselineFailCount: Integer
        # @param Uuid: 主机uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String

        attr_accessor :Name, :Level, :CategoryId, :LastScanTime, :BaselineFailCount, :Uuid

        def initialize(name=nil, level=nil, categoryid=nil, lastscantime=nil, baselinefailcount=nil, uuid=nil)
          @Name = name
          @Level = level
          @CategoryId = categoryid
          @LastScanTime = lastscantime
          @BaselineFailCount = baselinefailcount
          @Uuid = uuid
        end

        def deserialize(params)
          @Name = params['Name']
          @Level = params['Level']
          @CategoryId = params['CategoryId']
          @LastScanTime = params['LastScanTime']
          @BaselineFailCount = params['BaselineFailCount']
          @Uuid = params['Uuid']
        end
      end

      # 大屏可视化安全播报内容
      class ScreenBroadcasts < TencentCloud::Common::AbstractModel
        # @param Title: 播报文章标题
        # @type Title: String
        # @param Level: 播报文章危险程度  0:无, 1:严重, 2: 高危, 3:中危, 4: 低危
        # @type Level: Integer
        # @param Time: 发布时间
        # @type Time: String
        # @param Id: 文章ID
        # @type Id: Integer

        attr_accessor :Title, :Level, :Time, :Id

        def initialize(title=nil, level=nil, time=nil, id=nil)
          @Title = title
          @Level = level
          @Time = time
          @Id = id
        end

        def deserialize(params)
          @Title = params['Title']
          @Level = params['Level']
          @Time = params['Time']
          @Id = params['Id']
        end
      end

      # 大屏网络攻击日志
      class ScreenDefendAttackLog < TencentCloud::Common::AbstractModel
        # @param Id: 日志ID
        # @type Id: Integer
        # @param Uuid: 客户端ID
        # @type Uuid: String
        # @param SrcIp: 来源IP
        # @type SrcIp: String
        # @param SrcPort: 来源端口
        # @type SrcPort: Integer
        # @param HttpMethod: 攻击方式
        # @type HttpMethod: String
        # @param VulType: 威胁类型
        # @type VulType: String
        # @param CreatedTime: 攻击时间
        # @type CreatedTime: String
        # @param DstPort: 目标端口
        # @type DstPort: Integer
        # @param Quuid: 主机 quuid
        # @type Quuid: String
        # @param DstIp: 目标IP
        # @type DstIp: String

        attr_accessor :Id, :Uuid, :SrcIp, :SrcPort, :HttpMethod, :VulType, :CreatedTime, :DstPort, :Quuid, :DstIp

        def initialize(id=nil, uuid=nil, srcip=nil, srcport=nil, httpmethod=nil, vultype=nil, createdtime=nil, dstport=nil, quuid=nil, dstip=nil)
          @Id = id
          @Uuid = uuid
          @SrcIp = srcip
          @SrcPort = srcport
          @HttpMethod = httpmethod
          @VulType = vultype
          @CreatedTime = createdtime
          @DstPort = dstport
          @Quuid = quuid
          @DstIp = dstip
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @SrcIp = params['SrcIp']
          @SrcPort = params['SrcPort']
          @HttpMethod = params['HttpMethod']
          @VulType = params['VulType']
          @CreatedTime = params['CreatedTime']
          @DstPort = params['DstPort']
          @Quuid = params['Quuid']
          @DstIp = params['DstIp']
        end
      end

      # 大屏可视化紧急通知
      class ScreenEmergentMsg < TencentCloud::Common::AbstractModel
        # @param Title: 通知标签/标题
        # @type Title: String
        # @param Text: 通知内容
        # @type Text: String
        # @param Type: 跳转类型:0=漏洞管理
        # @type Type: Integer

        attr_accessor :Title, :Text, :Type

        def initialize(title=nil, text=nil, type=nil)
          @Title = title
          @Text = text
          @Type = type
        end

        def deserialize(params)
          @Title = params['Title']
          @Text = params['Text']
          @Type = params['Type']
        end
      end

      # 统计入侵检测
      class ScreenEventsCnt < TencentCloud::Common::AbstractModel
        # @param Title: 展示内容:待处理风险总数,影响资产总数
        # @type Title: String
        # @param Total: 事件总数
        # @type Total: Integer
        # @param Category: name 具体展示内容类型: 攻击事件, 潜在风险, 失陷资产, 潜在风险资产
        # Value: 事件统计数
        # @type Category: Array

        attr_accessor :Title, :Total, :Category

        def initialize(title=nil, total=nil, category=nil)
          @Title = title
          @Total = total
          @Category = category
        end

        def deserialize(params)
          @Title = params['Title']
          @Total = params['Total']
          unless params['Category'].nil?
            @Category = []
            params['Category'].each do |i|
              screennamevalue_tmp = ScreenNameValue.new
              screennamevalue_tmp.deserialize(i)
              @Category << screennamevalue_tmp
            end
          end
        end
      end

      # 大屏入侵事件详情
      class ScreenInvasion < TencentCloud::Common::AbstractModel
        # @param CreatedTime: 入侵时间
        # @type CreatedTime: String
        # @param EventType: 事件类型:0:文件查杀,1:异常登录, 2:密码破解,3:恶意请求,4:高危命令,5:本地提权, 6:反弹shell
        # @type EventType: Integer
        # @param Content: 事件数据的json, 每种事件不同,
        # 【文件查杀】病毒名 VirusName、文件名 FileName、文件路径 FilePath、文件大小 FileSize、文件MD5 MD5、首次发现时间 CreateTime、最近检测时间LatestScanTime、危害描述 HarmDescribe、修复建议SuggestScheme
        # 【异常登录】来源IP SrcIp、来源地 Location、登录用户名 UserName、登录时间 LoginTime
        # 【密码破解】来源IP SrcIp、来源地 City,Country、协议 Protocol、登录用户名UserName 、端口 Port、尝试次数 Count、首次攻击时间 CreateTime、最近攻击时间 ModifyTime
        # 【恶意请求】恶意请求域名 Url、进程ProcessName 、MD5 ProcessMd5、PID Pid、请求次数 AccessCount、最近请求时间 MergeTime、危害描述 HarmDescribe、修复建议SuggestScheme
        # 【高危命令】命中规则名 RuleName、规则类别 RuleCategory、命令内容 BashCmd、数据来源 DetectBy、登录用户 User、PID Pid、发生时间 CreateTime 、危害描述 HarmDescribe、修复建议SuggestScheme
        # 【本地提权】提权用户 UserName、父进程 ParentProcName 、父进程所属用户 ParentProcGroup、发现时间 CreateTime、危害描述 HarmDescribe、修复建议SuggestScheme
        # 【反弹shell】连接进程 ProcessName、执行命令CmdLine、父进程ParentProcName、目标主机DstIp、目标端口DstPort、发现时间 CreateTime、危害描述 HarmDescribe、修复建议SuggestScheme
        # @type Content: String
        # @param Level: 事件统一等级 0:提示,1:低危,  2:中危,  3:高危,  4:严重
        # @type Level: Integer
        # @param LevelZh: 等级中文展示
        # @type LevelZh: String
        # @param Id: 事件id
        # @type Id: Integer
        # @param Uuid: 主机uuid
        # @type Uuid: String

        attr_accessor :CreatedTime, :EventType, :Content, :Level, :LevelZh, :Id, :Uuid

        def initialize(createdtime=nil, eventtype=nil, content=nil, level=nil, levelzh=nil, id=nil, uuid=nil)
          @CreatedTime = createdtime
          @EventType = eventtype
          @Content = content
          @Level = level
          @LevelZh = levelzh
          @Id = id
          @Uuid = uuid
        end

        def deserialize(params)
          @CreatedTime = params['CreatedTime']
          @EventType = params['EventType']
          @Content = params['Content']
          @Level = params['Level']
          @LevelZh = params['LevelZh']
          @Id = params['Id']
          @Uuid = params['Uuid']
        end
      end

      # 大屏主机列表数据
      class ScreenMachine < TencentCloud::Common::AbstractModel
        # @param MachineName: 主机名称。
        # @type MachineName: String
        # @param MachineOs: 主机系统。
        # @type MachineOs: String
        # @param Uuid: 云镜客户端唯一Uuid,若客户端长时间不在线将返回空字符。
        # @type Uuid: String
        # @param MachineStatus: 大屏主机状态 0:未安装agent,1:离线状态,2:离线-风险,3:离线-严重
        # 4:安装设备-正常,5:安装设备-正常 且是专业版或旗舰版,6:安装设备-风险(网络攻击事件>0) ,
        #  7:安装设备-风险(网络攻击事件>0 且是专业版或旗舰版,8:安装设备-严重(入侵检测事件>0),
        # 9:安装设备-严重(入侵检测事件>0)且是专业版或旗舰版
        # @type MachineStatus: Integer
        # @param Quuid: CVM或BM机器唯一Uuid。
        # @type Quuid: String
        # @param VulNum: 漏洞数。
        # @type VulNum: Integer
        # @param MachineIp: 主机IP。
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP。
        # @type MachineWanIp: String
        # @param BaselineNum: 基线风险数。
        # @type BaselineNum: Integer
        # @param CyberAttackNum: 网络风险数。
        # @type CyberAttackNum: Integer
        # @param SecurityStatus: 风险状态。
        # <li>SAFE:安全</li>
        # <li>RISK:风险</li>
        # <li>UNKNOWN:未知</li>
        # @type SecurityStatus: String
        # @param InvasionNum: 入侵事件数
        # @type InvasionNum: Integer
        # @param MachineType: 机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        # @type MachineType: String
        # @param CpuLoad: cpu 负载状态
        # @type CpuLoad: String
        # @param CpuSize: cpu 核数
        # @type CpuSize: Float
        # @param DiskLoad: 硬盘使用率 %
        # @type DiskLoad: String
        # @param DiskSize: 硬盘容量GB
        # @type DiskSize: Float
        # @param MemLoad: 内存负载率%
        # @type MemLoad: String
        # @param MemSize: 内存容量 GB
        # @type MemSize: Float
        # @param CoreVersion: 内核版本
        # @type CoreVersion: String
        # @param MachineExtraInfo: 附加信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :MachineName, :MachineOs, :Uuid, :MachineStatus, :Quuid, :VulNum, :MachineIp, :MachineWanIp, :BaselineNum, :CyberAttackNum, :SecurityStatus, :InvasionNum, :MachineType, :CpuLoad, :CpuSize, :DiskLoad, :DiskSize, :MemLoad, :MemSize, :CoreVersion, :MachineExtraInfo

        def initialize(machinename=nil, machineos=nil, uuid=nil, machinestatus=nil, quuid=nil, vulnum=nil, machineip=nil, machinewanip=nil, baselinenum=nil, cyberattacknum=nil, securitystatus=nil, invasionnum=nil, machinetype=nil, cpuload=nil, cpusize=nil, diskload=nil, disksize=nil, memload=nil, memsize=nil, coreversion=nil, machineextrainfo=nil)
          @MachineName = machinename
          @MachineOs = machineos
          @Uuid = uuid
          @MachineStatus = machinestatus
          @Quuid = quuid
          @VulNum = vulnum
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @BaselineNum = baselinenum
          @CyberAttackNum = cyberattacknum
          @SecurityStatus = securitystatus
          @InvasionNum = invasionnum
          @MachineType = machinetype
          @CpuLoad = cpuload
          @CpuSize = cpusize
          @DiskLoad = diskload
          @DiskSize = disksize
          @MemLoad = memload
          @MemSize = memsize
          @CoreVersion = coreversion
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @MachineName = params['MachineName']
          @MachineOs = params['MachineOs']
          @Uuid = params['Uuid']
          @MachineStatus = params['MachineStatus']
          @Quuid = params['Quuid']
          @VulNum = params['VulNum']
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @BaselineNum = params['BaselineNum']
          @CyberAttackNum = params['CyberAttackNum']
          @SecurityStatus = params['SecurityStatus']
          @InvasionNum = params['InvasionNum']
          @MachineType = params['MachineType']
          @CpuLoad = params['CpuLoad']
          @CpuSize = params['CpuSize']
          @DiskLoad = params['DiskLoad']
          @DiskSize = params['DiskSize']
          @MemLoad = params['MemLoad']
          @MemSize = params['MemSize']
          @CoreVersion = params['CoreVersion']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 【云安全预警】大屏可视化数据Name Value 数据
      class ScreenNameValue < TencentCloud::Common::AbstractModel
        # @param Name: 统计类型 不同接口对应不同的内容
        # @type Name: String
        # @param Value: 统计数量
        # @type Value: Integer

        attr_accessor :Name, :Value

        def initialize(name=nil, value=nil)
          @Name = name
          @Value = value
        end

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

      # 大屏可视化攻防状态
      class ScreenProtection < TencentCloud::Common::AbstractModel
        # @param Name: 类型值:文件查杀,暴力破解,漏洞扫描,基线检测
        # @type Name: String
        # @param Status: 文件查杀:  0:从未检测过,或0资产付费情况, 1:已检测,存在恶意文件, 2:已检测,未开启隔离防护, 3:已检测且已开启防护且无风险;
        # 暴力破解: 0:未开启防护(0付费资产情况)1:已开启自动阻断;
        # 漏洞扫描: 0:从未检测过,或0资产付费情况, 1:存在漏洞风险, 2:无风险;
        # 基线检测: 0:从未检测过,或0资产付费情况, 1:存在基线风险,2:无风险;
        # @type Status: Integer

        attr_accessor :Name, :Status

        def initialize(name=nil, status=nil)
          @Name = name
          @Status = status
        end

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

      # 大屏可视化主机安全返回态势数据
      class ScreenProtectionCnt < TencentCloud::Common::AbstractModel
        # @param Type: cloud:云查杀引擎,detect:检测引擎,defend:攻击防御,threat:威胁情报,analysis:异常分析,ai:AI引擎
        # @type Type: String
        # @param Name: cloud:云查杀引擎,detect:检测引擎,defend:攻击防御,threat:威胁情报,analysis:异常分析,ai:AI引擎
        # @type Name: String
        # @param Count: 总数
        # @type Count: Integer

        attr_accessor :Type, :Name, :Count

        def initialize(type=nil, name=nil, count=nil)
          @Type = type
          @Name = name
          @Count = count
        end

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

      # 地域信息
      class ScreenRegionInfo < TencentCloud::Common::AbstractModel
        # @param Region: 地域标志,如 ap-guangzhou,ap-shanghai,ap-beijing
        # @type Region: String
        # @param RegionName: 地域中文名,如华南地区(广州),华东地区(上海金融),华北地区(北京)
        # @type RegionName: String
        # @param RegionId: 地域ID
        # @type RegionId: Integer
        # @param RegionCode: 地域代码,如 gz,sh,bj
        # @type RegionCode: String
        # @param RegionNameEn: 地域英文名
        # @type RegionNameEn: String

        attr_accessor :Region, :RegionName, :RegionId, :RegionCode, :RegionNameEn

        def initialize(region=nil, regionname=nil, regionid=nil, regioncode=nil, regionnameen=nil)
          @Region = region
          @RegionName = regionname
          @RegionId = regionid
          @RegionCode = regioncode
          @RegionNameEn = regionnameen
        end

        def deserialize(params)
          @Region = params['Region']
          @RegionName = params['RegionName']
          @RegionId = params['RegionId']
          @RegionCode = params['RegionCode']
          @RegionNameEn = params['RegionNameEn']
        end
      end

      # 大屏主机3D图 列表
      class ScreenRegionMachines < TencentCloud::Common::AbstractModel
        # @param Region: 所有区域
        # @type Region: String
        # @param RegionName: 区域中文描述
        # @type RegionName: String
        # @param Machines: 主机列表
        # @type Machines: Array
        # @param TotalCount: 此区域的主机总数
        # @type TotalCount: Integer
        # @param RiskCnt: 风险主机数量
        # @type RiskCnt: Integer
        # @param AttackCnt: 潜在风险主机数
        # @type AttackCnt: Integer
        # @param SafetyCnt: 无风险主机数
        # @type SafetyCnt: Integer
        # @param UnAgentOfflineCnt: 离线/未安装主机数
        # @type UnAgentOfflineCnt: Integer
        # @param IgnoreCnt: 省略展示多少主机,等于0时没有省略展示
        # @type IgnoreCnt: Integer

        attr_accessor :Region, :RegionName, :Machines, :TotalCount, :RiskCnt, :AttackCnt, :SafetyCnt, :UnAgentOfflineCnt, :IgnoreCnt

        def initialize(region=nil, regionname=nil, machines=nil, totalcount=nil, riskcnt=nil, attackcnt=nil, safetycnt=nil, unagentofflinecnt=nil, ignorecnt=nil)
          @Region = region
          @RegionName = regionname
          @Machines = machines
          @TotalCount = totalcount
          @RiskCnt = riskcnt
          @AttackCnt = attackcnt
          @SafetyCnt = safetycnt
          @UnAgentOfflineCnt = unagentofflinecnt
          @IgnoreCnt = ignorecnt
        end

        def deserialize(params)
          @Region = params['Region']
          @RegionName = params['RegionName']
          unless params['Machines'].nil?
            @Machines = []
            params['Machines'].each do |i|
              screenmachine_tmp = ScreenMachine.new
              screenmachine_tmp.deserialize(i)
              @Machines << screenmachine_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RiskCnt = params['RiskCnt']
          @AttackCnt = params['AttackCnt']
          @SafetyCnt = params['SafetyCnt']
          @UnAgentOfflineCnt = params['UnAgentOfflineCnt']
          @IgnoreCnt = params['IgnoreCnt']
        end
      end

      # 大屏攻防趋势图
      class ScreenTrendsChart < TencentCloud::Common::AbstractModel
        # @param X: X轴 时间
        # @type X: String
        # @param Y: Y轴 数值
        # @type Y: Integer
        # @param Type: 统计分类类型 值:防御次数,攻击次数
        # @type Type: String

        attr_accessor :X, :Y, :Type

        def initialize(x=nil, y=nil, type=nil)
          @X = x
          @Y = y
          @Type = type
        end

        def deserialize(params)
          @X = params['X']
          @Y = params['Y']
          @Type = params['Type']
        end
      end

      # 大屏漏洞列表
      class ScreenVulInfo < TencentCloud::Common::AbstractModel
        # @param Id: 漏洞事件id
        # @type Id: Integer
        # @param Name: 漏洞名
        # @type Name: String
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param LastTime: 最后检测时间
        # @type LastTime: String
        # @param Level: 漏洞等级 1:低 2:中 3:高 4:提示
        # @type Level: Integer
        # @param Category: 漏洞类型 1: web-cms漏洞, 2:应用漏洞, 4: Linux软件漏洞, 5: Windows系统漏洞
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Category: Integer
        # @param Uuid: 主机UUID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String

        attr_accessor :Id, :Name, :VulId, :LastTime, :Level, :Category, :Uuid

        def initialize(id=nil, name=nil, vulid=nil, lasttime=nil, level=nil, category=nil, uuid=nil)
          @Id = id
          @Name = name
          @VulId = vulid
          @LastTime = lasttime
          @Level = level
          @Category = category
          @Uuid = uuid
        end

        def deserialize(params)
          @Id = params['Id']
          @Name = params['Name']
          @VulId = params['VulId']
          @LastTime = params['LastTime']
          @Level = params['Level']
          @Category = params['Category']
          @Uuid = params['Uuid']
        end
      end

      # SearchLog请求参数结构体
      class SearchLogRequest < TencentCloud::Common::AbstractModel
        # @param StartTime: 要检索分析的日志的起始时间,Unix时间戳(毫秒)
        # @type StartTime: Integer
        # @param EndTime: 要检索分析的日志的结束时间,Unix时间戳(毫秒)
        # @type EndTime: Integer
        # @param QueryString: 检索分析语句,最大长度为12KB
        # @type QueryString: String
        # @param Count: 表示单次查询返回的原始日志条数,最大值为1000,获取后续日志需使用Context参数
        # @type Count: Integer
        # @param Sort: 原始日志是否按时间排序返回;可选值:asc(升序)、desc(降序),默认为 desc
        # @type Sort: String
        # @param Context: 透传上次接口返回的Context值,可获取后续更多日志,总计最多可获取1万条原始日志,过期时间1小时
        # @type Context: String

        attr_accessor :StartTime, :EndTime, :QueryString, :Count, :Sort, :Context

        def initialize(starttime=nil, endtime=nil, querystring=nil, count=nil, sort=nil, context=nil)
          @StartTime = starttime
          @EndTime = endtime
          @QueryString = querystring
          @Count = count
          @Sort = sort
          @Context = context
        end

        def deserialize(params)
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @QueryString = params['QueryString']
          @Count = params['Count']
          @Sort = params['Sort']
          @Context = params['Context']
        end
      end

      # SearchLog返回参数结构体
      class SearchLogResponse < TencentCloud::Common::AbstractModel
        # @param Count: 匹配检索条件的原始日志的数量
        # @type Count: Integer
        # @param Context: 透传本次接口返回的Context值,可获取后续更多日志,过期时间1小时
        # @type Context: String
        # @param ListOver: 符合检索条件的日志是否已全部返回,如未全部返回可使用Context参数获取后续更多日志
        # @type ListOver: Boolean
        # @param Analysis: 返回的是否为统计分析(即SQL)结果
        # @type Analysis: Boolean
        # @param Data: 匹配检索条件的原始日志
        # @type Data: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :Count, :Context, :ListOver, :Analysis, :Data, :RequestId

        def initialize(count=nil, context=nil, listover=nil, analysis=nil, data=nil, requestid=nil)
          @Count = count
          @Context = context
          @ListOver = listover
          @Analysis = analysis
          @Data = data
          @RequestId = requestid
        end

        def deserialize(params)
          @Count = params['Count']
          @Context = params['Context']
          @ListOver = params['ListOver']
          @Analysis = params['Analysis']
          unless params['Data'].nil?
            @Data = []
            params['Data'].each do |i|
              loginfo_tmp = LogInfo.new
              loginfo_tmp.deserialize(i)
              @Data << loginfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # 快速搜索模板
      class SearchTemplate < TencentCloud::Common::AbstractModel
        # @param Name: 检索名称
        # @type Name: String
        # @param LogType: 检索索引类型
        # @type LogType: String
        # @param Condition: 检索语句
        # @type Condition: String
        # @param TimeRange: 时间范围
        # @type TimeRange: String
        # @param Query: 转换的检索语句内容
        # @type Query: String
        # @param Flag: 检索方式。输入框检索:standard,过滤,检索:simple
        # @type Flag: String
        # @param DisplayData: 展示数据
        # @type DisplayData: String
        # @param Id: 规则ID
        # @type Id: Integer

        attr_accessor :Name, :LogType, :Condition, :TimeRange, :Query, :Flag, :DisplayData, :Id

        def initialize(name=nil, logtype=nil, condition=nil, timerange=nil, query=nil, flag=nil, displaydata=nil, id=nil)
          @Name = name
          @LogType = logtype
          @Condition = condition
          @TimeRange = timerange
          @Query = query
          @Flag = flag
          @DisplayData = displaydata
          @Id = id
        end

        def deserialize(params)
          @Name = params['Name']
          @LogType = params['LogType']
          @Condition = params['Condition']
          @TimeRange = params['TimeRange']
          @Query = params['Query']
          @Flag = params['Flag']
          @DisplayData = params['DisplayData']
          @Id = params['Id']
        end
      end

      # 安全管家列表信息
      class SecurityButlerInfo < TencentCloud::Common::AbstractModel
        # @param Id: 数据id
        # @type Id: Integer
        # @param OrderId: 订单id
        # @type OrderId: Integer
        # @param Quuid: cvm id
        # @type Quuid: String
        # @param Status: 服务状态 0-服务中,1-已到期 2已销毁
        # @type Status: Integer
        # @param StartTime: 服务开始时间
        # @type StartTime: String
        # @param EndTime: 服务结束时间
        # @type EndTime: String
        # @param HostName: 主机名称
        # @type HostName: String
        # @param HostIp: 主机Ip
        # @type HostIp: String
        # @param Uuid: 主机 uuid
        # @type Uuid: String
        # @param RiskCount: 主机风险数
        # @type RiskCount: Integer

        attr_accessor :Id, :OrderId, :Quuid, :Status, :StartTime, :EndTime, :HostName, :HostIp, :Uuid, :RiskCount

        def initialize(id=nil, orderid=nil, quuid=nil, status=nil, starttime=nil, endtime=nil, hostname=nil, hostip=nil, uuid=nil, riskcount=nil)
          @Id = id
          @OrderId = orderid
          @Quuid = quuid
          @Status = status
          @StartTime = starttime
          @EndTime = endtime
          @HostName = hostname
          @HostIp = hostip
          @Uuid = uuid
          @RiskCount = riskcount
        end

        def deserialize(params)
          @Id = params['Id']
          @OrderId = params['OrderId']
          @Quuid = params['Quuid']
          @Status = params['Status']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @Uuid = params['Uuid']
          @RiskCount = params['RiskCount']
        end
      end

      # 安全事件消息数据。
      class SecurityDynamic < TencentCloud::Common::AbstractModel
        # @param Uuid: 主机安全客户端UUID。
        # @type Uuid: String
        # @param EventTime: 安全事件发生时间。
        # @type EventTime: String
        # @param EventType: 安全事件类型。
        # <li>MALWARE:木马事件</li>
        # <li>NON_LOCAL_LOGIN:异地登录</li>
        # <li>BRUTEATTACK_SUCCESS:密码破解成功</li>
        # <li>VUL:漏洞</li>
        # <li>BASELINE:安全基线</li>
        # @type EventType: String
        # @param Message: 安全事件消息。
        # @type Message: String
        # @param SecurityLevel: 安全事件等级。
        # <li>RISK: 严重</li>
        # <li>HIGH: 高危</li>
        # <li>NORMAL: 中危</li>
        # <li>LOW: 低危</li>
        # <li>UNKNOWNED: 可疑</li>
        # @type SecurityLevel: String

        attr_accessor :Uuid, :EventTime, :EventType, :Message, :SecurityLevel

        def initialize(uuid=nil, eventtime=nil, eventtype=nil, message=nil, securitylevel=nil)
          @Uuid = uuid
          @EventTime = eventtime
          @EventType = eventtype
          @Message = message
          @SecurityLevel = securitylevel
        end

        def deserialize(params)
          @Uuid = params['Uuid']
          @EventTime = params['EventTime']
          @EventType = params['EventType']
          @Message = params['Message']
          @SecurityLevel = params['SecurityLevel']
        end
      end

      # 安全事件统计列表
      class SecurityEventInfo < TencentCloud::Common::AbstractModel
        # @param EventCnt: 安全事件数
        # @type EventCnt: Integer
        # @param UuidCnt: 受影响机器数
        # @type UuidCnt: Integer

        attr_accessor :EventCnt, :UuidCnt

        def initialize(eventcnt=nil, uuidcnt=nil)
          @EventCnt = eventcnt
          @UuidCnt = uuidcnt
        end

        def deserialize(params)
          @EventCnt = params['EventCnt']
          @UuidCnt = params['UuidCnt']
        end
      end

      # 安全趋势统计数据。
      class SecurityTrend < TencentCloud::Common::AbstractModel
        # @param Date: 事件时间。
        # @type Date: String
        # @param EventNum: 事件数量。
        # @type EventNum: Integer

        attr_accessor :Date, :EventNum

        def initialize(date=nil, eventnum=nil)
          @Date = date
          @EventNum = eventnum
        end

        def deserialize(params)
          @Date = params['Date']
          @EventNum = params['EventNum']
        end
      end

      # SeparateMalwares请求参数结构体
      class SeparateMalwaresRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 木马事件ID数组。(最大100条)
        # @type Ids: Array
        # @param KillProcess: 是否杀掉进程
        # @type KillProcess: Boolean

        attr_accessor :Ids, :KillProcess

        def initialize(ids=nil, killprocess=nil)
          @Ids = ids
          @KillProcess = killprocess
        end

        def deserialize(params)
          @Ids = params['Ids']
          @KillProcess = params['KillProcess']
        end
      end

      # SeparateMalwares返回参数结构体
      class SeparateMalwaresResponse < TencentCloud::Common::AbstractModel
        # @param SuccessIds: 隔离成功的id数组,若无则返回空数组
        # @type SuccessIds: Array
        # @param FailedIds: 隔离失败的id数组,若无则返回空数组
        # @type FailedIds: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :SuccessIds, :FailedIds, :RequestId

        def initialize(successids=nil, failedids=nil, requestid=nil)
          @SuccessIds = successids
          @FailedIds = failedids
          @RequestId = requestid
        end

        def deserialize(params)
          @SuccessIds = params['SuccessIds']
          @FailedIds = params['FailedIds']
          @RequestId = params['RequestId']
        end
      end

      # SetBashEventsStatus请求参数结构体
      class SetBashEventsStatusRequest < TencentCloud::Common::AbstractModel
        # @param Ids: ID数组,最大100条。
        # @type Ids: Array
        # @param Status: 新状态(0-待处理 1-高危 2-正常)
        # @type Status: Integer

        attr_accessor :Ids, :Status

        def initialize(ids=nil, status=nil)
          @Ids = ids
          @Status = status
        end

        def deserialize(params)
          @Ids = params['Ids']
          @Status = params['Status']
        end
      end

      # SetBashEventsStatus返回参数结构体
      class SetBashEventsStatusResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # SetLocalStorageExpire请求参数结构体
      class SetLocalStorageExpireRequest < TencentCloud::Common::AbstractModel
        # @param Key: 键
        # @type Key: String
        # @param Expire: 过期时间(单位:秒)
        # @type Expire: Integer

        attr_accessor :Key, :Expire

        def initialize(key=nil, expire=nil)
          @Key = key
          @Expire = expire
        end

        def deserialize(params)
          @Key = params['Key']
          @Expire = params['Expire']
        end
      end

      # SetLocalStorageExpire返回参数结构体
      class SetLocalStorageExpireResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # SetLocalStorageItem请求参数结构体
      class SetLocalStorageItemRequest < TencentCloud::Common::AbstractModel
        # @param Key: 键
        # @type Key: String
        # @param Value: 值
        # @type Value: String
        # @param Expire: 失效时间(单位;秒)
        # @type Expire: Integer

        attr_accessor :Key, :Value, :Expire

        def initialize(key=nil, value=nil, expire=nil)
          @Key = key
          @Value = value
          @Expire = expire
        end

        def deserialize(params)
          @Key = params['Key']
          @Value = params['Value']
          @Expire = params['Expire']
        end
      end

      # SetLocalStorageItem返回参数结构体
      class SetLocalStorageItemResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 标准模式阻断配置
      class StandardModeConfig < TencentCloud::Common::AbstractModel
        # @param Ttl: 阻断时长,单位:秒
        # @type Ttl: Integer

        attr_accessor :Ttl

        def initialize(ttl=nil)
          @Ttl = ttl
        end

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

      # StartBaselineDetect请求参数结构体
      class StartBaselineDetectRequest < TencentCloud::Common::AbstractModel
        # @param Param: 基线检测参数
        # @type Param: :class:`Tencentcloud::Cwp.v20180228.models.BaselineDetectParam`

        attr_accessor :Param

        def initialize(param=nil)
          @Param = param
        end

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

      # StartBaselineDetect返回参数结构体
      class StartBaselineDetectResponse < TencentCloud::Common::AbstractModel
        # @param TaskId: 扫描任务ID
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TaskId, :RequestId

        def initialize(taskid=nil, requestid=nil)
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # StopAssetScan请求参数结构体
      class StopAssetScanRequest < TencentCloud::Common::AbstractModel
        # @param TaskId: 任务Id
        # @type TaskId: Integer

        attr_accessor :TaskId

        def initialize(taskid=nil)
          @TaskId = taskid
        end

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

      # StopAssetScan返回参数结构体
      class StopAssetScanResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # StopBaselineDetect请求参数结构体
      class StopBaselineDetectRequest < TencentCloud::Common::AbstractModel
        # @param TaskIds: 取消任务ID集合
        # @type TaskIds: Array

        attr_accessor :TaskIds

        def initialize(taskids=nil)
          @TaskIds = taskids
        end

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

      # StopBaselineDetect返回参数结构体
      class StopBaselineDetectResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # StopNoticeBanTips请求参数结构体
      class StopNoticeBanTipsRequest < TencentCloud::Common::AbstractModel


        def initialize()
        end

        def deserialize(params)
        end
      end

      # StopNoticeBanTips返回参数结构体
      class StopNoticeBanTipsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 基线安全用户策略信息
      class Strategy < TencentCloud::Common::AbstractModel
        # @param StrategyName: 策略名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyName: String
        # @param StrategyId: 策略id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StrategyId: Integer
        # @param RuleCount: 基线检测项总数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type RuleCount: Integer
        # @param HostCount: 主机数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostCount: Integer
        # @param ScanCycle: 扫描周期
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanCycle: Integer
        # @param ScanAt: 扫描时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ScanAt: String
        # @param Enabled: 是否可用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Enabled: Integer
        # @param PassRate: 通过率
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PassRate: Integer
        # @param CategoryIds: 基线id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CategoryIds: String
        # @param IsDefault: 是否默认策略
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsDefault: Integer

        attr_accessor :StrategyName, :StrategyId, :RuleCount, :HostCount, :ScanCycle, :ScanAt, :Enabled, :PassRate, :CategoryIds, :IsDefault

        def initialize(strategyname=nil, strategyid=nil, rulecount=nil, hostcount=nil, scancycle=nil, scanat=nil, enabled=nil, passrate=nil, categoryids=nil, isdefault=nil)
          @StrategyName = strategyname
          @StrategyId = strategyid
          @RuleCount = rulecount
          @HostCount = hostcount
          @ScanCycle = scancycle
          @ScanAt = scanat
          @Enabled = enabled
          @PassRate = passrate
          @CategoryIds = categoryids
          @IsDefault = isdefault
        end

        def deserialize(params)
          @StrategyName = params['StrategyName']
          @StrategyId = params['StrategyId']
          @RuleCount = params['RuleCount']
          @HostCount = params['HostCount']
          @ScanCycle = params['ScanCycle']
          @ScanAt = params['ScanAt']
          @Enabled = params['Enabled']
          @PassRate = params['PassRate']
          @CategoryIds = params['CategoryIds']
          @IsDefault = params['IsDefault']
        end
      end

      # SwitchBashRules请求参数结构体
      class SwitchBashRulesRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则ID
        # @type Id: Integer
        # @param Disabled: 是否禁用
        # @type Disabled: Integer

        attr_accessor :Id, :Disabled

        def initialize(id=nil, disabled=nil)
          @Id = id
          @Disabled = disabled
        end

        def deserialize(params)
          @Id = params['Id']
          @Disabled = params['Disabled']
        end
      end

      # SwitchBashRules返回参数结构体
      class SwitchBashRulesResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # SyncAssetScan请求参数结构体
      class SyncAssetScanRequest < TencentCloud::Common::AbstractModel
        # @param Sync: 是否同步:true-是 false-否;默认false
        # @type Sync: Boolean

        attr_accessor :Sync

        def initialize(sync=nil)
          @Sync = sync
        end

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

      # SyncAssetScan返回参数结构体
      class SyncAssetScanResponse < TencentCloud::Common::AbstractModel
        # @param State: 枚举值有(大写):NOTASK(没有同步任务),SYNCING(同步中),FINISHED(同步完成)
        # @type State: String
        # @param LatestStartTime: 最新开始同步时间
        # @type LatestStartTime: String
        # @param LatestEndTime: 最新结束同步时间
        # @type LatestEndTime: String
        # @param TaskId: 任务ID
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :State, :LatestStartTime, :LatestEndTime, :TaskId, :RequestId

        def initialize(state=nil, lateststarttime=nil, latestendtime=nil, taskid=nil, requestid=nil)
          @State = state
          @LatestStartTime = lateststarttime
          @LatestEndTime = latestendtime
          @TaskId = taskid
          @RequestId = requestid
        end

        def deserialize(params)
          @State = params['State']
          @LatestStartTime = params['LatestStartTime']
          @LatestEndTime = params['LatestEndTime']
          @TaskId = params['TaskId']
          @RequestId = params['RequestId']
        end
      end

      # SyncBaselineDetectSummary请求参数结构体
      class SyncBaselineDetectSummaryRequest < TencentCloud::Common::AbstractModel
        # @param TaskIds: 用于计算检测中和进度的任务ID集合,一般不用传入
        # @type TaskIds: Array

        attr_accessor :TaskIds

        def initialize(taskids=nil)
          @TaskIds = taskids
        end

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

      # SyncBaselineDetectSummary返回参数结构体
      class SyncBaselineDetectSummaryResponse < TencentCloud::Common::AbstractModel
        # @param ProgressRate: 处理进度
        # @type ProgressRate: Integer
        # @param NotPassPolicyCount: 未通过策略总数
        # @type NotPassPolicyCount: Integer
        # @param HostCount: 主机总数
        # @type HostCount: Integer
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String
        # @param WillFirstScan: 1:即将进行首次扫描   0:已经扫描过了
        # @type WillFirstScan: Integer
        # @param DetectingTaskIds: 正在检测的任务ID
        # @type DetectingTaskIds: Array
        # @param LeftMins: 扫描中剩余时间(分钟)
        # @type LeftMins: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ProgressRate, :NotPassPolicyCount, :HostCount, :StartTime, :EndTime, :WillFirstScan, :DetectingTaskIds, :LeftMins, :RequestId

        def initialize(progressrate=nil, notpasspolicycount=nil, hostcount=nil, starttime=nil, endtime=nil, willfirstscan=nil, detectingtaskids=nil, leftmins=nil, requestid=nil)
          @ProgressRate = progressrate
          @NotPassPolicyCount = notpasspolicycount
          @HostCount = hostcount
          @StartTime = starttime
          @EndTime = endtime
          @WillFirstScan = willfirstscan
          @DetectingTaskIds = detectingtaskids
          @LeftMins = leftmins
          @RequestId = requestid
        end

        def deserialize(params)
          @ProgressRate = params['ProgressRate']
          @NotPassPolicyCount = params['NotPassPolicyCount']
          @HostCount = params['HostCount']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
          @WillFirstScan = params['WillFirstScan']
          @DetectingTaskIds = params['DetectingTaskIds']
          @LeftMins = params['LeftMins']
          @RequestId = params['RequestId']
        end
      end

      # SyncMachines请求参数结构体
      class SyncMachinesRequest < TencentCloud::Common::AbstractModel
        # @param Sync: 是否同步
        # @type Sync: Boolean

        attr_accessor :Sync

        def initialize(sync=nil)
          @Sync = sync
        end

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

      # SyncMachines返回参数结构体
      class SyncMachinesResponse < TencentCloud::Common::AbstractModel
        # @param State: 枚举值有(大写):NOTASK(没有同步任务),SYNCING(同步中),FINISHED(同步完成)
        # @type State: String
        # @param LatestStartTime: 最新开始同步时间
        # @type LatestStartTime: String
        # @param LatestEndTime: 最新同步结束时间
        # @type LatestEndTime: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :State, :LatestStartTime, :LatestEndTime, :RequestId

        def initialize(state=nil, lateststarttime=nil, latestendtime=nil, requestid=nil)
          @State = state
          @LatestStartTime = lateststarttime
          @LatestEndTime = latestendtime
          @RequestId = requestid
        end

        def deserialize(params)
          @State = params['State']
          @LatestStartTime = params['LatestStartTime']
          @LatestEndTime = params['LatestEndTime']
          @RequestId = params['RequestId']
        end
      end

      # 标签信息
      class Tag < TencentCloud::Common::AbstractModel
        # @param Id: 标签ID
        # @type Id: Integer
        # @param Name: 标签名
        # @type Name: String
        # @param Count: 服务器数
        # @type Count: Integer

        attr_accessor :Id, :Name, :Count

        def initialize(id=nil, name=nil, count=nil)
          @Id = id
          @Name = name
          @Count = count
        end

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

      # 标签相关服务器信息
      class TagMachine < TencentCloud::Common::AbstractModel
        # @param Id: ID
        # @type Id: String
        # @param Quuid: 主机ID
        # @type Quuid: String
        # @param MachineName: 主机名称
        # @type MachineName: String
        # @param MachineIp: 主机内网IP
        # @type MachineIp: String
        # @param MachineWanIp: 主机外网IP
        # @type MachineWanIp: String
        # @param MachineRegion: 主机区域
        # @type MachineRegion: String
        # @param MachineType: 主机区域类型
        # @type MachineType: String

        attr_accessor :Id, :Quuid, :MachineName, :MachineIp, :MachineWanIp, :MachineRegion, :MachineType

        def initialize(id=nil, quuid=nil, machinename=nil, machineip=nil, machinewanip=nil, machineregion=nil, machinetype=nil)
          @Id = id
          @Quuid = quuid
          @MachineName = machinename
          @MachineIp = machineip
          @MachineWanIp = machinewanip
          @MachineRegion = machineregion
          @MachineType = machinetype
        end

        def deserialize(params)
          @Id = params['Id']
          @Quuid = params['Quuid']
          @MachineName = params['MachineName']
          @MachineIp = params['MachineIp']
          @MachineWanIp = params['MachineWanIp']
          @MachineRegion = params['MachineRegion']
          @MachineType = params['MachineType']
        end
      end

      # 平台标签
      class Tags < TencentCloud::Common::AbstractModel
        # @param TagKey: 标签键
        # @type TagKey: String
        # @param TagValue: 标签值
        # @type TagValue: String

        attr_accessor :TagKey, :TagValue

        def initialize(tagkey=nil, tagvalue=nil)
          @TagKey = tagkey
          @TagValue = tagvalue
        end

        def deserialize(params)
          @TagKey = params['TagKey']
          @TagValue = params['TagValue']
        end
      end

      # 任务扫描状态列表
      class TaskStatus < TencentCloud::Common::AbstractModel
        # @param Scanning: 扫描中(包含初始化)
        # @type Scanning: String
        # @param Ok: 扫描终止(包含终止中)
        # @type Ok: String
        # @param Fail: 扫描失败
        # @type Fail: String
        # @param Stop: 扫描失败(提示具体原因:扫描超时、客户端版本低、客户端离线)
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Stop: String

        attr_accessor :Scanning, :Ok, :Fail, :Stop

        def initialize(scanning=nil, ok=nil, fail=nil, stop=nil)
          @Scanning = scanning
          @Ok = ok
          @Fail = fail
          @Stop = stop
        end

        def deserialize(params)
          @Scanning = params['Scanning']
          @Ok = params['Ok']
          @Fail = params['Fail']
          @Stop = params['Stop']
        end
      end

      # TestWebHookRule请求参数结构体
      class TestWebHookRuleRequest < TencentCloud::Common::AbstractModel
        # @param Id: 规则Id
        # @type Id: Integer
        # @param Data: 测试内容
        # @type Data: String

        attr_accessor :Id, :Data

        def initialize(id=nil, data=nil)
          @Id = id
          @Data = data
        end

        def deserialize(params)
          @Id = params['Id']
          @Data = params['Data']
        end
      end

      # TestWebHookRule返回参数结构体
      class TestWebHookRuleResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 网络攻击top统计数据
      class TopInfo < TencentCloud::Common::AbstractModel
        # @param Value: top统计数据,如ip、漏洞名等
        # @type Value: String
        # @param Count: top统计计数
        # @type Count: Integer

        attr_accessor :Value, :Count

        def initialize(value=nil, count=nil)
          @Value = value
          @Count = count
        end

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

      # TrustMalwares请求参数结构体
      class TrustMalwaresRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 木马ID数组(单次不超过的最大条数:100)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # TrustMalwares返回参数结构体
      class TrustMalwaresResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # UntrustMalwares请求参数结构体
      class UntrustMalwaresRequest < TencentCloud::Common::AbstractModel
        # @param Ids: 木马ID数组 (最大100条)
        # @type Ids: Array

        attr_accessor :Ids

        def initialize(ids=nil)
          @Ids = ids
        end

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

      # UntrustMalwares返回参数结构体
      class UntrustMalwaresResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # UpdateBaselineStrategy请求参数结构体
      class UpdateBaselineStrategyRequest < TencentCloud::Common::AbstractModel
        # @param StrategyId: 策略id
        # @type StrategyId: Integer
        # @param StrategyName: 策略名称
        # @type StrategyName: String
        # @param ScanCycle: 检测周期
        # @type ScanCycle: Integer
        # @param ScanAt: 定期检测时间,该时间下发扫描
        # @type ScanAt: String
        # @param CategoryIds: 该策略下选择的基线id数组
        # @type CategoryIds: Array
        # @param IsGlobal: 扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        # @type IsGlobal: Integer
        # @param MachineType: 云主机类型:
        # cvm:腾讯云服务器
        # bm:裸金属
        # ecm:边缘计算主机
        # lh:轻量应用服务器
        # other:混合云机器
        # @type MachineType: String
        # @param RegionCode: 主机地域 ap-guangzhou
        # @type RegionCode: String
        # @param Quuids: 主机id数组
        # @type Quuids: Array

        attr_accessor :StrategyId, :StrategyName, :ScanCycle, :ScanAt, :CategoryIds, :IsGlobal, :MachineType, :RegionCode, :Quuids

        def initialize(strategyid=nil, strategyname=nil, scancycle=nil, scanat=nil, categoryids=nil, isglobal=nil, machinetype=nil, regioncode=nil, quuids=nil)
          @StrategyId = strategyid
          @StrategyName = strategyname
          @ScanCycle = scancycle
          @ScanAt = scanat
          @CategoryIds = categoryids
          @IsGlobal = isglobal
          @MachineType = machinetype
          @RegionCode = regioncode
          @Quuids = quuids
        end

        def deserialize(params)
          @StrategyId = params['StrategyId']
          @StrategyName = params['StrategyName']
          @ScanCycle = params['ScanCycle']
          @ScanAt = params['ScanAt']
          @CategoryIds = params['CategoryIds']
          @IsGlobal = params['IsGlobal']
          @MachineType = params['MachineType']
          @RegionCode = params['RegionCode']
          @Quuids = params['Quuids']
        end
      end

      # UpdateBaselineStrategy返回参数结构体
      class UpdateBaselineStrategyResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 编辑白名单实体
      class UpdateHostLoginWhiteObj < TencentCloud::Common::AbstractModel
        # @param Places: 地域信息数组
        # @type Places: Array
        # @param SrcIp: 来源ip
        # @type SrcIp: String
        # @param UserName: 用户名
        # @type UserName: String
        # @param Remark: 备注信息
        # @type Remark: String
        # @param Id: 要更新的数据id
        # @type Id: Integer
        # @param StartTime: 开始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String

        attr_accessor :Places, :SrcIp, :UserName, :Remark, :Id, :StartTime, :EndTime

        def initialize(places=nil, srcip=nil, username=nil, remark=nil, id=nil, starttime=nil, endtime=nil)
          @Places = places
          @SrcIp = srcip
          @UserName = username
          @Remark = remark
          @Id = id
          @StartTime = starttime
          @EndTime = endtime
        end

        def deserialize(params)
          unless params['Places'].nil?
            @Places = []
            params['Places'].each do |i|
              place_tmp = Place.new
              place_tmp.deserialize(i)
              @Places << place_tmp
            end
          end
          @SrcIp = params['SrcIp']
          @UserName = params['UserName']
          @Remark = params['Remark']
          @Id = params['Id']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
        end
      end

      # UpdateMachineTags请求参数结构体
      class UpdateMachineTagsRequest < TencentCloud::Common::AbstractModel
        # @param Quuid: 机器 Quuid
        # @type Quuid: String
        # @param TagIds: 标签ID,该操作会覆盖原有的标签列表
        # @type TagIds: Array
        # @param MachineRegion: 服务器地区 如: ap-guangzhou
        # @type MachineRegion: String
        # @param MachineArea: 服务器类型(CVM|BM|ECM|LH|Other)
        # @type MachineArea: String

        attr_accessor :Quuid, :TagIds, :MachineRegion, :MachineArea

        def initialize(quuid=nil, tagids=nil, machineregion=nil, machinearea=nil)
          @Quuid = quuid
          @TagIds = tagids
          @MachineRegion = machineregion
          @MachineArea = machinearea
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @TagIds = params['TagIds']
          @MachineRegion = params['MachineRegion']
          @MachineArea = params['MachineArea']
        end
      end

      # UpdateMachineTags返回参数结构体
      class UpdateMachineTagsResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId

        def initialize(requestid=nil)
          @RequestId = requestid
        end

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

      # 常用登录地
      class UsualPlace < TencentCloud::Common::AbstractModel
        # @param Id: ID。
        # @type Id: Integer
        # @param Uuid: 主机安全客户端唯一标识UUID。
        # @type Uuid: String
        # @param CountryId: 国家 ID。
        # @type CountryId: Integer
        # @param ProvinceId: 省份 ID。
        # @type ProvinceId: Integer
        # @param CityId: 城市 ID。
        # @type CityId: Integer

        attr_accessor :Id, :Uuid, :CountryId, :ProvinceId, :CityId

        def initialize(id=nil, uuid=nil, countryid=nil, provinceid=nil, cityid=nil)
          @Id = id
          @Uuid = uuid
          @CountryId = countryid
          @ProvinceId = provinceid
          @CityId = cityid
        end

        def deserialize(params)
          @Id = params['Id']
          @Uuid = params['Uuid']
          @CountryId = params['CountryId']
          @ProvinceId = params['ProvinceId']
          @CityId = params['CityId']
        end
      end

      # 索引的value描述
      class ValueInfo < TencentCloud::Common::AbstractModel
        # @param Tokenizer: 字段的分词符
        # @type Tokenizer: String
        # @param Type: 字段类型
        # @type Type: String
        # @param SqlFlag: 字段是否开启分析功能
        # @type SqlFlag: Boolean
        # @param ContainZH: 是否包含中文
        # @type ContainZH: Boolean

        attr_accessor :Tokenizer, :Type, :SqlFlag, :ContainZH

        def initialize(tokenizer=nil, type=nil, sqlflag=nil, containzh=nil)
          @Tokenizer = tokenizer
          @Type = type
          @SqlFlag = sqlflag
          @ContainZH = containzh
        end

        def deserialize(params)
          @Tokenizer = params['Tokenizer']
          @Type = params['Type']
          @SqlFlag = params['SqlFlag']
          @ContainZH = params['ContainZH']
        end
      end

      # 授权版本白名单配置信息
      class VersionWhiteConfig < TencentCloud::Common::AbstractModel
        # @param Deadline: 到期天数
        # @type Deadline: Integer
        # @param LicenseNum: 授权数量
        # @type LicenseNum: Integer
        # @param IsApplyFor: 是否可申请
        # @type IsApplyFor: Boolean
        # @param SourceType: 类型
        # @type SourceType: Integer

        attr_accessor :Deadline, :LicenseNum, :IsApplyFor, :SourceType

        def initialize(deadline=nil, licensenum=nil, isapplyfor=nil, sourcetype=nil)
          @Deadline = deadline
          @LicenseNum = licensenum
          @IsApplyFor = isapplyfor
          @SourceType = sourcetype
        end

        def deserialize(params)
          @Deadline = params['Deadline']
          @LicenseNum = params['LicenseNum']
          @IsApplyFor = params['IsApplyFor']
          @SourceType = params['SourceType']
        end
      end

      # 点详细信息
      class VertexDetail < TencentCloud::Common::AbstractModel
        # @param Type: 该节点类型,进程:1;网络:2;文件:3;ssh:4
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Type: Integer
        # @param Time: 各节点类型用到的时间,2022-11-29 00:00:00 格式
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Time: String
        # @param AlarmInfo: 告警信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AlarmInfo: Array
        # @param ProcName: 进程名,当该节点为进程时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ProcName: String
        # @param CmdLine: 命令行,当该节点为进程时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CmdLine: String
        # @param Pid: 进程id,当该节点为进程时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Pid: String
        # @param FileMd5: 文件md5,当该节点为文件时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FileMd5: String
        # @param FileContent: 文件写入内容,当该节点为文件时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FileContent: String
        # @param FilePath: 文件路径,当该节点为文件时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FilePath: String
        # @param FileCreateTime: 文件创建时间,当该节点为文件时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FileCreateTime: String
        # @param Address: 请求目的地址,当该节点为网络时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Address: String
        # @param DstPort: 目标端口,当该节点为网络时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DstPort: Integer
        # @param SrcIP: 登录源ip,当该节点为ssh时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SrcIP: String
        # @param User: 登录用户名用户组,当该节点为ssh时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type User: String
        # @param VulName: 漏洞名称,当该节点为漏洞时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulName: String
        # @param VulTime: 漏洞利用时间,当该节点为漏洞时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulTime: String
        # @param HttpContent: http请求内容,当该节点为漏洞时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HttpContent: String
        # @param VulSrcIP: 漏洞利用者来源ip,当该节点为漏洞时生效
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulSrcIP: String
        # @param VertexId: 点id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VertexId: String

        attr_accessor :Type, :Time, :AlarmInfo, :ProcName, :CmdLine, :Pid, :FileMd5, :FileContent, :FilePath, :FileCreateTime, :Address, :DstPort, :SrcIP, :User, :VulName, :VulTime, :HttpContent, :VulSrcIP, :VertexId

        def initialize(type=nil, time=nil, alarminfo=nil, procname=nil, cmdline=nil, pid=nil, filemd5=nil, filecontent=nil, filepath=nil, filecreatetime=nil, address=nil, dstport=nil, srcip=nil, user=nil, vulname=nil, vultime=nil, httpcontent=nil, vulsrcip=nil, vertexid=nil)
          @Type = type
          @Time = time
          @AlarmInfo = alarminfo
          @ProcName = procname
          @CmdLine = cmdline
          @Pid = pid
          @FileMd5 = filemd5
          @FileContent = filecontent
          @FilePath = filepath
          @FileCreateTime = filecreatetime
          @Address = address
          @DstPort = dstport
          @SrcIP = srcip
          @User = user
          @VulName = vulname
          @VulTime = vultime
          @HttpContent = httpcontent
          @VulSrcIP = vulsrcip
          @VertexId = vertexid
        end

        def deserialize(params)
          @Type = params['Type']
          @Time = params['Time']
          unless params['AlarmInfo'].nil?
            @AlarmInfo = []
            params['AlarmInfo'].each do |i|
              alarminfo_tmp = AlarmInfo.new
              alarminfo_tmp.deserialize(i)
              @AlarmInfo << alarminfo_tmp
            end
          end
          @ProcName = params['ProcName']
          @CmdLine = params['CmdLine']
          @Pid = params['Pid']
          @FileMd5 = params['FileMd5']
          @FileContent = params['FileContent']
          @FilePath = params['FilePath']
          @FileCreateTime = params['FileCreateTime']
          @Address = params['Address']
          @DstPort = params['DstPort']
          @SrcIP = params['SrcIP']
          @User = params['User']
          @VulName = params['VulName']
          @VulTime = params['VulTime']
          @HttpContent = params['HttpContent']
          @VulSrcIP = params['VulSrcIP']
          @VertexId = params['VertexId']
        end
      end

      # 攻击溯源节点信息
      class VertexInfo < TencentCloud::Common::AbstractModel
        # @param Type: 该结点类型,进程:1;网络:2;文件:3;ssh:4;
        # @type Type: Integer
        # @param Vid: 该节点包含的vid
        # @type Vid: String
        # @param ParentVid: 该节点的父节点vid
        # @type ParentVid: String
        # @param IsLeaf: 是否叶子
        # @type IsLeaf: Boolean
        # @param ProcNamePrefix: 进程名,当Type=1时使用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ProcNamePrefix: String
        # @param ProcNameMd5: 进程名md5,当Type=1时使用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ProcNameMd5: String
        # @param CmdLinePrefix: 命令行,当Type=1时使用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CmdLinePrefix: String
        # @param CmdLineMd5: 命令行md5,当Type=1时使用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CmdLineMd5: String
        # @param FilePathPrefix: 文件路径,当Type=3时使用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FilePathPrefix: String
        # @param AddressPrefix: 请求目的地址,当Type=2时使用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AddressPrefix: String
        # @param IsWeDetect: 是否漏洞节点
        # @type IsWeDetect: Boolean
        # @param IsAlarm: 是否告警节点
        # @type IsAlarm: Boolean
        # @param FilePathMd5: 文件路径md5,当Type=3时使用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FilePathMd5: String
        # @param AddressMd5: 请求目的地址md5,当Type=2时使用
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AddressMd5: String

        attr_accessor :Type, :Vid, :ParentVid, :IsLeaf, :ProcNamePrefix, :ProcNameMd5, :CmdLinePrefix, :CmdLineMd5, :FilePathPrefix, :AddressPrefix, :IsWeDetect, :IsAlarm, :FilePathMd5, :AddressMd5

        def initialize(type=nil, vid=nil, parentvid=nil, isleaf=nil, procnameprefix=nil, procnamemd5=nil, cmdlineprefix=nil, cmdlinemd5=nil, filepathprefix=nil, addressprefix=nil, iswedetect=nil, isalarm=nil, filepathmd5=nil, addressmd5=nil)
          @Type = type
          @Vid = vid
          @ParentVid = parentvid
          @IsLeaf = isleaf
          @ProcNamePrefix = procnameprefix
          @ProcNameMd5 = procnamemd5
          @CmdLinePrefix = cmdlineprefix
          @CmdLineMd5 = cmdlinemd5
          @FilePathPrefix = filepathprefix
          @AddressPrefix = addressprefix
          @IsWeDetect = iswedetect
          @IsAlarm = isalarm
          @FilePathMd5 = filepathmd5
          @AddressMd5 = addressmd5
        end

        def deserialize(params)
          @Type = params['Type']
          @Vid = params['Vid']
          @ParentVid = params['ParentVid']
          @IsLeaf = params['IsLeaf']
          @ProcNamePrefix = params['ProcNamePrefix']
          @ProcNameMd5 = params['ProcNameMd5']
          @CmdLinePrefix = params['CmdLinePrefix']
          @CmdLineMd5 = params['CmdLineMd5']
          @FilePathPrefix = params['FilePathPrefix']
          @AddressPrefix = params['AddressPrefix']
          @IsWeDetect = params['IsWeDetect']
          @IsAlarm = params['IsAlarm']
          @FilePathMd5 = params['FilePathMd5']
          @AddressMd5 = params['AddressMd5']
        end
      end

      # 漏洞详细信息
      class VulDefenceEvent < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞ID
        # @type VulId: Integer
        # @param VulName: 漏洞名称
        # @type VulName: String
        # @param CveId: cve编号
        # @type CveId: String
        # @param Id: 漏洞事件id
        # @type Id: Integer
        # @param Quuid: 主机quuid
        # @type Quuid: String
        # @param Alias: 主机名
        # @type Alias: String
        # @param PrivateIp: 内网ip
        # @type PrivateIp: String
        # @param PublicIp: 公网ip
        # @type PublicIp: String
        # @param EventType: 0: 尝试攻击(WeDetect) 1:尝试攻击成功(WeDetect) 2:rasp防御事件
        # @type EventType: Integer
        # @param SourceIp: 攻击源ip
        # @type SourceIp: String
        # @param City: 攻击源ip地址所在城市
        # @type City: String
        # @param SourcePort: 攻击源端口
        # @type SourcePort: Array
        # @param CreateTime: 创建事件时间
        # @type CreateTime: String
        # @param MergeTime: 更新事件时间
        # @type MergeTime: String
        # @param Count: 事件发生次数
        # @type Count: Integer
        # @param Status: 状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除
        # @type Status: Integer
        # @param UpgradeType: 0 专业版,1 旗舰版,2 LH普惠版(仅限LH使用),3  CVM普惠版(仅限CVM使用)
        # @type UpgradeType: Integer
        # @param FixType: 0 不支持修复,1 支持修复
        # @type FixType: Integer
        # @param Uuid: 主机uuid
        # @type Uuid: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :VulId, :VulName, :CveId, :Id, :Quuid, :Alias, :PrivateIp, :PublicIp, :EventType, :SourceIp, :City, :SourcePort, :CreateTime, :MergeTime, :Count, :Status, :UpgradeType, :FixType, :Uuid, :MachineExtraInfo

        def initialize(vulid=nil, vulname=nil, cveid=nil, id=nil, quuid=nil, _alias=nil, privateip=nil, publicip=nil, eventtype=nil, sourceip=nil, city=nil, sourceport=nil, createtime=nil, mergetime=nil, count=nil, status=nil, upgradetype=nil, fixtype=nil, uuid=nil, machineextrainfo=nil)
          @VulId = vulid
          @VulName = vulname
          @CveId = cveid
          @Id = id
          @Quuid = quuid
          @Alias = _alias
          @PrivateIp = privateip
          @PublicIp = publicip
          @EventType = eventtype
          @SourceIp = sourceip
          @City = city
          @SourcePort = sourceport
          @CreateTime = createtime
          @MergeTime = mergetime
          @Count = count
          @Status = status
          @UpgradeType = upgradetype
          @FixType = fixtype
          @Uuid = uuid
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @VulId = params['VulId']
          @VulName = params['VulName']
          @CveId = params['CveId']
          @Id = params['Id']
          @Quuid = params['Quuid']
          @Alias = params['Alias']
          @PrivateIp = params['PrivateIp']
          @PublicIp = params['PublicIp']
          @EventType = params['EventType']
          @SourceIp = params['SourceIp']
          @City = params['City']
          @SourcePort = params['SourcePort']
          @CreateTime = params['CreateTime']
          @MergeTime = params['MergeTime']
          @Count = params['Count']
          @Status = params['Status']
          @UpgradeType = params['UpgradeType']
          @FixType = params['FixType']
          @Uuid = params['Uuid']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 漏洞详细信息
      class VulDefenceEventDetail < TencentCloud::Common::AbstractModel
        # @param VulName: 漏洞名称
        # @type VulName: String
        # @param CveId: cve编号
        # @type CveId: String
        # @param Id: 漏洞事件id
        # @type Id: Integer
        # @param Quuid: 主机quuid
        # @type Quuid: String
        # @param Alias: 主机名
        # @type Alias: String
        # @param PrivateIp: 内网ip
        # @type PrivateIp: String
        # @param PublicIp: 公网ip
        # @type PublicIp: String
        # @param EventType: 0: 尝试攻击(WeDetect) 1:尝试攻击成功(WeDetect) 2:rasp防御事件
        # @type EventType: Integer
        # @param SourceIp: 攻击源ip
        # @type SourceIp: String
        # @param City: 攻击源ip地址所在城市
        # @type City: String
        # @param SourcePort: 攻击源端口
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SourcePort: Array
        # @param CreateTime: 创建事件时间
        # @type CreateTime: String
        # @param MergeTime: 更新事件时间
        # @type MergeTime: String
        # @param Count: 事件发生次数
        # @type Count: Integer
        # @param Status: 状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除
        # @type Status: Integer
        # @param MachineStatus: ONLINE OFFLINE
        # @type MachineStatus: String
        # @param Description: 漏洞描述信息
        # @type Description: String
        # @param Fix: 修复建议
        # @type Fix: String
        # @param NetworkPayload: 攻击payload
        # @type NetworkPayload: String
        # @param Pid: 关联进程pid
        # @type Pid: Integer
        # @param MainClass: 关联进程主类名
        # @type MainClass: String
        # @param StackTrace: 堆栈信息(rasp特有)
        # @type StackTrace: String
        # @param EventDetail: 漏洞ID相关的事件详情(json array格式 rasp特有)
        # @type EventDetail: String
        # @param ExceptionPstree: 主机失陷事件进程树(json格式 WeDetect特有)
        # @type ExceptionPstree: String
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :VulName, :CveId, :Id, :Quuid, :Alias, :PrivateIp, :PublicIp, :EventType, :SourceIp, :City, :SourcePort, :CreateTime, :MergeTime, :Count, :Status, :MachineStatus, :Description, :Fix, :NetworkPayload, :Pid, :MainClass, :StackTrace, :EventDetail, :ExceptionPstree, :MachineExtraInfo

        def initialize(vulname=nil, cveid=nil, id=nil, quuid=nil, _alias=nil, privateip=nil, publicip=nil, eventtype=nil, sourceip=nil, city=nil, sourceport=nil, createtime=nil, mergetime=nil, count=nil, status=nil, machinestatus=nil, description=nil, fix=nil, networkpayload=nil, pid=nil, mainclass=nil, stacktrace=nil, eventdetail=nil, exceptionpstree=nil, machineextrainfo=nil)
          @VulName = vulname
          @CveId = cveid
          @Id = id
          @Quuid = quuid
          @Alias = _alias
          @PrivateIp = privateip
          @PublicIp = publicip
          @EventType = eventtype
          @SourceIp = sourceip
          @City = city
          @SourcePort = sourceport
          @CreateTime = createtime
          @MergeTime = mergetime
          @Count = count
          @Status = status
          @MachineStatus = machinestatus
          @Description = description
          @Fix = fix
          @NetworkPayload = networkpayload
          @Pid = pid
          @MainClass = mainclass
          @StackTrace = stacktrace
          @EventDetail = eventdetail
          @ExceptionPstree = exceptionpstree
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @VulName = params['VulName']
          @CveId = params['CveId']
          @Id = params['Id']
          @Quuid = params['Quuid']
          @Alias = params['Alias']
          @PrivateIp = params['PrivateIp']
          @PublicIp = params['PublicIp']
          @EventType = params['EventType']
          @SourceIp = params['SourceIp']
          @City = params['City']
          @SourcePort = params['SourcePort']
          @CreateTime = params['CreateTime']
          @MergeTime = params['MergeTime']
          @Count = params['Count']
          @Status = params['Status']
          @MachineStatus = params['MachineStatus']
          @Description = params['Description']
          @Fix = params['Fix']
          @NetworkPayload = params['NetworkPayload']
          @Pid = params['Pid']
          @MainClass = params['MainClass']
          @StackTrace = params['StackTrace']
          @EventDetail = params['EventDetail']
          @ExceptionPstree = params['ExceptionPstree']
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 漏洞防御趋势页,包括插件状态及攻防趋势,趋势由三个长度相同,元素一一对应的数组保存,如果某天没有数据将会缺失
      class VulDefenceOverview < TencentCloud::Common::AbstractModel
        # @param Enable: 防御开关:0 关闭 1 开启
        # @type Enable: Integer
        # @param DefendHostCount: 已开启防御主机数
        # @type DefendHostCount: Integer
        # @param ExceptionCount: 插件异常数
        # @type ExceptionCount: Integer
        # @param AttackCounts: 每日攻击趋势
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AttackCounts: Array
        # @param DefendCounts: 每日防御趋势
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DefendCounts: Array
        # @param Date: 日期
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Date: Array

        attr_accessor :Enable, :DefendHostCount, :ExceptionCount, :AttackCounts, :DefendCounts, :Date

        def initialize(enable=nil, defendhostcount=nil, exceptioncount=nil, attackcounts=nil, defendcounts=nil, date=nil)
          @Enable = enable
          @DefendHostCount = defendhostcount
          @ExceptionCount = exceptioncount
          @AttackCounts = attackcounts
          @DefendCounts = defendcounts
          @Date = date
        end

        def deserialize(params)
          @Enable = params['Enable']
          @DefendHostCount = params['DefendHostCount']
          @ExceptionCount = params['ExceptionCount']
          @AttackCounts = params['AttackCounts']
          @DefendCounts = params['DefendCounts']
          @Date = params['Date']
        end
      end

      # 单个进程漏洞防御插件状态
      class VulDefencePluginDetail < TencentCloud::Common::AbstractModel
        # @param Pid: 注入进程Pid
        # @type Pid: Integer
        # @param MainClass: 注入进程主类名
        # @type MainClass: String
        # @param Status: 插件状态:0: 注入中, 1: 注入成功, 2: 插件超时, 3: 插件退出, 4: 注入失败 5: 软删除
        # @type Status: Integer
        # @param ErrorLog: 错误日志
        # @type ErrorLog: String
        # @param InjectLog: 注入日志
        # @type InjectLog: String

        attr_accessor :Pid, :MainClass, :Status, :ErrorLog, :InjectLog

        def initialize(pid=nil, mainclass=nil, status=nil, errorlog=nil, injectlog=nil)
          @Pid = pid
          @MainClass = mainclass
          @Status = status
          @ErrorLog = errorlog
          @InjectLog = injectlog
        end

        def deserialize(params)
          @Pid = params['Pid']
          @MainClass = params['MainClass']
          @Status = params['Status']
          @ErrorLog = params['ErrorLog']
          @InjectLog = params['InjectLog']
        end
      end

      # 主机漏洞防御插件信息
      class VulDefencePluginStatus < TencentCloud::Common::AbstractModel
        # @param Quuid: 主机quuid
        # @type Quuid: String
        # @param Alias: 主机别名
        # @type Alias: String
        # @param PrivateIp: 内网ip
        # @type PrivateIp: String
        # @param PublicIp: 公网ip
        # @type PublicIp: String
        # @param Exception: 插件状态:0 正常,1 异常
        # @type Exception: Integer
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param ModifyTime: 最后跟新时间
        # @type ModifyTime: String

        attr_accessor :Quuid, :Alias, :PrivateIp, :PublicIp, :Exception, :CreateTime, :ModifyTime

        def initialize(quuid=nil, _alias=nil, privateip=nil, publicip=nil, exception=nil, createtime=nil, modifytime=nil)
          @Quuid = quuid
          @Alias = _alias
          @PrivateIp = privateip
          @PublicIp = publicip
          @Exception = exception
          @CreateTime = createtime
          @ModifyTime = modifytime
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @Alias = params['Alias']
          @PrivateIp = params['PrivateIp']
          @PublicIp = params['PublicIp']
          @Exception = params['Exception']
          @CreateTime = params['CreateTime']
          @ModifyTime = params['ModifyTime']
        end
      end

      # 漏洞防御范围详情
      class VulDefenceRangeDetail < TencentCloud::Common::AbstractModel
        # @param VulName: 漏洞名称
        # @type VulName: String
        # @param Label: 标签
        # @type Label: String
        # @param Level: 漏洞级别:  1低危 2中危 3高危 4严重
        # @type Level: Integer
        # @param CvssScore: cvss 分数
        # @type CvssScore: Float
        # @param CveId: cve id
        # @type CveId: String
        # @param PublishTime: 发布时间
        # @type PublishTime: String
        # @param VulId: 漏洞id
        # @type VulId: Integer

        attr_accessor :VulName, :Label, :Level, :CvssScore, :CveId, :PublishTime, :VulId

        def initialize(vulname=nil, label=nil, level=nil, cvssscore=nil, cveid=nil, publishtime=nil, vulid=nil)
          @VulName = vulname
          @Label = label
          @Level = level
          @CvssScore = cvssscore
          @CveId = cveid
          @PublishTime = publishtime
          @VulId = vulid
        end

        def deserialize(params)
          @VulName = params['VulName']
          @Label = params['Label']
          @Level = params['Level']
          @CvssScore = params['CvssScore']
          @CveId = params['CveId']
          @PublishTime = params['PublishTime']
          @VulId = params['VulId']
        end
      end

      # 漏洞详细信息
      class VulDetailInfo < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞ID
        # @type VulId: Integer
        # @param Level: 漏洞级别
        # @type Level: Integer
        # @param Name: 漏洞名称
        # @type Name: String
        # @param CveId: cve编号
        # @type CveId: String
        # @param VulCategory: 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 0= 应急漏洞
        # @type VulCategory: Integer
        # @param Descript: 漏洞描述
        # @type Descript: String
        # @param Fix: 修复建议
        # @type Fix: String
        # @param Reference: 参考链接
        # @type Reference: String
        # @param CvssScore: CVSS评分
        # @type CvssScore: Float
        # @param Cvss: CVSS详情
        # @type Cvss: String
        # @param PublishTime: 发布时间
        # @type PublishTime: String

        attr_accessor :VulId, :Level, :Name, :CveId, :VulCategory, :Descript, :Fix, :Reference, :CvssScore, :Cvss, :PublishTime

        def initialize(vulid=nil, level=nil, name=nil, cveid=nil, vulcategory=nil, descript=nil, fix=nil, reference=nil, cvssscore=nil, cvss=nil, publishtime=nil)
          @VulId = vulid
          @Level = level
          @Name = name
          @CveId = cveid
          @VulCategory = vulcategory
          @Descript = descript
          @Fix = fix
          @Reference = reference
          @CvssScore = cvssscore
          @Cvss = cvss
          @PublishTime = publishtime
        end

        def deserialize(params)
          @VulId = params['VulId']
          @Level = params['Level']
          @Name = params['Name']
          @CveId = params['CveId']
          @VulCategory = params['VulCategory']
          @Descript = params['Descript']
          @Fix = params['Fix']
          @Reference = params['Reference']
          @CvssScore = params['CvssScore']
          @Cvss = params['Cvss']
          @PublishTime = params['PublishTime']
        end
      end

      # 漏洞影响主机列表
      class VulEffectHostList < TencentCloud::Common::AbstractModel
        # @param EventId: 事件id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type EventId: Integer
        # @param Status: 状态:0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中 7: 回滚中 8:修复失败
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Status: Integer
        # @param LastTime: 最后检测时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type LastTime: String
        # @param Level: 危害等级:1-低危;2-中危;3-高危;4-严重
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Level: Integer
        # @param Quuid: 主机Quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param Uuid: 主机Uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param HostIp: 主机HostIp
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIp: String
        # @param AliasName: 主机别名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AliasName: String
        # @param Tags: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tags: Array
        # @param Description: 说明
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Description: String
        # @param HostVersion: 版本信息:0-基础版 1-专业版 2-旗舰版 3-普惠版
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostVersion: Integer
        # @param IsSupportAutoFix: 是否能自动修复 0 :漏洞不可自动修复,  1:可自动修复, 2:客户端已离线, 3:主机不是旗舰版只能手动修复, 4:机型不允许 ,5:修复中 ,6:已修复, 7:检测中  9:修复失败,10:已忽略 11:漏洞只支持linux不支持Windows 12:漏洞只支持Windows不支持linux,13:修复失败但此时主机已离线,14:修复失败但此时主机不是旗舰版, 15:已手动修复
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsSupportAutoFix: Integer
        # @param FixStatusMsg: 失败原因
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixStatusMsg: String
        # @param FirstDiscoveryTime: 首次发现时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FirstDiscoveryTime: String
        # @param InstanceState: 实例状态:"PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-表示开机中 "STOPPING"-表示关机中 "REBOOTING"-重启中 "SHUTDOWN"-表示停止待销毁 "TERMINATING"-表示销毁中 "
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceState: String
        # @param PublicIpAddresses: 外网ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PublicIpAddresses: String
        # @param CloudTags: 云标签信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CloudTags: Array
        # @param MachineExtraInfo: 主机额外信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type MachineExtraInfo: :class:`Tencentcloud::Cwp.v20180228.models.MachineExtraInfo`

        attr_accessor :EventId, :Status, :LastTime, :Level, :Quuid, :Uuid, :HostIp, :AliasName, :Tags, :Description, :HostVersion, :IsSupportAutoFix, :FixStatusMsg, :FirstDiscoveryTime, :InstanceState, :PublicIpAddresses, :CloudTags, :MachineExtraInfo

        def initialize(eventid=nil, status=nil, lasttime=nil, level=nil, quuid=nil, uuid=nil, hostip=nil, aliasname=nil, tags=nil, description=nil, hostversion=nil, issupportautofix=nil, fixstatusmsg=nil, firstdiscoverytime=nil, instancestate=nil, publicipaddresses=nil, cloudtags=nil, machineextrainfo=nil)
          @EventId = eventid
          @Status = status
          @LastTime = lasttime
          @Level = level
          @Quuid = quuid
          @Uuid = uuid
          @HostIp = hostip
          @AliasName = aliasname
          @Tags = tags
          @Description = description
          @HostVersion = hostversion
          @IsSupportAutoFix = issupportautofix
          @FixStatusMsg = fixstatusmsg
          @FirstDiscoveryTime = firstdiscoverytime
          @InstanceState = instancestate
          @PublicIpAddresses = publicipaddresses
          @CloudTags = cloudtags
          @MachineExtraInfo = machineextrainfo
        end

        def deserialize(params)
          @EventId = params['EventId']
          @Status = params['Status']
          @LastTime = params['LastTime']
          @Level = params['Level']
          @Quuid = params['Quuid']
          @Uuid = params['Uuid']
          @HostIp = params['HostIp']
          @AliasName = params['AliasName']
          @Tags = params['Tags']
          @Description = params['Description']
          @HostVersion = params['HostVersion']
          @IsSupportAutoFix = params['IsSupportAutoFix']
          @FixStatusMsg = params['FixStatusMsg']
          @FirstDiscoveryTime = params['FirstDiscoveryTime']
          @InstanceState = params['InstanceState']
          @PublicIpAddresses = params['PublicIpAddresses']
          unless params['CloudTags'].nil?
            @CloudTags = []
            params['CloudTags'].each do |i|
              tags_tmp = Tags.new
              tags_tmp.deserialize(i)
              @CloudTags << tags_tmp
            end
          end
          unless params['MachineExtraInfo'].nil?
            @MachineExtraInfo = MachineExtraInfo.new
            @MachineExtraInfo.deserialize(params['MachineExtraInfo'])
          end
        end
      end

      # 漏洞影响组件详情
      class VulEffectModuleInfo < TencentCloud::Common::AbstractModel
        # @param Name: 组件名
        # @type Name: String
        # @param Uuids: 影响的主机uuid
        # @type Uuids: Array
        # @param Rule: 组件影响版本
        # @type Rule: String
        # @param Path: 组件路径
        # @type Path: String
        # @param Version: 组件版本
        # @type Version: String
        # @param FixCmd: 修复命令
        # @type FixCmd: String
        # @param Quuids: 影响的主机quuid
        # @type Quuids: Array

        attr_accessor :Name, :Uuids, :Rule, :Path, :Version, :FixCmd, :Quuids

        def initialize(name=nil, uuids=nil, rule=nil, path=nil, version=nil, fixcmd=nil, quuids=nil)
          @Name = name
          @Uuids = uuids
          @Rule = rule
          @Path = path
          @Version = version
          @FixCmd = fixcmd
          @Quuids = quuids
        end

        def deserialize(params)
          @Name = params['Name']
          @Uuids = params['Uuids']
          @Rule = params['Rule']
          @Path = params['Path']
          @Version = params['Version']
          @FixCmd = params['FixCmd']
          @Quuids = params['Quuids']
        end
      end

      # 紧急通知实体
      class VulEmergentMsgInfo < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param PublishTime: 漏洞纰漏时间
        # @type PublishTime: String
        # @param Name: 漏洞名
        # @type Name: String

        attr_accessor :VulId, :PublishTime, :Name

        def initialize(vulid=nil, publishtime=nil, name=nil)
          @VulId = vulid
          @PublishTime = publishtime
          @Name = name
        end

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

      # 查看漏洞修复详情 每台主机每个漏洞修复状态
      class VulFixStatusHostInfo < TencentCloud::Common::AbstractModel
        # @param HostName: 主机名称
        # @type HostName: String
        # @param HostIp: 主机ip
        # @type HostIp: String
        # @param Quuid: 主机的quuid
        # @type Quuid: String
        # @param Status: 状态:0-初始状态;1-已下发任务(修复中)2-完成(成功);3-修复失败(失败)4-快照创建失败 导致修复失败(未修复);
        # @type Status: Integer
        # @param ModifyTime: 修复时间
        # @type ModifyTime: String
        # @param FailReason: 修复失败原因
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FailReason: String

        attr_accessor :HostName, :HostIp, :Quuid, :Status, :ModifyTime, :FailReason

        def initialize(hostname=nil, hostip=nil, quuid=nil, status=nil, modifytime=nil, failreason=nil)
          @HostName = hostname
          @HostIp = hostip
          @Quuid = quuid
          @Status = status
          @ModifyTime = modifytime
          @FailReason = failreason
        end

        def deserialize(params)
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @Quuid = params['Quuid']
          @Status = params['Status']
          @ModifyTime = params['ModifyTime']
          @FailReason = params['FailReason']
        end
      end

      # 查看漏洞修复详情
      class VulFixStatusInfo < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulId: Integer
        # @param VulName: 漏洞名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulName: String
        # @param Progress: 漏洞修复进度 1-100;
        # @type Progress: Integer
        # @param HostList: 漏洞对应主机修复状态
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostList: Array
        # @param FailCnt: 漏洞修复失败主机数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FailCnt: Integer
        # @param FixSuccessCnt: 修复成功的数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixSuccessCnt: Integer

        attr_accessor :VulId, :VulName, :Progress, :HostList, :FailCnt, :FixSuccessCnt

        def initialize(vulid=nil, vulname=nil, progress=nil, hostlist=nil, failcnt=nil, fixsuccesscnt=nil)
          @VulId = vulid
          @VulName = vulname
          @Progress = progress
          @HostList = hostlist
          @FailCnt = failcnt
          @FixSuccessCnt = fixsuccesscnt
        end

        def deserialize(params)
          @VulId = params['VulId']
          @VulName = params['VulName']
          @Progress = params['Progress']
          unless params['HostList'].nil?
            @HostList = []
            params['HostList'].each do |i|
              vulfixstatushostinfo_tmp = VulFixStatusHostInfo.new
              vulfixstatushostinfo_tmp.deserialize(i)
              @HostList << vulfixstatushostinfo_tmp
            end
          end
          @FailCnt = params['FailCnt']
          @FixSuccessCnt = params['FixSuccessCnt']
        end
      end

      # 机器快照信息
      class VulFixStatusSnapshotInfo < TencentCloud::Common::AbstractModel
        # @param Quuid: cvm id
        # @type Quuid: String
        # @param HostName: 主机名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String
        # @param HostIp: 主机ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIp: String
        # @param SnapshotName: 快照名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SnapshotName: String
        # @param ModifyTime: 快照创建时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ModifyTime: String
        # @param SnapshotId: 快照id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type SnapshotId: String
        # @param Id: 记录唯一id
        # @type Id: Integer
        # @param Status: 快照状态 0-初始状态1-快照创建成功;2-快照创建失败;
        # @type Status: Integer
        # @param FailReason: 快照创建失败原因
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FailReason: String

        attr_accessor :Quuid, :HostName, :HostIp, :SnapshotName, :ModifyTime, :SnapshotId, :Id, :Status, :FailReason

        def initialize(quuid=nil, hostname=nil, hostip=nil, snapshotname=nil, modifytime=nil, snapshotid=nil, id=nil, status=nil, failreason=nil)
          @Quuid = quuid
          @HostName = hostname
          @HostIp = hostip
          @SnapshotName = snapshotname
          @ModifyTime = modifytime
          @SnapshotId = snapshotid
          @Id = id
          @Status = status
          @FailReason = failreason
        end

        def deserialize(params)
          @Quuid = params['Quuid']
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @SnapshotName = params['SnapshotName']
          @ModifyTime = params['ModifyTime']
          @SnapshotId = params['SnapshotId']
          @Id = params['Id']
          @Status = params['Status']
          @FailReason = params['FailReason']
        end
      end

      # 服务器风险top5实体
      class VulHostTopInfo < TencentCloud::Common::AbstractModel
        # @param HostName: 主机名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String
        # @param VulLevelList: 漏洞等级与数量统计列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulLevelList: Array
        # @param Quuid: 主机Quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param Score: top评分
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Score: Integer

        attr_accessor :HostName, :VulLevelList, :Quuid, :Score

        def initialize(hostname=nil, vullevellist=nil, quuid=nil, score=nil)
          @HostName = hostname
          @VulLevelList = vullevellist
          @Quuid = quuid
          @Score = score
        end

        def deserialize(params)
          @HostName = params['HostName']
          unless params['VulLevelList'].nil?
            @VulLevelList = []
            params['VulLevelList'].each do |i|
              vullevelcountinfo_tmp = VulLevelCountInfo.new
              vullevelcountinfo_tmp.deserialize(i)
              @VulLevelList << vullevelcountinfo_tmp
            end
          end
          @Quuid = params['Quuid']
          @Score = params['Score']
        end
      end

      # 根据cve_id查询漏洞详情
      class VulInfoByCveId < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param FixSwitch: 修复支持情况:0-windows/linux均不支持修复 ;1-windows/linux 均支持修复 ;2-仅linux支持修复;3-仅windows支持修复
        # @type FixSwitch: Integer

        attr_accessor :VulId, :FixSwitch

        def initialize(vulid=nil, fixswitch=nil)
          @VulId = vulid
          @FixSwitch = fixswitch
        end

        def deserialize(params)
          @VulId = params['VulId']
          @FixSwitch = params['FixSwitch']
        end
      end

      # 批量修复漏洞二次弹窗
      class VulInfoHostInfo < TencentCloud::Common::AbstractModel
        # @param HostName: 主机名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostName: String
        # @param HostIp: 主机ip
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostIp: String
        # @param Tags: 主机标签
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Tags: Array
        # @param Quuid: 主机quuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuid: String
        # @param IsSupportAutoFix: 0 :漏洞不可自动修复,  1:可自动修复, 2:客户端已离线, 3:主机不是旗舰版只能手动修复, 4:机型不允许 ,5:修复中 ,6:已修复, 7:检测中, 9:修复失败, 10:已忽略 ,11:漏洞只支持linux不支持Windows, 12:漏洞只支持Windows不支持linux
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsSupportAutoFix: Integer
        # @param Uuid: 主机uuid
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Uuid: String
        # @param InstanceId: 主机InstanceId
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type InstanceId: String

        attr_accessor :HostName, :HostIp, :Tags, :Quuid, :IsSupportAutoFix, :Uuid, :InstanceId

        def initialize(hostname=nil, hostip=nil, tags=nil, quuid=nil, issupportautofix=nil, uuid=nil, instanceid=nil)
          @HostName = hostname
          @HostIp = hostip
          @Tags = tags
          @Quuid = quuid
          @IsSupportAutoFix = issupportautofix
          @Uuid = uuid
          @InstanceId = instanceid
        end

        def deserialize(params)
          @HostName = params['HostName']
          @HostIp = params['HostIp']
          @Tags = params['Tags']
          @Quuid = params['Quuid']
          @IsSupportAutoFix = params['IsSupportAutoFix']
          @Uuid = params['Uuid']
          @InstanceId = params['InstanceId']
        end
      end

      # 主机安全-漏洞管理-漏洞列表
      class VulInfoList < TencentCloud::Common::AbstractModel
        # @param Ids: 漏洞包含的事件id串,多个用“,”分割
        # @type Ids: String
        # @param Name: 漏洞名
        # @type Name: String
        # @param Status: 0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中  8:修复失败
        # @type Status: Integer
        # @param VulId: 漏洞id
        # @type VulId: Integer
        # @param PublishTime: 漏洞披露事件
        # @type PublishTime: String
        # @param LastTime: 最后检测时间
        # @type LastTime: String
        # @param HostCount: 影响主机数
        # @type HostCount: Integer
        # @param Level: 漏洞等级 1:低 2:中 3:高 4:严重
        # @type Level: Integer
        # @param From: 废弃字段
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type From: Integer
        # @param Descript: 描述
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Descript: String
        # @param PublishTimeWisteria: 废弃字段
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PublishTimeWisteria: String
        # @param NameWisteria: 废弃字段
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type NameWisteria: String
        # @param DescriptWisteria: 废弃字段
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DescriptWisteria: String
        # @param StatusStr: 聚合后事件状态串
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type StatusStr: String
        # @param CveId: cve编号
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CveId: String
        # @param CvssScore: CVSS评分
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CvssScore: Float
        # @param Labels: 漏洞标签 多个逗号分割
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Labels: String
        # @param FixSwitch: 是否能自动修复且包含能自动修复的主机, 0=否  1=是
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixSwitch: Integer
        # @param TaskId: 最后扫描任务的id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type TaskId: Integer
        # @param IsSupportDefense: 是否支持防御, 0:不支持 1:支持
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsSupportDefense: Integer
        # @param DefenseAttackCount: 已防御的攻击次数
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type DefenseAttackCount: Integer
        # @param FirstAppearTime: 首次出现时间
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FirstAppearTime: String
        # @param VulCategory: 漏洞类别 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulCategory: Integer
        # @param AttackLevel: 攻击热度级别
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type AttackLevel: Integer
        # @param FixNoNeedRestart: 漏洞修复后是否需要重启
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type FixNoNeedRestart: Boolean
        # @param Method: 检测方式0 - 版本比对, 1 - POC验证
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Method: Integer

        attr_accessor :Ids, :Name, :Status, :VulId, :PublishTime, :LastTime, :HostCount, :Level, :From, :Descript, :PublishTimeWisteria, :NameWisteria, :DescriptWisteria, :StatusStr, :CveId, :CvssScore, :Labels, :FixSwitch, :TaskId, :IsSupportDefense, :DefenseAttackCount, :FirstAppearTime, :VulCategory, :AttackLevel, :FixNoNeedRestart, :Method

        def initialize(ids=nil, name=nil, status=nil, vulid=nil, publishtime=nil, lasttime=nil, hostcount=nil, level=nil, from=nil, descript=nil, publishtimewisteria=nil, namewisteria=nil, descriptwisteria=nil, statusstr=nil, cveid=nil, cvssscore=nil, labels=nil, fixswitch=nil, taskid=nil, issupportdefense=nil, defenseattackcount=nil, firstappeartime=nil, vulcategory=nil, attacklevel=nil, fixnoneedrestart=nil, method=nil)
          @Ids = ids
          @Name = name
          @Status = status
          @VulId = vulid
          @PublishTime = publishtime
          @LastTime = lasttime
          @HostCount = hostcount
          @Level = level
          @From = from
          @Descript = descript
          @PublishTimeWisteria = publishtimewisteria
          @NameWisteria = namewisteria
          @DescriptWisteria = descriptwisteria
          @StatusStr = statusstr
          @CveId = cveid
          @CvssScore = cvssscore
          @Labels = labels
          @FixSwitch = fixswitch
          @TaskId = taskid
          @IsSupportDefense = issupportdefense
          @DefenseAttackCount = defenseattackcount
          @FirstAppearTime = firstappeartime
          @VulCategory = vulcategory
          @AttackLevel = attacklevel
          @FixNoNeedRestart = fixnoneedrestart
          @Method = method
        end

        def deserialize(params)
          @Ids = params['Ids']
          @Name = params['Name']
          @Status = params['Status']
          @VulId = params['VulId']
          @PublishTime = params['PublishTime']
          @LastTime = params['LastTime']
          @HostCount = params['HostCount']
          @Level = params['Level']
          @From = params['From']
          @Descript = params['Descript']
          @PublishTimeWisteria = params['PublishTimeWisteria']
          @NameWisteria = params['NameWisteria']
          @DescriptWisteria = params['DescriptWisteria']
          @StatusStr = params['StatusStr']
          @CveId = params['CveId']
          @CvssScore = params['CvssScore']
          @Labels = params['Labels']
          @FixSwitch = params['FixSwitch']
          @TaskId = params['TaskId']
          @IsSupportDefense = params['IsSupportDefense']
          @DefenseAttackCount = params['DefenseAttackCount']
          @FirstAppearTime = params['FirstAppearTime']
          @VulCategory = params['VulCategory']
          @AttackLevel = params['AttackLevel']
          @FixNoNeedRestart = params['FixNoNeedRestart']
          @Method = params['Method']
        end
      end

      # 漏洞等级数量实体
      class VulLevelCountInfo < TencentCloud::Common::AbstractModel
        # @param VulLevel: 漏洞等级
        # @type VulLevel: Integer
        # @param VulCount: 漏洞数量
        # @type VulCount: Integer

        attr_accessor :VulLevel, :VulCount

        def initialize(vullevel=nil, vulcount=nil)
          @VulLevel = vullevel
          @VulCount = vulcount
        end

        def deserialize(params)
          @VulLevel = params['VulLevel']
          @VulCount = params['VulCount']
        end
      end

      # 漏洞数量按等级分布统计结果实体
      class VulLevelInfo < TencentCloud::Common::AbstractModel
        # @param VulLevel: // 危害等级:1-低危;2-中危;3-高危;4-严重
        # @type VulLevel: Integer
        # @param Count: 数量
        # @type Count: Integer

        attr_accessor :VulLevel, :Count

        def initialize(vullevel=nil, count=nil)
          @VulLevel = vullevel
          @Count = count
        end

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

      # 漏洞概览
      class VulOverview < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总数
        # @type TotalCount: Integer
        # @param TodayCount: 今日新增数量
        # @type TodayCount: Integer

        attr_accessor :TotalCount, :TodayCount

        def initialize(totalcount=nil, todaycount=nil)
          @TotalCount = totalcount
          @TodayCount = todaycount
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          @TodayCount = params['TodayCount']
        end
      end

      # 漏洞仓库列表信息
      class VulStoreListInfo < TencentCloud::Common::AbstractModel
        # @param VulId: 漏洞ID
        # @type VulId: Integer
        # @param Level: 漏洞级别
        # @type Level: Integer
        # @param Name: 漏洞名称
        # @type Name: String
        # @param CveId: cve编号
        # @type CveId: String
        # @param VulCategory: 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 0= 应急漏洞
        # @type VulCategory: Integer
        # @param PublishDate: 发布时间
        # @type PublishDate: String
        # @param Method: 漏洞检测方法 0 - 版本比对, 1 - POC验证
        # @type Method: Integer
        # @param AttackLevel: 漏洞攻击热度
        # @type AttackLevel: Integer
        # @param FixSwitch: 漏洞是否支持自动修复
        # 0-windows/linux均关闭; 1-windows/linux均打开; 2-仅linux; 3-仅windows
        # @type FixSwitch: Integer
        # @param SupportDefense: 漏洞是否支持防御
        # 0:不支持 1:支持
        # @type SupportDefense: Integer

        attr_accessor :VulId, :Level, :Name, :CveId, :VulCategory, :PublishDate, :Method, :AttackLevel, :FixSwitch, :SupportDefense

        def initialize(vulid=nil, level=nil, name=nil, cveid=nil, vulcategory=nil, publishdate=nil, method=nil, attacklevel=nil, fixswitch=nil, supportdefense=nil)
          @VulId = vulid
          @Level = level
          @Name = name
          @CveId = cveid
          @VulCategory = vulcategory
          @PublishDate = publishdate
          @Method = method
          @AttackLevel = attacklevel
          @FixSwitch = fixswitch
          @SupportDefense = supportdefense
        end

        def deserialize(params)
          @VulId = params['VulId']
          @Level = params['Level']
          @Name = params['Name']
          @CveId = params['CveId']
          @VulCategory = params['VulCategory']
          @PublishDate = params['PublishDate']
          @Method = params['Method']
          @AttackLevel = params['AttackLevel']
          @FixSwitch = params['FixSwitch']
          @SupportDefense = params['SupportDefense']
        end
      end

      # 漏洞top统计实体
      class VulTopInfo < TencentCloud::Common::AbstractModel
        # @param VulName: 漏洞 名
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulName: String
        # @param VulLevel: 危害等级:1-低危;2-中危;3-高危;4-严重
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulLevel: Integer
        # @param VulCount: 漏洞数量
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulCount: Integer
        # @param VulId: 漏洞id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type VulId: Integer

        attr_accessor :VulName, :VulLevel, :VulCount, :VulId

        def initialize(vulname=nil, vullevel=nil, vulcount=nil, vulid=nil)
          @VulName = vulname
          @VulLevel = vullevel
          @VulCount = vulcount
          @VulId = vulid
        end

        def deserialize(params)
          @VulName = params['VulName']
          @VulLevel = params['VulLevel']
          @VulCount = params['VulCount']
          @VulId = params['VulId']
        end
      end

      # 告警设置列表
      class WarningInfoObj < TencentCloud::Common::AbstractModel
        # @param Type: 事件告警类型;1:离线,2:木马,3:异常登录,4:爆破,5:漏洞(已拆分为9-12四种类型)6:高危命令,7:反弹sell,8:本地提权,9:应用漏洞,10:web-cms漏洞,11:应急漏洞,12:安全基线 ,13: 防篡改,14:恶意请求,15: 网络攻击,16:Windows系统漏洞,17:Linux软件漏洞,18:核心文件监控告警,19:客户端卸载告警。20:客户端离线告警
        # @type Type: Integer
        # @param DisablePhoneWarning: 1: 关闭告警 0: 开启告警
        # @type DisablePhoneWarning: Integer
        # @param BeginTime: 开始时间,格式: HH:mm
        # @type BeginTime: String
        # @param EndTime: 结束时间,格式: HH:mm
        # @type EndTime: String
        # @param TimeZone: 时区信息
        # @type TimeZone: String
        # @param ControlBit: 漏洞等级控制位(对应DB的十进制存储)
        # @type ControlBit: Integer
        # @param ControlBits: 漏洞等级控制位二进制,每一位对应页面漏洞等级的开启关闭:低中高(0:关闭;1:开启),例如:101 → 同时勾选低+高
        # @type ControlBits: String
        # @param HostRange: 告警主机范围类型,0:全部主机,1:按所属项目选,2:按腾讯云标签选,3:按主机安全标签选,4:自选主机
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostRange: Integer
        # @param Count: 配置的告警范围主机个数,前端用此判断展示提示信息
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Count: Integer

        attr_accessor :Type, :DisablePhoneWarning, :BeginTime, :EndTime, :TimeZone, :ControlBit, :ControlBits, :HostRange, :Count

        def initialize(type=nil, disablephonewarning=nil, begintime=nil, endtime=nil, timezone=nil, controlbit=nil, controlbits=nil, hostrange=nil, count=nil)
          @Type = type
          @DisablePhoneWarning = disablephonewarning
          @BeginTime = begintime
          @EndTime = endtime
          @TimeZone = timezone
          @ControlBit = controlbit
          @ControlBits = controlbits
          @HostRange = hostrange
          @Count = count
        end

        def deserialize(params)
          @Type = params['Type']
          @DisablePhoneWarning = params['DisablePhoneWarning']
          @BeginTime = params['BeginTime']
          @EndTime = params['EndTime']
          @TimeZone = params['TimeZone']
          @ControlBit = params['ControlBit']
          @ControlBits = params['ControlBits']
          @HostRange = params['HostRange']
          @Count = params['Count']
        end
      end

      # 告警更新或插入的参数
      class WarningObject < TencentCloud::Common::AbstractModel
        # @param Type: 事件告警类型;1:离线,2:木马,3:异常登录,4:爆破,5:漏洞(已拆分为9-12四种类型)6:高位命令,7:反弹sell,8:本地提权,9:系统组件漏洞,10:web应用漏洞,11:应急漏洞,12:安全基线,14:恶意请求,15: 网络攻击,16:Windows系统漏洞,17:Linux软件漏洞
        # @type Type: Integer
        # @param DisablePhoneWarning: 1: 关闭告警 0: 开启告警
        # @type DisablePhoneWarning: Integer
        # @param BeginTime: 开始时间,格式: HH:mm
        # @type BeginTime: String
        # @param EndTime: 结束时间,格式: HH:mm
        # @type EndTime: String
        # @param ControlBits: 漏洞等级控制位二进制,每一位对应页面漏洞等级的开启关闭:低中高(0:关闭;1:开启),例如:101 → 同时勾选低+高;01→(登录审计)疑似不告警,高危告警
        # @type ControlBits: String
        # @param HostRange: 告警主机范围类型,0:全部主机,1:按所属项目选,2:按腾讯云标签选,3:按主机安全标签选,4:自选主机
        # @type HostRange: Integer

        attr_accessor :Type, :DisablePhoneWarning, :BeginTime, :EndTime, :ControlBits, :HostRange

        def initialize(type=nil, disablephonewarning=nil, begintime=nil, endtime=nil, controlbits=nil, hostrange=nil)
          @Type = type
          @DisablePhoneWarning = disablephonewarning
          @BeginTime = begintime
          @EndTime = endtime
          @ControlBits = controlbits
          @HostRange = hostrange
        end

        def deserialize(params)
          @Type = params['Type']
          @DisablePhoneWarning = params['DisablePhoneWarning']
          @BeginTime = params['BeginTime']
          @EndTime = params['EndTime']
          @ControlBits = params['ControlBits']
          @HostRange = params['HostRange']
        end
      end

      # 自定义透传字段结构
      class WebHookCustomField < TencentCloud::Common::AbstractModel
        # @param Key: key
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Key: String
        # @param Value: value
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Value: String

        attr_accessor :Key, :Value

        def initialize(key=nil, value=nil)
          @Key = key
          @Value = value
        end

        def deserialize(params)
          @Key = params['Key']
          @Value = params['Value']
        end
      end

      # 企微机器人事件类型
      class WebHookEventKv < TencentCloud::Common::AbstractModel
        # @param Type: 事件类型
        # @type Type: Integer
        # @param ControlBit: 事件内容
        # @type ControlBit: String

        attr_accessor :Type, :ControlBit

        def initialize(type=nil, controlbit=nil)
          @Type = type
          @ControlBit = controlbit
        end

        def deserialize(params)
          @Type = params['Type']
          @ControlBit = params['ControlBit']
        end
      end

      # 企微机器人主机范围
      class WebHookHostLabel < TencentCloud::Common::AbstractModel
        # @param Type: 主机范围[1:所属项目|2:腾讯云标签|3:主机安全标签|4:自选]空数组为全部
        # @type Type: Integer
        # @param Values: 主机项目或标签内容
        # @type Values: Array

        attr_accessor :Type, :Values

        def initialize(type=nil, values=nil)
          @Type = type
          @Values = values
        end

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

      # 策略
      class WebHookPolicy < TencentCloud::Common::AbstractModel
        # @param Id: id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Id: Integer
        # @param Name: 策略名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String
        # @param Events: 事件类型
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Events: Array
        # @param HostLabels: 主机范围
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostLabels: Array
        # @param Receivers: 接收人
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Receivers: Array
        # @param Format: 格式 0text 1json
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Format: Integer
        # @param CustomFields: 自定义透传字段
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type CustomFields: Array
        # @param IsDisabled: 是否启用[1:禁用|0:启用]
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type IsDisabled: Integer
        # @param Quuids: 主机列表
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Quuids: Array
        # @param HostCount: 主机数目
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type HostCount: Integer

        attr_accessor :Id, :Name, :Events, :HostLabels, :Receivers, :Format, :CustomFields, :IsDisabled, :Quuids, :HostCount

        def initialize(id=nil, name=nil, events=nil, hostlabels=nil, receivers=nil, format=nil, customfields=nil, isdisabled=nil, quuids=nil, hostcount=nil)
          @Id = id
          @Name = name
          @Events = events
          @HostLabels = hostlabels
          @Receivers = receivers
          @Format = format
          @CustomFields = customfields
          @IsDisabled = isdisabled
          @Quuids = quuids
          @HostCount = hostcount
        end

        def deserialize(params)
          @Id = params['Id']
          @Name = params['Name']
          unless params['Events'].nil?
            @Events = []
            params['Events'].each do |i|
              webhookeventkv_tmp = WebHookEventKv.new
              webhookeventkv_tmp.deserialize(i)
              @Events << webhookeventkv_tmp
            end
          end
          unless params['HostLabels'].nil?
            @HostLabels = []
            params['HostLabels'].each do |i|
              webhookhostlabel_tmp = WebHookHostLabel.new
              webhookhostlabel_tmp.deserialize(i)
              @HostLabels << webhookhostlabel_tmp
            end
          end
          unless params['Receivers'].nil?
            @Receivers = []
            params['Receivers'].each do |i|
              webhookreceiver_tmp = WebHookReceiver.new
              webhookreceiver_tmp.deserialize(i)
              @Receivers << webhookreceiver_tmp
            end
          end
          @Format = params['Format']
          unless params['CustomFields'].nil?
            @CustomFields = []
            params['CustomFields'].each do |i|
              webhookcustomfield_tmp = WebHookCustomField.new
              webhookcustomfield_tmp.deserialize(i)
              @CustomFields << webhookcustomfield_tmp
            end
          end
          @IsDisabled = params['IsDisabled']
          @Quuids = params['Quuids']
          @HostCount = params['HostCount']
        end
      end

      # 告警接收人
      class WebHookReceiver < TencentCloud::Common::AbstractModel
        # @param Id: id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Id: Integer
        # @param Name: 接收人名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Name: String
        # @param Addr: webhook地址
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type Addr: String

        attr_accessor :Id, :Name, :Addr

        def initialize(id=nil, name=nil, addr=nil)
          @Id = id
          @Name = name
          @Addr = addr
        end

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

      # 告警接收人的关联策略使用信息
      class WebHookReceiverUsage < TencentCloud::Common::AbstractModel
        # @param ReceiverId: 接收人id
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ReceiverId: Integer
        # @param ReceiverName: 接收人名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type ReceiverName: String
        # @param PolicyName: 策略名称
        # 注意:此字段可能返回 null,表示取不到有效值。
        # @type PolicyName: String

        attr_accessor :ReceiverId, :ReceiverName, :PolicyName

        def initialize(receiverid=nil, receivername=nil, policyname=nil)
          @ReceiverId = receiverid
          @ReceiverName = receivername
          @PolicyName = policyname
        end

        def deserialize(params)
          @ReceiverId = params['ReceiverId']
          @ReceiverName = params['ReceiverName']
          @PolicyName = params['PolicyName']
        end
      end

      # 企微机器人规则详情
      class WebHookRuleDetail < TencentCloud::Common::AbstractModel
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param HookAddr: 机器人地址
        # @type HookAddr: String
        # @param RuleItems: 事件类型
        # @type RuleItems: Array
        # @param RuleId: 规则Id
        # @type RuleId: Integer
        # @param RuleRemark: 备注信息
        # @type RuleRemark: String
        # @param HostLabels: 主机范围
        # @type HostLabels: Array
        # @param HostIds: 主机Id列表
        # @type HostIds: Array
        # @param IsDisabled: 是否启用[1:禁用|0:启用]
        # @type IsDisabled: Integer

        attr_accessor :RuleName, :HookAddr, :RuleItems, :RuleId, :RuleRemark, :HostLabels, :HostIds, :IsDisabled

        def initialize(rulename=nil, hookaddr=nil, ruleitems=nil, ruleid=nil, ruleremark=nil, hostlabels=nil, hostids=nil, isdisabled=nil)
          @RuleName = rulename
          @HookAddr = hookaddr
          @RuleItems = ruleitems
          @RuleId = ruleid
          @RuleRemark = ruleremark
          @HostLabels = hostlabels
          @HostIds = hostids
          @IsDisabled = isdisabled
        end

        def deserialize(params)
          @RuleName = params['RuleName']
          @HookAddr = params['HookAddr']
          unless params['RuleItems'].nil?
            @RuleItems = []
            params['RuleItems'].each do |i|
              webhookeventkv_tmp = WebHookEventKv.new
              webhookeventkv_tmp.deserialize(i)
              @RuleItems << webhookeventkv_tmp
            end
          end
          @RuleId = params['RuleId']
          @RuleRemark = params['RuleRemark']
          unless params['HostLabels'].nil?
            @HostLabels = []
            params['HostLabels'].each do |i|
              webhookhostlabel_tmp = WebHookHostLabel.new
              webhookhostlabel_tmp.deserialize(i)
              @HostLabels << webhookhostlabel_tmp
            end
          end
          @HostIds = params['HostIds']
          @IsDisabled = params['IsDisabled']
        end
      end

      # 企微机器人规则概要
      class WebHookRuleSummary < TencentCloud::Common::AbstractModel
        # @param RuleId: 规则Id
        # @type RuleId: Integer
        # @param RuleName: 规则名称
        # @type RuleName: String
        # @param HookAddr: 机器人地址
        # @type HookAddr: String
        # @param RuleRemark: 备注信息
        # @type RuleRemark: String
        # @param RuleItems: 事件类型
        # @type RuleItems: Array
        # @param HostLabels: 主机范围
        # @type HostLabels: Array
        # @param IsDisabled: 是否启用[1:禁用|0:启用]
        # @type IsDisabled: Integer
        # @param CreateTime: 创建时间
        # @type CreateTime: String
        # @param UpdateTime: 更新时间
        # @type UpdateTime: String
        # @param HostCount: 主机数目
        # @type HostCount: Integer

        attr_accessor :RuleId, :RuleName, :HookAddr, :RuleRemark, :RuleItems, :HostLabels, :IsDisabled, :CreateTime, :UpdateTime, :HostCount

        def initialize(ruleid=nil, rulename=nil, hookaddr=nil, ruleremark=nil, ruleitems=nil, hostlabels=nil, isdisabled=nil, createtime=nil, updatetime=nil, hostcount=nil)
          @RuleId = ruleid
          @RuleName = rulename
          @HookAddr = hookaddr
          @RuleRemark = ruleremark
          @RuleItems = ruleitems
          @HostLabels = hostlabels
          @IsDisabled = isdisabled
          @CreateTime = createtime
          @UpdateTime = updatetime
          @HostCount = hostcount
        end

        def deserialize(params)
          @RuleId = params['RuleId']
          @RuleName = params['RuleName']
          @HookAddr = params['HookAddr']
          @RuleRemark = params['RuleRemark']
          unless params['RuleItems'].nil?
            @RuleItems = []
            params['RuleItems'].each do |i|
              webhookeventkv_tmp = WebHookEventKv.new
              webhookeventkv_tmp.deserialize(i)
              @RuleItems << webhookeventkv_tmp
            end
          end
          unless params['HostLabels'].nil?
            @HostLabels = []
            params['HostLabels'].each do |i|
              webhookhostlabel_tmp = WebHookHostLabel.new
              webhookhostlabel_tmp.deserialize(i)
              @HostLabels << webhookhostlabel_tmp
            end
          end
          @IsDisabled = params['IsDisabled']
          @CreateTime = params['CreateTime']
          @UpdateTime = params['UpdateTime']
          @HostCount = params['HostCount']
        end
      end

      # 可用区信息
      class ZoneInfo < TencentCloud::Common::AbstractModel
        # @param ZoneName: 可用区名称
        # @type ZoneName: String

        attr_accessor :ZoneName

        def initialize(zonename=nil)
          @ZoneName = zonename
        end

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

    end
  end
end