# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import warnings

from tencentcloud.common.abstract_model import AbstractModel


class ABTestConfig(AbstractModel):
    """灰度项目配置

    """

    def __init__(self):
        r"""
        :param _ProjectName: 灰度项目名称
        :type ProjectName: str
        :param _Status: true：正在灰度，false：不在灰度
        :type Status: bool
        """
        self._ProjectName = None
        self._Status = None

    @property
    def ProjectName(self):
        return self._ProjectName

    @ProjectName.setter
    def ProjectName(self, ProjectName):
        self._ProjectName = ProjectName

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._ProjectName = params.get("ProjectName")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AccountStatistics(AbstractModel):
    """帐号统计数据。

    """

    def __init__(self):
        r"""
        :param _Username: 用户名。
        :type Username: str
        :param _MachineNum: 主机数量。
        :type MachineNum: int
        """
        self._Username = None
        self._MachineNum = None

    @property
    def Username(self):
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def MachineNum(self):
        return self._MachineNum

    @MachineNum.setter
    def MachineNum(self, MachineNum):
        self._MachineNum = MachineNum


    def _deserialize(self, params):
        self._Username = params.get("Username")
        self._MachineNum = params.get("MachineNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddLoginWhiteListsRequest(AbstractModel):
    """AddLoginWhiteLists请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HostLoginWhiteObj: 异地登录白名单实体
        :type HostLoginWhiteObj: :class:`tencentcloud.cwp.v20180228.models.HostLoginWhiteObj`
        :param _ProcessType: 事件同步处理方式：
  "" -- 不操作
  "All" -- 将符合此配置的所有事件记录加白
  "Id" -- 将EventId对应的事件记录加白
        :type ProcessType: str
        :param _EventId: 异地登录事件ID，当ProcessType为Id时此项必填
        :type EventId: int
        """
        self._HostLoginWhiteObj = None
        self._ProcessType = None
        self._EventId = None

    @property
    def HostLoginWhiteObj(self):
        return self._HostLoginWhiteObj

    @HostLoginWhiteObj.setter
    def HostLoginWhiteObj(self, HostLoginWhiteObj):
        self._HostLoginWhiteObj = HostLoginWhiteObj

    @property
    def ProcessType(self):
        return self._ProcessType

    @ProcessType.setter
    def ProcessType(self, ProcessType):
        self._ProcessType = ProcessType

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId


    def _deserialize(self, params):
        if params.get("HostLoginWhiteObj") is not None:
            self._HostLoginWhiteObj = HostLoginWhiteObj()
            self._HostLoginWhiteObj._deserialize(params.get("HostLoginWhiteObj"))
        self._ProcessType = params.get("ProcessType")
        self._EventId = params.get("EventId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddLoginWhiteListsResponse(AbstractModel):
    """AddLoginWhiteLists返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DuplicateHosts: 重复添加的提示列表
注意：此字段可能返回 null，表示取不到有效值。
        :type DuplicateHosts: list of DuplicateHosts
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DuplicateHosts = None
        self._RequestId = None

    @property
    def DuplicateHosts(self):
        return self._DuplicateHosts

    @DuplicateHosts.setter
    def DuplicateHosts(self, DuplicateHosts):
        self._DuplicateHosts = DuplicateHosts

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("DuplicateHosts") is not None:
            self._DuplicateHosts = []
            for item in params.get("DuplicateHosts"):
                obj = DuplicateHosts()
                obj._deserialize(item)
                self._DuplicateHosts.append(obj)
        self._RequestId = params.get("RequestId")


class AlarmInfo(AbstractModel):
    """节点关联的告警信息

    """

    def __init__(self):
        r"""
        :param _AlarmId: 该节点关联的告警，告警的table_name+id（t1:id1,t2:id2,...)
        :type AlarmId: str
        :param _Status: 告警事件表状态，当该节点为告警点时生效
        :type Status: int
        """
        self._AlarmId = None
        self._Status = None

    @property
    def AlarmId(self):
        return self._AlarmId

    @AlarmId.setter
    def AlarmId(self, AlarmId):
        self._AlarmId = AlarmId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._AlarmId = params.get("AlarmId")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetAppBaseInfo(AbstractModel):
    """资源管理进程基本信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _Tag: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _Name: 应用名称
        :type Name: str
        :param _Type: 应用类型	
1: 运维
2 : 数据库
3 : 安全
4 : 可疑应用
5 : 系统架构
6 : 系统应用
7 : WEB服务
99: 其他
        :type Type: int
        :param _BinPath: 二进制路径
        :type BinPath: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _ProcessCount: 关联进程数
        :type ProcessCount: int
        :param _Desc: 应用描述
        :type Desc: str
        :param _Version: 版本号
        :type Version: str
        :param _ConfigPath: 配置文件路径
        :type ConfigPath: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _IsNew: 是否新增[0:否|1:是]
注意：此字段可能返回 null，表示取不到有效值。
        :type IsNew: int
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineIp = None
        self._MachineName = None
        self._MachineWanIp = None
        self._Uuid = None
        self._Quuid = None
        self._ProjectId = None
        self._Tag = None
        self._Name = None
        self._Type = None
        self._BinPath = None
        self._OsInfo = None
        self._ProcessCount = None
        self._Desc = None
        self._Version = None
        self._ConfigPath = None
        self._FirstTime = None
        self._UpdateTime = None
        self._IsNew = None
        self._MachineExtraInfo = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def BinPath(self):
        return self._BinPath

    @BinPath.setter
    def BinPath(self, BinPath):
        self._BinPath = BinPath

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def ProcessCount(self):
        return self._ProcessCount

    @ProcessCount.setter
    def ProcessCount(self, ProcessCount):
        self._ProcessCount = ProcessCount

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def ConfigPath(self):
        return self._ConfigPath

    @ConfigPath.setter
    def ConfigPath(self, ConfigPath):
        self._ConfigPath = ConfigPath

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Name = params.get("Name")
        self._Type = params.get("Type")
        self._BinPath = params.get("BinPath")
        self._OsInfo = params.get("OsInfo")
        self._ProcessCount = params.get("ProcessCount")
        self._Desc = params.get("Desc")
        self._Version = params.get("Version")
        self._ConfigPath = params.get("ConfigPath")
        self._FirstTime = params.get("FirstTime")
        self._UpdateTime = params.get("UpdateTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetAppProcessInfo(AbstractModel):
    """软件应用关联进程信息

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Status: 进程状态
        :type Status: str
        :param _Version: 进程版本
        :type Version: str
        :param _Path: 路径
        :type Path: str
        :param _User: 用户
        :type User: str
        :param _StartTime: 启动时间
        :type StartTime: str
        """
        self._Name = None
        self._Status = None
        self._Version = None
        self._Path = None
        self._User = None
        self._StartTime = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Status = params.get("Status")
        self._Version = params.get("Version")
        self._Path = params.get("Path")
        self._User = params.get("User")
        self._StartTime = params.get("StartTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetCoreModuleBaseInfo(AbstractModel):
    """资产管理内核模块列表

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Desc: 描述
        :type Desc: str
        :param _Path: 路径
        :type Path: str
        :param _Version: 版本
        :type Version: str
        :param _MachineIp: 服务器IP
        :type MachineIp: str
        :param _MachineName: 服务器名称
        :type MachineName: str
        :param _OsInfo: 操作系统
        :type OsInfo: str
        :param _Size: 模块大小
        :type Size: int
        :param _ProcessCount: 依赖进程数
        :type ProcessCount: int
        :param _ModuleCount: 依赖模块数
        :type ModuleCount: int
        :param _Id: 模块ID
        :type Id: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Name = None
        self._Desc = None
        self._Path = None
        self._Version = None
        self._MachineIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Size = None
        self._ProcessCount = None
        self._ModuleCount = None
        self._Id = None
        self._Quuid = None
        self._Uuid = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineWanIp = None
        self._MachineExtraInfo = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Size(self):
        return self._Size

    @Size.setter
    def Size(self, Size):
        self._Size = Size

    @property
    def ProcessCount(self):
        return self._ProcessCount

    @ProcessCount.setter
    def ProcessCount(self, ProcessCount):
        self._ProcessCount = ProcessCount

    @property
    def ModuleCount(self):
        return self._ModuleCount

    @ModuleCount.setter
    def ModuleCount(self, ModuleCount):
        self._ModuleCount = ModuleCount

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Desc = params.get("Desc")
        self._Path = params.get("Path")
        self._Version = params.get("Version")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Size = params.get("Size")
        self._ProcessCount = params.get("ProcessCount")
        self._ModuleCount = params.get("ModuleCount")
        self._Id = params.get("Id")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetCoreModuleDetail(AbstractModel):
    """资产管理内核模块详情

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Desc: 描述
        :type Desc: str
        :param _Path: 路径
        :type Path: str
        :param _Version: 版本
        :type Version: str
        :param _Size: 大小
        :type Size: int
        :param _Processes: 依赖进程
        :type Processes: str
        :param _Modules: 被依赖模块
        :type Modules: str
        :param _Params: 参数信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Params: list of AssetCoreModuleParam
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        """
        self._Name = None
        self._Desc = None
        self._Path = None
        self._Version = None
        self._Size = None
        self._Processes = None
        self._Modules = None
        self._Params = None
        self._UpdateTime = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Size(self):
        return self._Size

    @Size.setter
    def Size(self, Size):
        self._Size = Size

    @property
    def Processes(self):
        return self._Processes

    @Processes.setter
    def Processes(self, Processes):
        self._Processes = Processes

    @property
    def Modules(self):
        return self._Modules

    @Modules.setter
    def Modules(self, Modules):
        self._Modules = Modules

    @property
    def Params(self):
        return self._Params

    @Params.setter
    def Params(self, Params):
        self._Params = Params

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Desc = params.get("Desc")
        self._Path = params.get("Path")
        self._Version = params.get("Version")
        self._Size = params.get("Size")
        self._Processes = params.get("Processes")
        self._Modules = params.get("Modules")
        if params.get("Params") is not None:
            self._Params = []
            for item in params.get("Params"):
                obj = AssetCoreModuleParam()
                obj._deserialize(item)
                self._Params.append(obj)
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetCoreModuleParam(AbstractModel):
    """资产管理内核模块参数

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Data: 数据
        :type Data: str
        """
        self._Name = None
        self._Data = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Data = params.get("Data")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetDatabaseBaseInfo(AbstractModel):
    """资源管理数据库列表信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _Tag: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _Name: 数据库名
        :type Name: str
        :param _Version: 版本
        :type Version: str
        :param _Port: 监听端口
        :type Port: str
        :param _Proto: 协议
        :type Proto: str
        :param _User: 运行用户
        :type User: str
        :param _Ip: 绑定IP
        :type Ip: str
        :param _ConfigPath: 配置文件路径
        :type ConfigPath: str
        :param _LogPath: 日志文件路径
        :type LogPath: str
        :param _DataPath: 数据路径
        :type DataPath: str
        :param _Permission: 运行权限
        :type Permission: str
        :param _ErrorLogPath: 错误日志路径
        :type ErrorLogPath: str
        :param _PlugInPath: 插件路径
        :type PlugInPath: str
        :param _BinPath: 二进制路径
        :type BinPath: str
        :param _Param: 启动参数
        :type Param: str
        :param _Id: 数据库ID
        :type Id: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _MachineExtraInfo:  附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineIp = None
        self._MachineWanIp = None
        self._Quuid = None
        self._Uuid = None
        self._OsInfo = None
        self._ProjectId = None
        self._Tag = None
        self._Name = None
        self._Version = None
        self._Port = None
        self._Proto = None
        self._User = None
        self._Ip = None
        self._ConfigPath = None
        self._LogPath = None
        self._DataPath = None
        self._Permission = None
        self._ErrorLogPath = None
        self._PlugInPath = None
        self._BinPath = None
        self._Param = None
        self._Id = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineName = None
        self._MachineExtraInfo = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def Proto(self):
        return self._Proto

    @Proto.setter
    def Proto(self, Proto):
        self._Proto = Proto

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def ConfigPath(self):
        return self._ConfigPath

    @ConfigPath.setter
    def ConfigPath(self, ConfigPath):
        self._ConfigPath = ConfigPath

    @property
    def LogPath(self):
        return self._LogPath

    @LogPath.setter
    def LogPath(self, LogPath):
        self._LogPath = LogPath

    @property
    def DataPath(self):
        return self._DataPath

    @DataPath.setter
    def DataPath(self, DataPath):
        self._DataPath = DataPath

    @property
    def Permission(self):
        return self._Permission

    @Permission.setter
    def Permission(self, Permission):
        self._Permission = Permission

    @property
    def ErrorLogPath(self):
        return self._ErrorLogPath

    @ErrorLogPath.setter
    def ErrorLogPath(self, ErrorLogPath):
        self._ErrorLogPath = ErrorLogPath

    @property
    def PlugInPath(self):
        return self._PlugInPath

    @PlugInPath.setter
    def PlugInPath(self, PlugInPath):
        self._PlugInPath = PlugInPath

    @property
    def BinPath(self):
        return self._BinPath

    @BinPath.setter
    def BinPath(self, BinPath):
        self._BinPath = BinPath

    @property
    def Param(self):
        return self._Param

    @Param.setter
    def Param(self, Param):
        self._Param = Param

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._OsInfo = params.get("OsInfo")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Name = params.get("Name")
        self._Version = params.get("Version")
        self._Port = params.get("Port")
        self._Proto = params.get("Proto")
        self._User = params.get("User")
        self._Ip = params.get("Ip")
        self._ConfigPath = params.get("ConfigPath")
        self._LogPath = params.get("LogPath")
        self._DataPath = params.get("DataPath")
        self._Permission = params.get("Permission")
        self._ErrorLogPath = params.get("ErrorLogPath")
        self._PlugInPath = params.get("PlugInPath")
        self._BinPath = params.get("BinPath")
        self._Param = params.get("Param")
        self._Id = params.get("Id")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        self._MachineName = params.get("MachineName")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetDatabaseDetail(AbstractModel):
    """资源管理数据库列表信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _Name: 数据库名
        :type Name: str
        :param _Version: 版本
        :type Version: str
        :param _Port: 监听端口
        :type Port: str
        :param _Proto: 协议
        :type Proto: str
        :param _User: 运行用户
        :type User: str
        :param _Ip: 绑定IP
        :type Ip: str
        :param _ConfigPath: 配置文件路径
        :type ConfigPath: str
        :param _LogPath: 日志文件路径
        :type LogPath: str
        :param _DataPath: 数据路径
        :type DataPath: str
        :param _Permission: 运行权限
        :type Permission: str
        :param _ErrorLogPath: 错误日志路径
        :type ErrorLogPath: str
        :param _PlugInPath: 插件路径
        :type PlugInPath: str
        :param _BinPath: 二进制路径
        :type BinPath: str
        :param _Param: 启动参数
        :type Param: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        """
        self._MachineIp = None
        self._MachineWanIp = None
        self._Quuid = None
        self._Uuid = None
        self._OsInfo = None
        self._Name = None
        self._Version = None
        self._Port = None
        self._Proto = None
        self._User = None
        self._Ip = None
        self._ConfigPath = None
        self._LogPath = None
        self._DataPath = None
        self._Permission = None
        self._ErrorLogPath = None
        self._PlugInPath = None
        self._BinPath = None
        self._Param = None
        self._UpdateTime = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def Proto(self):
        return self._Proto

    @Proto.setter
    def Proto(self, Proto):
        self._Proto = Proto

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def ConfigPath(self):
        return self._ConfigPath

    @ConfigPath.setter
    def ConfigPath(self, ConfigPath):
        self._ConfigPath = ConfigPath

    @property
    def LogPath(self):
        return self._LogPath

    @LogPath.setter
    def LogPath(self, LogPath):
        self._LogPath = LogPath

    @property
    def DataPath(self):
        return self._DataPath

    @DataPath.setter
    def DataPath(self, DataPath):
        self._DataPath = DataPath

    @property
    def Permission(self):
        return self._Permission

    @Permission.setter
    def Permission(self, Permission):
        self._Permission = Permission

    @property
    def ErrorLogPath(self):
        return self._ErrorLogPath

    @ErrorLogPath.setter
    def ErrorLogPath(self, ErrorLogPath):
        self._ErrorLogPath = ErrorLogPath

    @property
    def PlugInPath(self):
        return self._PlugInPath

    @PlugInPath.setter
    def PlugInPath(self, PlugInPath):
        self._PlugInPath = PlugInPath

    @property
    def BinPath(self):
        return self._BinPath

    @BinPath.setter
    def BinPath(self, BinPath):
        self._BinPath = BinPath

    @property
    def Param(self):
        return self._Param

    @Param.setter
    def Param(self, Param):
        self._Param = Param

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._OsInfo = params.get("OsInfo")
        self._Name = params.get("Name")
        self._Version = params.get("Version")
        self._Port = params.get("Port")
        self._Proto = params.get("Proto")
        self._User = params.get("User")
        self._Ip = params.get("Ip")
        self._ConfigPath = params.get("ConfigPath")
        self._LogPath = params.get("LogPath")
        self._DataPath = params.get("DataPath")
        self._Permission = params.get("Permission")
        self._ErrorLogPath = params.get("ErrorLogPath")
        self._PlugInPath = params.get("PlugInPath")
        self._BinPath = params.get("BinPath")
        self._Param = params.get("Param")
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetDiskPartitionInfo(AbstractModel):
    """资产管理磁盘分区信息

    """

    def __init__(self):
        r"""
        :param _Name: 分区名
        :type Name: str
        :param _Size: 分区大小：单位G
        :type Size: int
        :param _Percent: 分区使用率
        :type Percent: float
        :param _Type: 文件系统类型
        :type Type: str
        :param _Path: 挂载目录
        :type Path: str
        :param _Used: 已使用空间：单位G
        :type Used: int
        """
        self._Name = None
        self._Size = None
        self._Percent = None
        self._Type = None
        self._Path = None
        self._Used = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Size(self):
        return self._Size

    @Size.setter
    def Size(self, Size):
        self._Size = Size

    @property
    def Percent(self):
        return self._Percent

    @Percent.setter
    def Percent(self, Percent):
        self._Percent = Percent

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def Used(self):
        return self._Used

    @Used.setter
    def Used(self, Used):
        self._Used = Used


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Size = params.get("Size")
        self._Percent = params.get("Percent")
        self._Type = params.get("Type")
        self._Path = params.get("Path")
        self._Used = params.get("Used")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetEnvBaseInfo(AbstractModel):
    """资产管理环境变量列表

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Type: 类型：
0:用户变量
1:系统变量
        :type Type: int
        :param _User: 启动用户
        :type User: str
        :param _Value: 环境变量值
        :type Value: str
        :param _MachineIp: 服务器IP
        :type MachineIp: str
        :param _MachineName: 服务器名称
        :type MachineName: str
        :param _OsInfo: 操作系统
        :type OsInfo: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息

注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Name = None
        self._Type = None
        self._User = None
        self._Value = None
        self._MachineIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Quuid = None
        self._Uuid = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineWanIp = None
        self._MachineExtraInfo = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Type = params.get("Type")
        self._User = params.get("User")
        self._Value = params.get("Value")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetFilters(AbstractModel):
    """容器安全
    描述键值对过滤器，用于条件过滤查询。例如过滤ID、名称、状态等
    若存在多个Filter时，Filter间的关系为逻辑与（AND）关系。
    若同一个Filter存在多个Values，同一Filter下Values间的关系为逻辑或（OR）关系。

    """

    def __init__(self):
        r"""
        :param _Name: 过滤键的名称。
        :type Name: str
        :param _Values: 一个或者多个过滤值。
        :type Values: list of str
        :param _ExactMatch: 是否模糊查询
        :type ExactMatch: bool
        """
        self._Name = None
        self._Values = None
        self._ExactMatch = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Values(self):
        return self._Values

    @Values.setter
    def Values(self, Values):
        self._Values = Values

    @property
    def ExactMatch(self):
        return self._ExactMatch

    @ExactMatch.setter
    def ExactMatch(self, ExactMatch):
        self._ExactMatch = ExactMatch


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Values = params.get("Values")
        self._ExactMatch = params.get("ExactMatch")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetInitServiceBaseInfo(AbstractModel):
    """资产管理启动服务列表

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Type: 类型：
1:编码器
2:IE插件
3:网络提供者
4:镜像劫持
5:LSA提供者
6:KnownDLLs
7:启动执行
8:WMI
9:计划任务
10:Winsock提供者
11:打印监控器
12:资源管理器
13:驱动服务
14:登录
        :type Type: int
        :param _Status: 默认启用状态：0未启用，1启用
        :type Status: int
        :param _User: 启动用户
        :type User: str
        :param _Path: 路径
        :type Path: str
        :param _MachineIp: 服务器IP
        :type MachineIp: str
        :param _MachineName: 服务器名称
        :type MachineName: str
        :param _OsInfo: 操作系统
        :type OsInfo: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _UpdateTime: 数据更新时间
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息

注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _IsAutoRun: 开机自启动[0:否|1:是]
        :type IsAutoRun: int
        """
        self._Name = None
        self._Type = None
        self._Status = None
        self._User = None
        self._Path = None
        self._MachineIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Quuid = None
        self._Uuid = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineWanIp = None
        self._MachineExtraInfo = None
        self._IsAutoRun = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def IsAutoRun(self):
        return self._IsAutoRun

    @IsAutoRun.setter
    def IsAutoRun(self, IsAutoRun):
        self._IsAutoRun = IsAutoRun


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Type = params.get("Type")
        self._Status = params.get("Status")
        self._User = params.get("User")
        self._Path = params.get("Path")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._IsAutoRun = params.get("IsAutoRun")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetJarBaseInfo(AbstractModel):
    """资产管理jar包列表

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Type: 类型：1应用程序，2系统类库，3Web服务自带库，8:其他，
        :type Type: int
        :param _Status: 是否可执行：0未知，1是，2否
        :type Status: int
        :param _Version: 版本
        :type Version: str
        :param _Path: 路径
        :type Path: str
        :param _MachineIp: 服务器IP
        :type MachineIp: str
        :param _MachineName: 服务器名称
        :type MachineName: str
        :param _OsInfo: 操作系统
        :type OsInfo: str
        :param _Id: Jar包ID
        :type Id: str
        :param _Md5: Jar包Md5
        :type Md5: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息

注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Name = None
        self._Type = None
        self._Status = None
        self._Version = None
        self._Path = None
        self._MachineIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Id = None
        self._Md5 = None
        self._Quuid = None
        self._Uuid = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineWanIp = None
        self._MachineExtraInfo = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Md5(self):
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Type = params.get("Type")
        self._Status = params.get("Status")
        self._Version = params.get("Version")
        self._Path = params.get("Path")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Id = params.get("Id")
        self._Md5 = params.get("Md5")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetJarDetail(AbstractModel):
    """资产管理jar包详情

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Type: 类型：1应用程序，2系统类库，3Web服务自带库，8:其他，
        :type Type: int
        :param _Status: 是否可执行：0未知，1是，2否
        :type Status: int
        :param _Version: 版本
        :type Version: str
        :param _Path: 路径
        :type Path: str
        :param _MachineIp: 服务器IP
        :type MachineIp: str
        :param _MachineName: 服务器名称
        :type MachineName: str
        :param _OsInfo: 操作系统
        :type OsInfo: str
        :param _Process: 引用进程列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Process: list of AssetAppProcessInfo
        :param _Md5: Jar包Md5
注意：此字段可能返回 null，表示取不到有效值。
        :type Md5: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        """
        self._Name = None
        self._Type = None
        self._Status = None
        self._Version = None
        self._Path = None
        self._MachineIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Process = None
        self._Md5 = None
        self._UpdateTime = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Process(self):
        return self._Process

    @Process.setter
    def Process(self, Process):
        self._Process = Process

    @property
    def Md5(self):
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Type = params.get("Type")
        self._Status = params.get("Status")
        self._Version = params.get("Version")
        self._Path = params.get("Path")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        if params.get("Process") is not None:
            self._Process = []
            for item in params.get("Process"):
                obj = AssetAppProcessInfo()
                obj._deserialize(item)
                self._Process.append(obj)
        self._Md5 = params.get("Md5")
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetKeyVal(AbstractModel):
    """key-val类型的通用数据结构

    """

    def __init__(self):
        r"""
        :param _Key: 标签
        :type Key: str
        :param _Value: 数量
        :type Value: int
        :param _Desc: 描述信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Desc: str
        :param _NewCount: 今日新增数量
注意：此字段可能返回 null，表示取不到有效值。
        :type NewCount: int
        """
        self._Key = None
        self._Value = None
        self._Desc = None
        self._NewCount = None

    @property
    def Key(self):
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def NewCount(self):
        return self._NewCount

    @NewCount.setter
    def NewCount(self, NewCount):
        self._NewCount = NewCount


    def _deserialize(self, params):
        self._Key = params.get("Key")
        self._Value = params.get("Value")
        self._Desc = params.get("Desc")
        self._NewCount = params.get("NewCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetLoadDetail(AbstractModel):
    """资产管理负载信息

    """

    def __init__(self):
        r"""
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _Desc: 描述
        :type Desc: str
        :param _Value: 负载
        :type Value: float
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        """
        self._MachineName = None
        self._Desc = None
        self._Value = None
        self._Quuid = None
        self._Uuid = None

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._MachineName = params.get("MachineName")
        self._Desc = params.get("Desc")
        self._Value = params.get("Value")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetLoadSummary(AbstractModel):
    """资源负载概况

    """

    def __init__(self):
        r"""
        :param _Counts: 负载量数组，依次为：
[
0%或未知数量，
0%～20%，
20%～50%，
50%～80%，
80%～100%
]
        :type Counts: list of int non-negative
        :param _Top5: 负载Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type Top5: list of AssetLoadDetail
        """
        self._Counts = None
        self._Top5 = None

    @property
    def Counts(self):
        return self._Counts

    @Counts.setter
    def Counts(self, Counts):
        self._Counts = Counts

    @property
    def Top5(self):
        return self._Top5

    @Top5.setter
    def Top5(self, Top5):
        self._Top5 = Top5


    def _deserialize(self, params):
        self._Counts = params.get("Counts")
        if params.get("Top5") is not None:
            self._Top5 = []
            for item in params.get("Top5"):
                obj = AssetLoadDetail()
                obj._deserialize(item)
                self._Top5.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetMachineBaseInfo(AbstractModel):
    """资产指纹中服务器列表的基本信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器uuid
        :type Uuid: str
        :param _MachineIp: 服务器内网IP
        :type MachineIp: str
        :param _MachineName: 服务器名称
        :type MachineName: str
        :param _OsInfo: 操作系统名称
        :type OsInfo: str
        :param _Cpu: CPU信息
        :type Cpu: str
        :param _MemSize: 内存容量：单位G
        :type MemSize: int
        :param _MemLoad: 内存使用率百分比
        :type MemLoad: str
        :param _DiskSize: 硬盘容量：单位G
        :type DiskSize: int
        :param _DiskLoad: 硬盘使用率百分比
        :type DiskLoad: str
        :param _PartitionCount: 分区数
        :type PartitionCount: int
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _ProjectId: 业务组ID
        :type ProjectId: int
        :param _CpuSize: Cpu数量
        :type CpuSize: int
        :param _CpuLoad: Cpu使用率百分比
        :type CpuLoad: str
        :param _Tag: 标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Quuid = None
        self._Uuid = None
        self._MachineIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Cpu = None
        self._MemSize = None
        self._MemLoad = None
        self._DiskSize = None
        self._DiskLoad = None
        self._PartitionCount = None
        self._MachineWanIp = None
        self._ProjectId = None
        self._CpuSize = None
        self._CpuLoad = None
        self._Tag = None
        self._UpdateTime = None
        self._IsNew = None
        self._FirstTime = None
        self._MachineExtraInfo = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Cpu(self):
        return self._Cpu

    @Cpu.setter
    def Cpu(self, Cpu):
        self._Cpu = Cpu

    @property
    def MemSize(self):
        return self._MemSize

    @MemSize.setter
    def MemSize(self, MemSize):
        self._MemSize = MemSize

    @property
    def MemLoad(self):
        return self._MemLoad

    @MemLoad.setter
    def MemLoad(self, MemLoad):
        self._MemLoad = MemLoad

    @property
    def DiskSize(self):
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize

    @property
    def DiskLoad(self):
        return self._DiskLoad

    @DiskLoad.setter
    def DiskLoad(self, DiskLoad):
        self._DiskLoad = DiskLoad

    @property
    def PartitionCount(self):
        return self._PartitionCount

    @PartitionCount.setter
    def PartitionCount(self, PartitionCount):
        self._PartitionCount = PartitionCount

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def CpuSize(self):
        return self._CpuSize

    @CpuSize.setter
    def CpuSize(self, CpuSize):
        self._CpuSize = CpuSize

    @property
    def CpuLoad(self):
        return self._CpuLoad

    @CpuLoad.setter
    def CpuLoad(self, CpuLoad):
        self._CpuLoad = CpuLoad

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Cpu = params.get("Cpu")
        self._MemSize = params.get("MemSize")
        self._MemLoad = params.get("MemLoad")
        self._DiskSize = params.get("DiskSize")
        self._DiskLoad = params.get("DiskLoad")
        self._PartitionCount = params.get("PartitionCount")
        self._MachineWanIp = params.get("MachineWanIp")
        self._ProjectId = params.get("ProjectId")
        self._CpuSize = params.get("CpuSize")
        self._CpuLoad = params.get("CpuLoad")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._UpdateTime = params.get("UpdateTime")
        self._IsNew = params.get("IsNew")
        self._FirstTime = params.get("FirstTime")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetMachineDetail(AbstractModel):
    """资产指纹中服务器列表的基本信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器uuid
        :type Uuid: str
        :param _MachineIp: 服务器内网IP
        :type MachineIp: str
        :param _MachineName: 服务器名称
        :type MachineName: str
        :param _OsInfo: 操作系统名称
        :type OsInfo: str
        :param _Cpu: CPU信息
        :type Cpu: str
        :param _MemSize: 内存容量：单位G
        :type MemSize: int
        :param _MemLoad: 内存使用率百分比
        :type MemLoad: str
        :param _DiskSize: 硬盘容量：单位G
        :type DiskSize: int
        :param _DiskLoad: 硬盘使用率百分比
        :type DiskLoad: str
        :param _PartitionCount: 分区数
        :type PartitionCount: int
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _CpuSize: Cpu数量
        :type CpuSize: int
        :param _CpuLoad: Cpu负载
        :type CpuLoad: str
        :param _ProtectLevel: 防护级别：0基础版，1专业版，2旗舰版，3普惠版
        :type ProtectLevel: int
        :param _RiskStatus: 风险状态：UNKNOW-未知，RISK-风险，SAFT-安全
        :type RiskStatus: str
        :param _ProtectDays: 已防护天数
        :type ProtectDays: int
        :param _BuyTime: 专业版开通时间
        :type BuyTime: str
        :param _EndTime: 专业版到期时间
        :type EndTime: str
        :param _CoreVersion: 内核版本
        :type CoreVersion: str
        :param _OsType: linux/windows
        :type OsType: str
        :param _AgentVersion: agent版本
        :type AgentVersion: str
        :param _InstallTime: 安装时间
        :type InstallTime: str
        :param _BootTime: 系统启动时间
        :type BootTime: str
        :param _LastLiveTime: 最后上线时间
        :type LastLiveTime: str
        :param _Producer: 生产商
        :type Producer: str
        :param _SerialNumber: 序列号
        :type SerialNumber: str
        :param _NetCards: 网卡
        :type NetCards: list of AssetNetworkCardInfo
        :param _Disks: 分区
        :type Disks: list of AssetDiskPartitionInfo
        :param _Status: 0在线，1已离线
        :type Status: int
        :param _ProjectId: 业务组ID
        :type ProjectId: int
        :param _DeviceVersion: 设备型号
        :type DeviceVersion: str
        :param _OfflineTime: 离线时间
注意：此字段可能返回 null，表示取不到有效值。
        :type OfflineTime: str
        :param _InstanceId: 主机ID
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceId: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _MachineExtraInfo: 主机二外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _CpuLoadVul: CpuLoadVul
注意：此字段可能返回 null，表示取不到有效值。
        :type CpuLoadVul: str
        :param _FirstTime: 时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FirstTime: str
        """
        self._Quuid = None
        self._Uuid = None
        self._MachineIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Cpu = None
        self._MemSize = None
        self._MemLoad = None
        self._DiskSize = None
        self._DiskLoad = None
        self._PartitionCount = None
        self._MachineWanIp = None
        self._CpuSize = None
        self._CpuLoad = None
        self._ProtectLevel = None
        self._RiskStatus = None
        self._ProtectDays = None
        self._BuyTime = None
        self._EndTime = None
        self._CoreVersion = None
        self._OsType = None
        self._AgentVersion = None
        self._InstallTime = None
        self._BootTime = None
        self._LastLiveTime = None
        self._Producer = None
        self._SerialNumber = None
        self._NetCards = None
        self._Disks = None
        self._Status = None
        self._ProjectId = None
        self._DeviceVersion = None
        self._OfflineTime = None
        self._InstanceId = None
        self._UpdateTime = None
        self._MachineExtraInfo = None
        self._CpuLoadVul = None
        self._FirstTime = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Cpu(self):
        return self._Cpu

    @Cpu.setter
    def Cpu(self, Cpu):
        self._Cpu = Cpu

    @property
    def MemSize(self):
        return self._MemSize

    @MemSize.setter
    def MemSize(self, MemSize):
        self._MemSize = MemSize

    @property
    def MemLoad(self):
        return self._MemLoad

    @MemLoad.setter
    def MemLoad(self, MemLoad):
        self._MemLoad = MemLoad

    @property
    def DiskSize(self):
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize

    @property
    def DiskLoad(self):
        return self._DiskLoad

    @DiskLoad.setter
    def DiskLoad(self, DiskLoad):
        self._DiskLoad = DiskLoad

    @property
    def PartitionCount(self):
        return self._PartitionCount

    @PartitionCount.setter
    def PartitionCount(self, PartitionCount):
        self._PartitionCount = PartitionCount

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def CpuSize(self):
        return self._CpuSize

    @CpuSize.setter
    def CpuSize(self, CpuSize):
        self._CpuSize = CpuSize

    @property
    def CpuLoad(self):
        return self._CpuLoad

    @CpuLoad.setter
    def CpuLoad(self, CpuLoad):
        self._CpuLoad = CpuLoad

    @property
    def ProtectLevel(self):
        return self._ProtectLevel

    @ProtectLevel.setter
    def ProtectLevel(self, ProtectLevel):
        self._ProtectLevel = ProtectLevel

    @property
    def RiskStatus(self):
        return self._RiskStatus

    @RiskStatus.setter
    def RiskStatus(self, RiskStatus):
        self._RiskStatus = RiskStatus

    @property
    def ProtectDays(self):
        return self._ProtectDays

    @ProtectDays.setter
    def ProtectDays(self, ProtectDays):
        self._ProtectDays = ProtectDays

    @property
    def BuyTime(self):
        return self._BuyTime

    @BuyTime.setter
    def BuyTime(self, BuyTime):
        self._BuyTime = BuyTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def CoreVersion(self):
        return self._CoreVersion

    @CoreVersion.setter
    def CoreVersion(self, CoreVersion):
        self._CoreVersion = CoreVersion

    @property
    def OsType(self):
        return self._OsType

    @OsType.setter
    def OsType(self, OsType):
        self._OsType = OsType

    @property
    def AgentVersion(self):
        return self._AgentVersion

    @AgentVersion.setter
    def AgentVersion(self, AgentVersion):
        self._AgentVersion = AgentVersion

    @property
    def InstallTime(self):
        return self._InstallTime

    @InstallTime.setter
    def InstallTime(self, InstallTime):
        self._InstallTime = InstallTime

    @property
    def BootTime(self):
        return self._BootTime

    @BootTime.setter
    def BootTime(self, BootTime):
        self._BootTime = BootTime

    @property
    def LastLiveTime(self):
        return self._LastLiveTime

    @LastLiveTime.setter
    def LastLiveTime(self, LastLiveTime):
        self._LastLiveTime = LastLiveTime

    @property
    def Producer(self):
        return self._Producer

    @Producer.setter
    def Producer(self, Producer):
        self._Producer = Producer

    @property
    def SerialNumber(self):
        return self._SerialNumber

    @SerialNumber.setter
    def SerialNumber(self, SerialNumber):
        self._SerialNumber = SerialNumber

    @property
    def NetCards(self):
        return self._NetCards

    @NetCards.setter
    def NetCards(self, NetCards):
        self._NetCards = NetCards

    @property
    def Disks(self):
        return self._Disks

    @Disks.setter
    def Disks(self, Disks):
        self._Disks = Disks

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def DeviceVersion(self):
        return self._DeviceVersion

    @DeviceVersion.setter
    def DeviceVersion(self, DeviceVersion):
        self._DeviceVersion = DeviceVersion

    @property
    def OfflineTime(self):
        return self._OfflineTime

    @OfflineTime.setter
    def OfflineTime(self, OfflineTime):
        self._OfflineTime = OfflineTime

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def CpuLoadVul(self):
        return self._CpuLoadVul

    @CpuLoadVul.setter
    def CpuLoadVul(self, CpuLoadVul):
        self._CpuLoadVul = CpuLoadVul

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Cpu = params.get("Cpu")
        self._MemSize = params.get("MemSize")
        self._MemLoad = params.get("MemLoad")
        self._DiskSize = params.get("DiskSize")
        self._DiskLoad = params.get("DiskLoad")
        self._PartitionCount = params.get("PartitionCount")
        self._MachineWanIp = params.get("MachineWanIp")
        self._CpuSize = params.get("CpuSize")
        self._CpuLoad = params.get("CpuLoad")
        self._ProtectLevel = params.get("ProtectLevel")
        self._RiskStatus = params.get("RiskStatus")
        self._ProtectDays = params.get("ProtectDays")
        self._BuyTime = params.get("BuyTime")
        self._EndTime = params.get("EndTime")
        self._CoreVersion = params.get("CoreVersion")
        self._OsType = params.get("OsType")
        self._AgentVersion = params.get("AgentVersion")
        self._InstallTime = params.get("InstallTime")
        self._BootTime = params.get("BootTime")
        self._LastLiveTime = params.get("LastLiveTime")
        self._Producer = params.get("Producer")
        self._SerialNumber = params.get("SerialNumber")
        if params.get("NetCards") is not None:
            self._NetCards = []
            for item in params.get("NetCards"):
                obj = AssetNetworkCardInfo()
                obj._deserialize(item)
                self._NetCards.append(obj)
        if params.get("Disks") is not None:
            self._Disks = []
            for item in params.get("Disks"):
                obj = AssetDiskPartitionInfo()
                obj._deserialize(item)
                self._Disks.append(obj)
        self._Status = params.get("Status")
        self._ProjectId = params.get("ProjectId")
        self._DeviceVersion = params.get("DeviceVersion")
        self._OfflineTime = params.get("OfflineTime")
        self._InstanceId = params.get("InstanceId")
        self._UpdateTime = params.get("UpdateTime")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._CpuLoadVul = params.get("CpuLoadVul")
        self._FirstTime = params.get("FirstTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetNetworkCardInfo(AbstractModel):
    """资产管理网卡信息

    """

    def __init__(self):
        r"""
        :param _Name: 网卡名称
        :type Name: str
        :param _Ip: Ipv4对应IP
        :type Ip: str
        :param _GateWay: 网关
        :type GateWay: str
        :param _Mac: MAC地址
        :type Mac: str
        :param _Ipv6: Ipv6对应IP
        :type Ipv6: str
        :param _DnsServer: DNS服务器
        :type DnsServer: str
        """
        self._Name = None
        self._Ip = None
        self._GateWay = None
        self._Mac = None
        self._Ipv6 = None
        self._DnsServer = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def GateWay(self):
        return self._GateWay

    @GateWay.setter
    def GateWay(self, GateWay):
        self._GateWay = GateWay

    @property
    def Mac(self):
        return self._Mac

    @Mac.setter
    def Mac(self, Mac):
        self._Mac = Mac

    @property
    def Ipv6(self):
        return self._Ipv6

    @Ipv6.setter
    def Ipv6(self, Ipv6):
        self._Ipv6 = Ipv6

    @property
    def DnsServer(self):
        return self._DnsServer

    @DnsServer.setter
    def DnsServer(self, DnsServer):
        self._DnsServer = DnsServer


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Ip = params.get("Ip")
        self._GateWay = params.get("GateWay")
        self._Mac = params.get("Mac")
        self._Ipv6 = params.get("Ipv6")
        self._DnsServer = params.get("DnsServer")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetPlanTask(AbstractModel):
    """资产管理计划任务列表

    """

    def __init__(self):
        r"""
        :param _Status: 默认启用状态：1启用，2未启用
        :type Status: int
        :param _Cycle: 执行周期
        :type Cycle: str
        :param _Command: 执行命令或脚本
        :type Command: str
        :param _User: 启动用户
        :type User: str
        :param _ConfigPath: 配置文件路径
        :type ConfigPath: str
        :param _MachineIp: 服务器IP
        :type MachineIp: str
        :param _MachineName: 服务器名称
        :type MachineName: str
        :param _OsInfo: 操作系统
        :type OsInfo: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineWanIp: 服务器外网IP
        :type MachineWanIp: str
        :param _MachineExtraInfo:  附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Status = None
        self._Cycle = None
        self._Command = None
        self._User = None
        self._ConfigPath = None
        self._MachineIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Quuid = None
        self._Uuid = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineWanIp = None
        self._MachineExtraInfo = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Cycle(self):
        return self._Cycle

    @Cycle.setter
    def Cycle(self, Cycle):
        self._Cycle = Cycle

    @property
    def Command(self):
        return self._Command

    @Command.setter
    def Command(self, Command):
        self._Command = Command

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def ConfigPath(self):
        return self._ConfigPath

    @ConfigPath.setter
    def ConfigPath(self, ConfigPath):
        self._ConfigPath = ConfigPath

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._Cycle = params.get("Cycle")
        self._Command = params.get("Command")
        self._User = params.get("User")
        self._ConfigPath = params.get("ConfigPath")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetPortBaseInfo(AbstractModel):
    """资源管理账号基本信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _Tag: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _ProcessName: 进程名称
        :type ProcessName: str
        :param _ProcessVersion: 进程版本
        :type ProcessVersion: str
        :param _ProcessPath: 进程路径
        :type ProcessPath: str
        :param _Pid: 进程ID
        :type Pid: str
        :param _User: 运行用户
        :type User: str
        :param _StartTime: 启动时间
        :type StartTime: str
        :param _Param: 启动参数
        :type Param: str
        :param _Teletype: 进程TTY
        :type Teletype: str
        :param _Port: 端口
        :type Port: str
        :param _GroupName: 所属用户组
        :type GroupName: str
        :param _Md5: 进程MD5
        :type Md5: str
        :param _Ppid: 父进程ID
        :type Ppid: str
        :param _ParentProcessName: 父进程名称
        :type ParentProcessName: str
        :param _Proto: 端口协议
        :type Proto: str
        :param _BindIp: 绑定IP
        :type BindIp: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineExtraInfo:  附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineIp = None
        self._MachineWanIp = None
        self._Quuid = None
        self._Uuid = None
        self._OsInfo = None
        self._ProjectId = None
        self._Tag = None
        self._ProcessName = None
        self._ProcessVersion = None
        self._ProcessPath = None
        self._Pid = None
        self._User = None
        self._StartTime = None
        self._Param = None
        self._Teletype = None
        self._Port = None
        self._GroupName = None
        self._Md5 = None
        self._Ppid = None
        self._ParentProcessName = None
        self._Proto = None
        self._BindIp = None
        self._MachineName = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineExtraInfo = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def ProcessVersion(self):
        return self._ProcessVersion

    @ProcessVersion.setter
    def ProcessVersion(self, ProcessVersion):
        self._ProcessVersion = ProcessVersion

    @property
    def ProcessPath(self):
        return self._ProcessPath

    @ProcessPath.setter
    def ProcessPath(self, ProcessPath):
        self._ProcessPath = ProcessPath

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def Param(self):
        return self._Param

    @Param.setter
    def Param(self, Param):
        self._Param = Param

    @property
    def Teletype(self):
        return self._Teletype

    @Teletype.setter
    def Teletype(self, Teletype):
        self._Teletype = Teletype

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def GroupName(self):
        return self._GroupName

    @GroupName.setter
    def GroupName(self, GroupName):
        self._GroupName = GroupName

    @property
    def Md5(self):
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def Ppid(self):
        return self._Ppid

    @Ppid.setter
    def Ppid(self, Ppid):
        self._Ppid = Ppid

    @property
    def ParentProcessName(self):
        return self._ParentProcessName

    @ParentProcessName.setter
    def ParentProcessName(self, ParentProcessName):
        self._ParentProcessName = ParentProcessName

    @property
    def Proto(self):
        return self._Proto

    @Proto.setter
    def Proto(self, Proto):
        self._Proto = Proto

    @property
    def BindIp(self):
        return self._BindIp

    @BindIp.setter
    def BindIp(self, BindIp):
        self._BindIp = BindIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._OsInfo = params.get("OsInfo")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._ProcessName = params.get("ProcessName")
        self._ProcessVersion = params.get("ProcessVersion")
        self._ProcessPath = params.get("ProcessPath")
        self._Pid = params.get("Pid")
        self._User = params.get("User")
        self._StartTime = params.get("StartTime")
        self._Param = params.get("Param")
        self._Teletype = params.get("Teletype")
        self._Port = params.get("Port")
        self._GroupName = params.get("GroupName")
        self._Md5 = params.get("Md5")
        self._Ppid = params.get("Ppid")
        self._ParentProcessName = params.get("ParentProcessName")
        self._Proto = params.get("Proto")
        self._BindIp = params.get("BindIp")
        self._MachineName = params.get("MachineName")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetProcessBaseInfo(AbstractModel):
    """资源管理进程基本信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _Tag: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _Name: 进程名称
        :type Name: str
        :param _Desc: 进程说明
        :type Desc: str
        :param _Path: 进程路径
        :type Path: str
        :param _Pid: 进程ID
        :type Pid: str
        :param _User: 运行用户
        :type User: str
        :param _StartTime: 启动时间
        :type StartTime: str
        :param _Param: 启动参数
        :type Param: str
        :param _Tty: 进程TTY
        :type Tty: str
        :param _Version: 进程版本
        :type Version: str
        :param _GroupName: 进程用户组
        :type GroupName: str
        :param _Md5: 进程MD5
        :type Md5: str
        :param _Ppid: 父进程ID
        :type Ppid: str
        :param _ParentProcessName: 父进程名称
        :type ParentProcessName: str
        :param _Status: 进程状态
        :type Status: str
        :param _HasSign: 数字签名:0无，1有， 999 空，仅windows
        :type HasSign: int
        :param _InstallByPackage: 是否通过安装包安装：:0否，1是， 999 空，仅linux
        :type InstallByPackage: int
        :param _PackageName: 软件包名
        :type PackageName: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineExtraInfo: 
 附加信息

注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineIp = None
        self._MachineWanIp = None
        self._Quuid = None
        self._Uuid = None
        self._OsInfo = None
        self._ProjectId = None
        self._Tag = None
        self._Name = None
        self._Desc = None
        self._Path = None
        self._Pid = None
        self._User = None
        self._StartTime = None
        self._Param = None
        self._Tty = None
        self._Version = None
        self._GroupName = None
        self._Md5 = None
        self._Ppid = None
        self._ParentProcessName = None
        self._Status = None
        self._HasSign = None
        self._InstallByPackage = None
        self._PackageName = None
        self._MachineName = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineExtraInfo = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def Param(self):
        return self._Param

    @Param.setter
    def Param(self, Param):
        self._Param = Param

    @property
    def Tty(self):
        return self._Tty

    @Tty.setter
    def Tty(self, Tty):
        self._Tty = Tty

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def GroupName(self):
        return self._GroupName

    @GroupName.setter
    def GroupName(self, GroupName):
        self._GroupName = GroupName

    @property
    def Md5(self):
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def Ppid(self):
        return self._Ppid

    @Ppid.setter
    def Ppid(self, Ppid):
        self._Ppid = Ppid

    @property
    def ParentProcessName(self):
        return self._ParentProcessName

    @ParentProcessName.setter
    def ParentProcessName(self, ParentProcessName):
        self._ParentProcessName = ParentProcessName

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def HasSign(self):
        return self._HasSign

    @HasSign.setter
    def HasSign(self, HasSign):
        self._HasSign = HasSign

    @property
    def InstallByPackage(self):
        return self._InstallByPackage

    @InstallByPackage.setter
    def InstallByPackage(self, InstallByPackage):
        self._InstallByPackage = InstallByPackage

    @property
    def PackageName(self):
        return self._PackageName

    @PackageName.setter
    def PackageName(self, PackageName):
        self._PackageName = PackageName

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._OsInfo = params.get("OsInfo")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Name = params.get("Name")
        self._Desc = params.get("Desc")
        self._Path = params.get("Path")
        self._Pid = params.get("Pid")
        self._User = params.get("User")
        self._StartTime = params.get("StartTime")
        self._Param = params.get("Param")
        self._Tty = params.get("Tty")
        self._Version = params.get("Version")
        self._GroupName = params.get("GroupName")
        self._Md5 = params.get("Md5")
        self._Ppid = params.get("Ppid")
        self._ParentProcessName = params.get("ParentProcessName")
        self._Status = params.get("Status")
        self._HasSign = params.get("HasSign")
        self._InstallByPackage = params.get("InstallByPackage")
        self._PackageName = params.get("PackageName")
        self._MachineName = params.get("MachineName")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetSystemPackageInfo(AbstractModel):
    """资源管理系统安装包列表信息

    """

    def __init__(self):
        r"""
        :param _Name: 数据库名
        :type Name: str
        :param _Desc: 描述
        :type Desc: str
        :param _Version: 版本
        :type Version: str
        :param _InstallTime: 安装时间
        :type InstallTime: str
        :param _Type: 类型
        :type Type: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _MachineIp: 主机IP
        :type MachineIp: str
        :param _OsInfo: 操作系统
        :type OsInfo: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineExtraInfo: 附加信息
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Quuid: 主机Id
        :type Quuid: str
        :param _Uuid: Agent Id
        :type Uuid: str
        """
        self._Name = None
        self._Desc = None
        self._Version = None
        self._InstallTime = None
        self._Type = None
        self._MachineName = None
        self._MachineIp = None
        self._OsInfo = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineExtraInfo = None
        self._Quuid = None
        self._Uuid = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def InstallTime(self):
        return self._InstallTime

    @InstallTime.setter
    def InstallTime(self, InstallTime):
        self._InstallTime = InstallTime

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Desc = params.get("Desc")
        self._Version = params.get("Version")
        self._InstallTime = params.get("InstallTime")
        self._Type = params.get("Type")
        self._MachineName = params.get("MachineName")
        self._MachineIp = params.get("MachineIp")
        self._OsInfo = params.get("OsInfo")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetType(AbstractModel):
    """资产指纹类型描述

    """

    def __init__(self):
        r"""
        :param _Id: 类型ID
        :type Id: int
        :param _Name: 类型名称
        :type Name: str
        """
        self._Id = None
        self._Name = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetUserBaseInfo(AbstractModel):
    """资源管理账号基本信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uid: 账号UID
        :type Uid: str
        :param _Gid: 账号GID
        :type Gid: str
        :param _Status: 账号状态：0-禁用；1-启用
        :type Status: int
        :param _IsRoot: 是否有root权限：0-否；1是，999为空: 仅linux
        :type IsRoot: int
        :param _LoginType: 登录方式：0-不可登录；1-只允许key登录；2只允许密码登录；3-允许key和密码，999为空，仅linux
        :type LoginType: int
        :param _LastLoginTime: 上次登录时间
        :type LastLoginTime: str
        :param _Name: 账号名称
        :type Name: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _UserType: 账号类型：0访客用户，1标准用户，2管理员用户 ,999为空,仅windows
        :type UserType: int
        :param _IsDomain: 是否域账号：0否， 1是，2否, 999为空  仅windows
        :type IsDomain: int
        :param _IsSudo: 是否有sudo权限，1是，0否, 999为空, 仅linux
        :type IsSudo: int
        :param _IsSshLogin: 是否允许ssh登录，1是，0否, 999为空, 仅linux
        :type IsSshLogin: int
        :param _HomePath: Home目录
        :type HomePath: str
        :param _Shell: Shell路径  仅linux
        :type Shell: str
        :param _ShellLoginStatus: 是否shell登录性，0不是；1是 仅linux
        :type ShellLoginStatus: int
        :param _PasswordChangeTime: 密码修改时间
        :type PasswordChangeTime: str
        :param _PasswordDueTime: 密码过期时间  仅linux
        :type PasswordDueTime: str
        :param _PasswordLockDays: 密码锁定时间：单位天, -1为永不锁定 999为空，仅linux
        :type PasswordLockDays: int
        :param _PasswordStatus: 密码状态：1正常 2即将过期 3已过期 4已锁定 999为空 仅linux
        :type PasswordStatus: int
        :param _UpdateTime: 更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineExtraInfo: 
 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineIp = None
        self._MachineWanIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Uuid = None
        self._Quuid = None
        self._Uid = None
        self._Gid = None
        self._Status = None
        self._IsRoot = None
        self._LoginType = None
        self._LastLoginTime = None
        self._Name = None
        self._ProjectId = None
        self._UserType = None
        self._IsDomain = None
        self._IsSudo = None
        self._IsSshLogin = None
        self._HomePath = None
        self._Shell = None
        self._ShellLoginStatus = None
        self._PasswordChangeTime = None
        self._PasswordDueTime = None
        self._PasswordLockDays = None
        self._PasswordStatus = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineExtraInfo = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uid(self):
        return self._Uid

    @Uid.setter
    def Uid(self, Uid):
        self._Uid = Uid

    @property
    def Gid(self):
        return self._Gid

    @Gid.setter
    def Gid(self, Gid):
        self._Gid = Gid

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IsRoot(self):
        return self._IsRoot

    @IsRoot.setter
    def IsRoot(self, IsRoot):
        self._IsRoot = IsRoot

    @property
    def LoginType(self):
        return self._LoginType

    @LoginType.setter
    def LoginType(self, LoginType):
        self._LoginType = LoginType

    @property
    def LastLoginTime(self):
        return self._LastLoginTime

    @LastLoginTime.setter
    def LastLoginTime(self, LastLoginTime):
        self._LastLoginTime = LastLoginTime

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def UserType(self):
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def IsDomain(self):
        return self._IsDomain

    @IsDomain.setter
    def IsDomain(self, IsDomain):
        self._IsDomain = IsDomain

    @property
    def IsSudo(self):
        return self._IsSudo

    @IsSudo.setter
    def IsSudo(self, IsSudo):
        self._IsSudo = IsSudo

    @property
    def IsSshLogin(self):
        return self._IsSshLogin

    @IsSshLogin.setter
    def IsSshLogin(self, IsSshLogin):
        self._IsSshLogin = IsSshLogin

    @property
    def HomePath(self):
        return self._HomePath

    @HomePath.setter
    def HomePath(self, HomePath):
        self._HomePath = HomePath

    @property
    def Shell(self):
        return self._Shell

    @Shell.setter
    def Shell(self, Shell):
        self._Shell = Shell

    @property
    def ShellLoginStatus(self):
        return self._ShellLoginStatus

    @ShellLoginStatus.setter
    def ShellLoginStatus(self, ShellLoginStatus):
        self._ShellLoginStatus = ShellLoginStatus

    @property
    def PasswordChangeTime(self):
        return self._PasswordChangeTime

    @PasswordChangeTime.setter
    def PasswordChangeTime(self, PasswordChangeTime):
        self._PasswordChangeTime = PasswordChangeTime

    @property
    def PasswordDueTime(self):
        return self._PasswordDueTime

    @PasswordDueTime.setter
    def PasswordDueTime(self, PasswordDueTime):
        self._PasswordDueTime = PasswordDueTime

    @property
    def PasswordLockDays(self):
        return self._PasswordLockDays

    @PasswordLockDays.setter
    def PasswordLockDays(self, PasswordLockDays):
        self._PasswordLockDays = PasswordLockDays

    @property
    def PasswordStatus(self):
        return self._PasswordStatus

    @PasswordStatus.setter
    def PasswordStatus(self, PasswordStatus):
        self._PasswordStatus = PasswordStatus

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Uid = params.get("Uid")
        self._Gid = params.get("Gid")
        self._Status = params.get("Status")
        self._IsRoot = params.get("IsRoot")
        self._LoginType = params.get("LoginType")
        self._LastLoginTime = params.get("LastLoginTime")
        self._Name = params.get("Name")
        self._ProjectId = params.get("ProjectId")
        self._UserType = params.get("UserType")
        self._IsDomain = params.get("IsDomain")
        self._IsSudo = params.get("IsSudo")
        self._IsSshLogin = params.get("IsSshLogin")
        self._HomePath = params.get("HomePath")
        self._Shell = params.get("Shell")
        self._ShellLoginStatus = params.get("ShellLoginStatus")
        self._PasswordChangeTime = params.get("PasswordChangeTime")
        self._PasswordDueTime = params.get("PasswordDueTime")
        self._PasswordLockDays = params.get("PasswordLockDays")
        self._PasswordStatus = params.get("PasswordStatus")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetUserDetail(AbstractModel):
    """资源管理账号基本信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uid: 账号UID
        :type Uid: str
        :param _Gid: 账号GID
        :type Gid: str
        :param _Status: 账号状态：0-禁用；1-启用
        :type Status: int
        :param _IsRoot: 是否有root权限：0-否；1是，999为空: 仅linux
        :type IsRoot: int
        :param _LastLoginTime: 上次登录时间
        :type LastLoginTime: str
        :param _Name: 账号名称
        :type Name: str
        :param _UserType: 账号类型：0访客用户，1标准用户，2管理员用户 ,999为空,仅windows
        :type UserType: int
        :param _IsDomain: 是否域账号：0否， 1是, 999为空  仅windows
        :type IsDomain: int
        :param _IsSshLogin: 是否允许ssh登录，1是，0否, 999为空, 仅linux
        :type IsSshLogin: int
        :param _HomePath: Home目录
        :type HomePath: str
        :param _Shell: Shell路径  仅linux
        :type Shell: str
        :param _ShellLoginStatus: 是否shell登录性，0不是；1是 仅linux
        :type ShellLoginStatus: int
        :param _PasswordChangeTime: 密码修改时间
        :type PasswordChangeTime: str
        :param _PasswordDueTime: 密码过期时间  仅linux
        :type PasswordDueTime: str
        :param _PasswordLockDays: 密码锁定时间：单位天, -1为永不锁定 999为空，仅linux
        :type PasswordLockDays: int
        :param _Remark: 备注
        :type Remark: str
        :param _GroupName: 用户组名
        :type GroupName: str
        :param _DisableTime: 账号到期时间
        :type DisableTime: str
        :param _LastLoginTerminal: 最近登录终端
        :type LastLoginTerminal: str
        :param _LastLoginLoc: 最近登录位置
        :type LastLoginLoc: str
        :param _LastLoginIp: 最近登录IP
        :type LastLoginIp: str
        :param _PasswordWarnDays: 密码过期提醒：单位天
        :type PasswordWarnDays: int
        :param _PasswordChangeType: 密码修改设置：0-不可修改，1-可修改
        :type PasswordChangeType: int
        :param _Keys: 用户公钥列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Keys: list of AssetUserKeyInfo
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        """
        self._MachineIp = None
        self._MachineName = None
        self._Uuid = None
        self._Quuid = None
        self._Uid = None
        self._Gid = None
        self._Status = None
        self._IsRoot = None
        self._LastLoginTime = None
        self._Name = None
        self._UserType = None
        self._IsDomain = None
        self._IsSshLogin = None
        self._HomePath = None
        self._Shell = None
        self._ShellLoginStatus = None
        self._PasswordChangeTime = None
        self._PasswordDueTime = None
        self._PasswordLockDays = None
        self._Remark = None
        self._GroupName = None
        self._DisableTime = None
        self._LastLoginTerminal = None
        self._LastLoginLoc = None
        self._LastLoginIp = None
        self._PasswordWarnDays = None
        self._PasswordChangeType = None
        self._Keys = None
        self._UpdateTime = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uid(self):
        return self._Uid

    @Uid.setter
    def Uid(self, Uid):
        self._Uid = Uid

    @property
    def Gid(self):
        return self._Gid

    @Gid.setter
    def Gid(self, Gid):
        self._Gid = Gid

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IsRoot(self):
        return self._IsRoot

    @IsRoot.setter
    def IsRoot(self, IsRoot):
        self._IsRoot = IsRoot

    @property
    def LastLoginTime(self):
        return self._LastLoginTime

    @LastLoginTime.setter
    def LastLoginTime(self, LastLoginTime):
        self._LastLoginTime = LastLoginTime

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def UserType(self):
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def IsDomain(self):
        return self._IsDomain

    @IsDomain.setter
    def IsDomain(self, IsDomain):
        self._IsDomain = IsDomain

    @property
    def IsSshLogin(self):
        return self._IsSshLogin

    @IsSshLogin.setter
    def IsSshLogin(self, IsSshLogin):
        self._IsSshLogin = IsSshLogin

    @property
    def HomePath(self):
        return self._HomePath

    @HomePath.setter
    def HomePath(self, HomePath):
        self._HomePath = HomePath

    @property
    def Shell(self):
        return self._Shell

    @Shell.setter
    def Shell(self, Shell):
        self._Shell = Shell

    @property
    def ShellLoginStatus(self):
        return self._ShellLoginStatus

    @ShellLoginStatus.setter
    def ShellLoginStatus(self, ShellLoginStatus):
        self._ShellLoginStatus = ShellLoginStatus

    @property
    def PasswordChangeTime(self):
        return self._PasswordChangeTime

    @PasswordChangeTime.setter
    def PasswordChangeTime(self, PasswordChangeTime):
        self._PasswordChangeTime = PasswordChangeTime

    @property
    def PasswordDueTime(self):
        return self._PasswordDueTime

    @PasswordDueTime.setter
    def PasswordDueTime(self, PasswordDueTime):
        self._PasswordDueTime = PasswordDueTime

    @property
    def PasswordLockDays(self):
        return self._PasswordLockDays

    @PasswordLockDays.setter
    def PasswordLockDays(self, PasswordLockDays):
        self._PasswordLockDays = PasswordLockDays

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def GroupName(self):
        return self._GroupName

    @GroupName.setter
    def GroupName(self, GroupName):
        self._GroupName = GroupName

    @property
    def DisableTime(self):
        return self._DisableTime

    @DisableTime.setter
    def DisableTime(self, DisableTime):
        self._DisableTime = DisableTime

    @property
    def LastLoginTerminal(self):
        return self._LastLoginTerminal

    @LastLoginTerminal.setter
    def LastLoginTerminal(self, LastLoginTerminal):
        self._LastLoginTerminal = LastLoginTerminal

    @property
    def LastLoginLoc(self):
        return self._LastLoginLoc

    @LastLoginLoc.setter
    def LastLoginLoc(self, LastLoginLoc):
        self._LastLoginLoc = LastLoginLoc

    @property
    def LastLoginIp(self):
        return self._LastLoginIp

    @LastLoginIp.setter
    def LastLoginIp(self, LastLoginIp):
        self._LastLoginIp = LastLoginIp

    @property
    def PasswordWarnDays(self):
        return self._PasswordWarnDays

    @PasswordWarnDays.setter
    def PasswordWarnDays(self, PasswordWarnDays):
        self._PasswordWarnDays = PasswordWarnDays

    @property
    def PasswordChangeType(self):
        return self._PasswordChangeType

    @PasswordChangeType.setter
    def PasswordChangeType(self, PasswordChangeType):
        self._PasswordChangeType = PasswordChangeType

    @property
    def Keys(self):
        return self._Keys

    @Keys.setter
    def Keys(self, Keys):
        self._Keys = Keys

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Uid = params.get("Uid")
        self._Gid = params.get("Gid")
        self._Status = params.get("Status")
        self._IsRoot = params.get("IsRoot")
        self._LastLoginTime = params.get("LastLoginTime")
        self._Name = params.get("Name")
        self._UserType = params.get("UserType")
        self._IsDomain = params.get("IsDomain")
        self._IsSshLogin = params.get("IsSshLogin")
        self._HomePath = params.get("HomePath")
        self._Shell = params.get("Shell")
        self._ShellLoginStatus = params.get("ShellLoginStatus")
        self._PasswordChangeTime = params.get("PasswordChangeTime")
        self._PasswordDueTime = params.get("PasswordDueTime")
        self._PasswordLockDays = params.get("PasswordLockDays")
        self._Remark = params.get("Remark")
        self._GroupName = params.get("GroupName")
        self._DisableTime = params.get("DisableTime")
        self._LastLoginTerminal = params.get("LastLoginTerminal")
        self._LastLoginLoc = params.get("LastLoginLoc")
        self._LastLoginIp = params.get("LastLoginIp")
        self._PasswordWarnDays = params.get("PasswordWarnDays")
        self._PasswordChangeType = params.get("PasswordChangeType")
        if params.get("Keys") is not None:
            self._Keys = []
            for item in params.get("Keys"):
                obj = AssetUserKeyInfo()
                obj._deserialize(item)
                self._Keys.append(obj)
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetUserKeyInfo(AbstractModel):
    """资产管理账号key详情

    """

    def __init__(self):
        r"""
        :param _Value: 公钥值
        :type Value: str
        :param _Comment: 公钥备注
        :type Comment: str
        :param _EncryptType: 加密方式
        :type EncryptType: str
        """
        self._Value = None
        self._Comment = None
        self._EncryptType = None

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Comment(self):
        return self._Comment

    @Comment.setter
    def Comment(self, Comment):
        self._Comment = Comment

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType


    def _deserialize(self, params):
        self._Value = params.get("Value")
        self._Comment = params.get("Comment")
        self._EncryptType = params.get("EncryptType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetWebAppBaseInfo(AbstractModel):
    """资源管理Web应用列表信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _Tag: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _Name: 应用名
        :type Name: str
        :param _Version: 版本
        :type Version: str
        :param _RootPath: 根路径
        :type RootPath: str
        :param _ServiceType: 服务类型
        :type ServiceType: str
        :param _Domain: 站点域名
        :type Domain: str
        :param _VirtualPath: 虚拟路径
        :type VirtualPath: str
        :param _PluginCount: 插件数
        :type PluginCount: int
        :param _Id: 应用ID
        :type Id: str
        :param _Desc: 应用描述
        :type Desc: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineExtraInfo:  附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineIp = None
        self._MachineWanIp = None
        self._Quuid = None
        self._Uuid = None
        self._OsInfo = None
        self._ProjectId = None
        self._Tag = None
        self._Name = None
        self._Version = None
        self._RootPath = None
        self._ServiceType = None
        self._Domain = None
        self._VirtualPath = None
        self._PluginCount = None
        self._Id = None
        self._Desc = None
        self._MachineName = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineExtraInfo = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def RootPath(self):
        return self._RootPath

    @RootPath.setter
    def RootPath(self, RootPath):
        self._RootPath = RootPath

    @property
    def ServiceType(self):
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def Domain(self):
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def VirtualPath(self):
        return self._VirtualPath

    @VirtualPath.setter
    def VirtualPath(self, VirtualPath):
        self._VirtualPath = VirtualPath

    @property
    def PluginCount(self):
        return self._PluginCount

    @PluginCount.setter
    def PluginCount(self, PluginCount):
        self._PluginCount = PluginCount

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._OsInfo = params.get("OsInfo")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Name = params.get("Name")
        self._Version = params.get("Version")
        self._RootPath = params.get("RootPath")
        self._ServiceType = params.get("ServiceType")
        self._Domain = params.get("Domain")
        self._VirtualPath = params.get("VirtualPath")
        self._PluginCount = params.get("PluginCount")
        self._Id = params.get("Id")
        self._Desc = params.get("Desc")
        self._MachineName = params.get("MachineName")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetWebAppPluginInfo(AbstractModel):
    """资产管理Web应用插件详情

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Desc: 描述
        :type Desc: str
        :param _Version: 版本
        :type Version: str
        :param _Link: 链接
        :type Link: str
        """
        self._Name = None
        self._Desc = None
        self._Version = None
        self._Link = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Link(self):
        return self._Link

    @Link.setter
    def Link(self, Link):
        self._Link = Link


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Desc = params.get("Desc")
        self._Version = params.get("Version")
        self._Link = params.get("Link")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetWebFrameBaseInfo(AbstractModel):
    """资源管理Web应用列表信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _Tag: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _Name: 数据库名
        :type Name: str
        :param _Version: 版本
        :type Version: str
        :param _Lang: 语言
        :type Lang: str
        :param _ServiceType: 服务类型
        :type ServiceType: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _UpdateTime: 数据更新时间
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineExtraInfo:  附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Path: 应用路径
        :type Path: str
        """
        self._MachineIp = None
        self._MachineWanIp = None
        self._Quuid = None
        self._Uuid = None
        self._OsInfo = None
        self._ProjectId = None
        self._Tag = None
        self._Name = None
        self._Version = None
        self._Lang = None
        self._ServiceType = None
        self._MachineName = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineExtraInfo = None
        self._Path = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def Lang(self):
        return self._Lang

    @Lang.setter
    def Lang(self, Lang):
        self._Lang = Lang

    @property
    def ServiceType(self):
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._OsInfo = params.get("OsInfo")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Name = params.get("Name")
        self._Version = params.get("Version")
        self._Lang = params.get("Lang")
        self._ServiceType = params.get("ServiceType")
        self._MachineName = params.get("MachineName")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Path = params.get("Path")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetWebLocationBaseInfo(AbstractModel):
    """资产管理Web站点列表信息

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _MachineIp: 内网IP
        :type MachineIp: str
        :param _MachineWanIp: 外网IP
        :type MachineWanIp: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _OsInfo: 操作系统
        :type OsInfo: str
        :param _Name: 域名
        :type Name: str
        :param _Port: 站点端口
        :type Port: str
        :param _Proto: 站点协议
        :type Proto: str
        :param _ServiceType: 服务类型
        :type ServiceType: str
        :param _PathCount: 站点路经数
        :type PathCount: int
        :param _User: 运行用户
        :type User: str
        :param _MainPath: 主目录
        :type MainPath: str
        :param _MainPathOwner: 主目录所有者
        :type MainPathOwner: str
        :param _Permission: 拥有者权限
        :type Permission: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _Tag: 主机标签
        :type Tag: list of MachineTag
        :param _Id: Web站点Id
        :type Id: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
注意：此字段可能返回 null，表示取不到有效值。
        :type IsNew: int
        :param _MachineExtraInfo:  附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Uuid = None
        self._Quuid = None
        self._MachineIp = None
        self._MachineWanIp = None
        self._MachineName = None
        self._OsInfo = None
        self._Name = None
        self._Port = None
        self._Proto = None
        self._ServiceType = None
        self._PathCount = None
        self._User = None
        self._MainPath = None
        self._MainPathOwner = None
        self._Permission = None
        self._ProjectId = None
        self._Tag = None
        self._Id = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineExtraInfo = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def Proto(self):
        return self._Proto

    @Proto.setter
    def Proto(self, Proto):
        self._Proto = Proto

    @property
    def ServiceType(self):
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def PathCount(self):
        return self._PathCount

    @PathCount.setter
    def PathCount(self, PathCount):
        self._PathCount = PathCount

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def MainPath(self):
        return self._MainPath

    @MainPath.setter
    def MainPath(self, MainPath):
        self._MainPath = MainPath

    @property
    def MainPathOwner(self):
        return self._MainPathOwner

    @MainPathOwner.setter
    def MainPathOwner(self, MainPathOwner):
        self._MainPathOwner = MainPathOwner

    @property
    def Permission(self):
        return self._Permission

    @Permission.setter
    def Permission(self, Permission):
        self._Permission = Permission

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._MachineName = params.get("MachineName")
        self._OsInfo = params.get("OsInfo")
        self._Name = params.get("Name")
        self._Port = params.get("Port")
        self._Proto = params.get("Proto")
        self._ServiceType = params.get("ServiceType")
        self._PathCount = params.get("PathCount")
        self._User = params.get("User")
        self._MainPath = params.get("MainPath")
        self._MainPathOwner = params.get("MainPathOwner")
        self._Permission = params.get("Permission")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Id = params.get("Id")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetWebLocationInfo(AbstractModel):
    """资产管理Web站点列表信息

    """

    def __init__(self):
        r"""
        :param _Name: 域名
        :type Name: str
        :param _Port: 站点端口
        :type Port: str
        :param _Proto: 站点协议
        :type Proto: str
        :param _ServiceType: 服务类型
        :type ServiceType: str
        :param _SafeStatus: 安全模块状态：0未启用，1启用，999空，仅nginx
        :type SafeStatus: int
        :param _User: 运行用户
        :type User: str
        :param _MainPath: 主目录
        :type MainPath: str
        :param _Command: 启动命令
        :type Command: str
        :param _Ip: 绑定IP
        :type Ip: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        """
        self._Name = None
        self._Port = None
        self._Proto = None
        self._ServiceType = None
        self._SafeStatus = None
        self._User = None
        self._MainPath = None
        self._Command = None
        self._Ip = None
        self._UpdateTime = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def Proto(self):
        return self._Proto

    @Proto.setter
    def Proto(self, Proto):
        self._Proto = Proto

    @property
    def ServiceType(self):
        return self._ServiceType

    @ServiceType.setter
    def ServiceType(self, ServiceType):
        self._ServiceType = ServiceType

    @property
    def SafeStatus(self):
        return self._SafeStatus

    @SafeStatus.setter
    def SafeStatus(self, SafeStatus):
        self._SafeStatus = SafeStatus

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def MainPath(self):
        return self._MainPath

    @MainPath.setter
    def MainPath(self, MainPath):
        self._MainPath = MainPath

    @property
    def Command(self):
        return self._Command

    @Command.setter
    def Command(self, Command):
        self._Command = Command

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Port = params.get("Port")
        self._Proto = params.get("Proto")
        self._ServiceType = params.get("ServiceType")
        self._SafeStatus = params.get("SafeStatus")
        self._User = params.get("User")
        self._MainPath = params.get("MainPath")
        self._Command = params.get("Command")
        self._Ip = params.get("Ip")
        self._UpdateTime = params.get("UpdateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetWebLocationPath(AbstractModel):
    """资产管理Web站点虚拟目录

    """

    def __init__(self):
        r"""
        :param _VirtualPath: 虚拟路径
        :type VirtualPath: str
        :param _RealPath: 物理路径
        :type RealPath: str
        :param _User: 文件所有者
        :type User: str
        :param _Group: 文件所属组
        :type Group: str
        :param _Permission: 文件权限
        :type Permission: str
        """
        self._VirtualPath = None
        self._RealPath = None
        self._User = None
        self._Group = None
        self._Permission = None

    @property
    def VirtualPath(self):
        return self._VirtualPath

    @VirtualPath.setter
    def VirtualPath(self, VirtualPath):
        self._VirtualPath = VirtualPath

    @property
    def RealPath(self):
        return self._RealPath

    @RealPath.setter
    def RealPath(self, RealPath):
        self._RealPath = RealPath

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Group(self):
        return self._Group

    @Group.setter
    def Group(self, Group):
        self._Group = Group

    @property
    def Permission(self):
        return self._Permission

    @Permission.setter
    def Permission(self, Permission):
        self._Permission = Permission


    def _deserialize(self, params):
        self._VirtualPath = params.get("VirtualPath")
        self._RealPath = params.get("RealPath")
        self._User = params.get("User")
        self._Group = params.get("Group")
        self._Permission = params.get("Permission")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AssetWebServiceBaseInfo(AbstractModel):
    """资源管理Web服务列表信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _OsInfo: 操作系统信息
        :type OsInfo: str
        :param _ProjectId: 主机业务组ID
        :type ProjectId: int
        :param _Tag: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _Name: 数据库名
        :type Name: str
        :param _Version: 版本
        :type Version: str
        :param _BinPath: 二进制路径
        :type BinPath: str
        :param _User: 启动用户
        :type User: str
        :param _InstallPath: 安装路径
        :type InstallPath: str
        :param _ConfigPath: 配置路径
        :type ConfigPath: str
        :param _ProcessCount: 关联进程数
        :type ProcessCount: int
        :param _Id: Web服务ID
        :type Id: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _Desc: 描述
        :type Desc: str
        :param _UpdateTime: 数据更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _FirstTime: 首次采集时间
        :type FirstTime: str
        :param _IsNew: 是否新增[0:否|1:是]
        :type IsNew: int
        :param _MachineExtraInfo:  附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineIp = None
        self._MachineWanIp = None
        self._Quuid = None
        self._Uuid = None
        self._OsInfo = None
        self._ProjectId = None
        self._Tag = None
        self._Name = None
        self._Version = None
        self._BinPath = None
        self._User = None
        self._InstallPath = None
        self._ConfigPath = None
        self._ProcessCount = None
        self._Id = None
        self._MachineName = None
        self._Desc = None
        self._UpdateTime = None
        self._FirstTime = None
        self._IsNew = None
        self._MachineExtraInfo = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def OsInfo(self):
        return self._OsInfo

    @OsInfo.setter
    def OsInfo(self, OsInfo):
        self._OsInfo = OsInfo

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def BinPath(self):
        return self._BinPath

    @BinPath.setter
    def BinPath(self, BinPath):
        self._BinPath = BinPath

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def InstallPath(self):
        return self._InstallPath

    @InstallPath.setter
    def InstallPath(self, InstallPath):
        self._InstallPath = InstallPath

    @property
    def ConfigPath(self):
        return self._ConfigPath

    @ConfigPath.setter
    def ConfigPath(self, ConfigPath):
        self._ConfigPath = ConfigPath

    @property
    def ProcessCount(self):
        return self._ProcessCount

    @ProcessCount.setter
    def ProcessCount(self, ProcessCount):
        self._ProcessCount = ProcessCount

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def IsNew(self):
        return self._IsNew

    @IsNew.setter
    def IsNew(self, IsNew):
        self._IsNew = IsNew

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._OsInfo = params.get("OsInfo")
        self._ProjectId = params.get("ProjectId")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Name = params.get("Name")
        self._Version = params.get("Version")
        self._BinPath = params.get("BinPath")
        self._User = params.get("User")
        self._InstallPath = params.get("InstallPath")
        self._ConfigPath = params.get("ConfigPath")
        self._ProcessCount = params.get("ProcessCount")
        self._Id = params.get("Id")
        self._MachineName = params.get("MachineName")
        self._Desc = params.get("Desc")
        self._UpdateTime = params.get("UpdateTime")
        self._FirstTime = params.get("FirstTime")
        self._IsNew = params.get("IsNew")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AttackSource(AbstractModel):
    """攻击溯源

    """

    def __init__(self):
        r"""
        :param _Nodes: 攻击溯源节点描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Nodes: list of AttackSourceNode
        :param _Edges: 攻击溯源节点路径
注意：此字段可能返回 null，表示取不到有效值。
        :type Edges: list of AttackSourceEdge
        :param _EventInfoParam: 请求节点相关事件详情的参数
注意：此字段可能返回 null，表示取不到有效值。
        :type EventInfoParam: str
        """
        self._Nodes = None
        self._Edges = None
        self._EventInfoParam = None

    @property
    def Nodes(self):
        return self._Nodes

    @Nodes.setter
    def Nodes(self, Nodes):
        self._Nodes = Nodes

    @property
    def Edges(self):
        return self._Edges

    @Edges.setter
    def Edges(self, Edges):
        self._Edges = Edges

    @property
    def EventInfoParam(self):
        return self._EventInfoParam

    @EventInfoParam.setter
    def EventInfoParam(self, EventInfoParam):
        self._EventInfoParam = EventInfoParam


    def _deserialize(self, params):
        if params.get("Nodes") is not None:
            self._Nodes = []
            for item in params.get("Nodes"):
                obj = AttackSourceNode()
                obj._deserialize(item)
                self._Nodes.append(obj)
        if params.get("Edges") is not None:
            self._Edges = []
            for item in params.get("Edges"):
                obj = AttackSourceEdge()
                obj._deserialize(item)
                self._Edges.append(obj)
        self._EventInfoParam = params.get("EventInfoParam")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AttackSourceEdge(AbstractModel):
    """攻击溯源路线描述

    """

    def __init__(self):
        r"""
        :param _From: 出发节点
        :type From: str
        :param _To: 目标节点
        :type To: str
        """
        self._From = None
        self._To = None

    @property
    def From(self):
        return self._From

    @From.setter
    def From(self, From):
        self._From = From

    @property
    def To(self):
        return self._To

    @To.setter
    def To(self, To):
        self._To = To


    def _deserialize(self, params):
        self._From = params.get("From")
        self._To = params.get("To")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AttackSourceEvent(AbstractModel):
    """攻击溯源事件

    """

    def __init__(self):
        r"""
        :param _EventType: 事件类型：0：文件查杀，1：异常登录， 2：密码破解，3：恶意请求，4：高危命令
        :type EventType: int
        :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: str
        :param _CreatedTime: 入侵时间
        :type CreatedTime: str
        :param _Level: 等级 事件统一等级 0：提示，1：低危,  2：中危,  3：高危,  4：严重
        :type Level: int
        :param _LevelZh: 等级中文展示字符串
        :type LevelZh: str
        :param _Id: 事件id
        :type Id: int
        :param _Uuid: 主机uuid
        :type Uuid: str
        """
        self._EventType = None
        self._Content = None
        self._CreatedTime = None
        self._Level = None
        self._LevelZh = None
        self._Id = None
        self._Uuid = None

    @property
    def EventType(self):
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def Content(self):
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def LevelZh(self):
        return self._LevelZh

    @LevelZh.setter
    def LevelZh(self, LevelZh):
        self._LevelZh = LevelZh

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._EventType = params.get("EventType")
        self._Content = params.get("Content")
        self._CreatedTime = params.get("CreatedTime")
        self._Level = params.get("Level")
        self._LevelZh = params.get("LevelZh")
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AttackSourceNode(AbstractModel):
    """攻击溯源节点

    """

    def __init__(self):
        r"""
        :param _EventId: 事件ID，为空的时候表示没有对应事件
        :type EventId: int
        :param _EventType: BRUTEFORCE:密码破解、MALWARE:木马、BASH:高危命令、RISK_DNS:恶意请求、LOGIN:异地登录、HOST:主机节点, TIME_ORDER：通用节点
        :type EventType: str
        :param _Ip: 节点ip 当节点为HOST时
        :type Ip: str
        :param _Level: 等级  0：提示，1：低危,  2：中危,  3：高危,  4：严重
        :type Level: int
        :param _NodeId: 节点ID
        :type NodeId: str
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        :param _NodeDesc: 通用节点的描述
        :type NodeDesc: str
        :param _TimeLineNum: 时间线编号，同一个编号的节点属于同一个时间线
        :type TimeLineNum: int
        :param _NodeDetail: 节点详情
        :type NodeDetail: str
        """
        self._EventId = None
        self._EventType = None
        self._Ip = None
        self._Level = None
        self._NodeId = None
        self._StartTime = None
        self._EndTime = None
        self._NodeDesc = None
        self._TimeLineNum = None
        self._NodeDetail = None

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def EventType(self):
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def NodeId(self):
        return self._NodeId

    @NodeId.setter
    def NodeId(self, NodeId):
        self._NodeId = NodeId

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def NodeDesc(self):
        return self._NodeDesc

    @NodeDesc.setter
    def NodeDesc(self, NodeDesc):
        self._NodeDesc = NodeDesc

    @property
    def TimeLineNum(self):
        return self._TimeLineNum

    @TimeLineNum.setter
    def TimeLineNum(self, TimeLineNum):
        self._TimeLineNum = TimeLineNum

    @property
    def NodeDetail(self):
        return self._NodeDetail

    @NodeDetail.setter
    def NodeDetail(self, NodeDetail):
        self._NodeDetail = NodeDetail


    def _deserialize(self, params):
        self._EventId = params.get("EventId")
        self._EventType = params.get("EventType")
        self._Ip = params.get("Ip")
        self._Level = params.get("Level")
        self._NodeId = params.get("NodeId")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._NodeDesc = params.get("NodeDesc")
        self._TimeLineNum = params.get("TimeLineNum")
        self._NodeDetail = params.get("NodeDetail")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BanWhiteList(AbstractModel):
    """阻断白名单规则

    """

    def __init__(self):
        r"""
        :param _Id: 白名单ID。
        :type Id: str
        :param _Remark: 白名单别名。
        :type Remark: str
        :param _SrcIp: 阻断来源IP。
        :type SrcIp: str
        :param _ModifyTime: 修改白名单时间。
        :type ModifyTime: str
        :param _CreateTime: 创建白名单时间。
        :type CreateTime: str
        :param _Uuid: 白名单所属机器。
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _IsGlobal: 白名单是否全局
注意：此字段可能返回 null，表示取不到有效值。
        :type IsGlobal: bool
        :param _Quuids: 白名单所属机器列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuids: list of str
        """
        self._Id = None
        self._Remark = None
        self._SrcIp = None
        self._ModifyTime = None
        self._CreateTime = None
        self._Uuid = None
        self._IsGlobal = None
        self._Quuids = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Remark = params.get("Remark")
        self._SrcIp = params.get("SrcIp")
        self._ModifyTime = params.get("ModifyTime")
        self._CreateTime = params.get("CreateTime")
        self._Uuid = params.get("Uuid")
        self._IsGlobal = params.get("IsGlobal")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BanWhiteListDetail(AbstractModel):
    """阻断白名单展示列表，包含了机器的信息

    """

    def __init__(self):
        r"""
        :param _Id: 白名单ID
        :type Id: str
        :param _Remark: 白名单别名
        :type Remark: str
        :param _SrcIp: 阻断来源IP
        :type SrcIp: str
        :param _ModifyTime: 修改白名单时间
        :type ModifyTime: str
        :param _CreateTime: 创建白名单时间
        :type CreateTime: str
        :param _IsGlobal: 白名单是否全局
        :type IsGlobal: bool
        :param _Quuid: 机器的UUID
        :type Quuid: str
        :param _Uuid: 主机安全程序的UUID
        :type Uuid: str
        :param _MachineIp: 机器IP
        :type MachineIp: str
        :param _MachineName: 机器名称
        :type MachineName: str
        """
        self._Id = None
        self._Remark = None
        self._SrcIp = None
        self._ModifyTime = None
        self._CreateTime = None
        self._IsGlobal = None
        self._Quuid = None
        self._Uuid = None
        self._MachineIp = None
        self._MachineName = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Remark = params.get("Remark")
        self._SrcIp = params.get("SrcIp")
        self._ModifyTime = params.get("ModifyTime")
        self._CreateTime = params.get("CreateTime")
        self._IsGlobal = params.get("IsGlobal")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineBasicInfo(AbstractModel):
    """基线基础信息

    """

    def __init__(self):
        r"""
        :param _Name: 基线名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _BaselineId: 基线id
注意：此字段可能返回 null，表示取不到有效值。
        :type BaselineId: int
        :param _ParentId: 父级id
注意：此字段可能返回 null，表示取不到有效值。
        :type ParentId: int
        """
        self._Name = None
        self._BaselineId = None
        self._ParentId = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def BaselineId(self):
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId

    @property
    def ParentId(self):
        return self._ParentId

    @ParentId.setter
    def ParentId(self, ParentId):
        self._ParentId = ParentId


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._BaselineId = params.get("BaselineId")
        self._ParentId = params.get("ParentId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineCategory(AbstractModel):
    """基线规则或项的分类

    """

    def __init__(self):
        r"""
        :param _CategoryId: 分类Id
        :type CategoryId: int
        :param _CategoryName: 分类名称
        :type CategoryName: str
        :param _ParentCategoryId: 父分类ID,如果为0则没有父分类
        :type ParentCategoryId: int
        """
        self._CategoryId = None
        self._CategoryName = None
        self._ParentCategoryId = None

    @property
    def CategoryId(self):
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def CategoryName(self):
        return self._CategoryName

    @CategoryName.setter
    def CategoryName(self, CategoryName):
        self._CategoryName = CategoryName

    @property
    def ParentCategoryId(self):
        return self._ParentCategoryId

    @ParentCategoryId.setter
    def ParentCategoryId(self, ParentCategoryId):
        self._ParentCategoryId = ParentCategoryId


    def _deserialize(self, params):
        self._CategoryId = params.get("CategoryId")
        self._CategoryName = params.get("CategoryName")
        self._ParentCategoryId = params.get("ParentCategoryId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineCustomRuleIdName(AbstractModel):
    """基线自定规则ID和名字

    """

    def __init__(self):
        r"""
        :param _RuleId: 自定义规则ID　
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleId: int
        :param _RuleName: 自定义规则名字
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleName: str
        """
        self._RuleId = None
        self._RuleName = None

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName


    def _deserialize(self, params):
        self._RuleId = params.get("RuleId")
        self._RuleName = params.get("RuleName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineDetail(AbstractModel):
    """基线详情

    """

    def __init__(self):
        r"""
        :param _Description: 基线描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _Level: 危害等级
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _PackageName: package名
注意：此字段可能返回 null，表示取不到有效值。
        :type PackageName: str
        :param _ParentId: 父级id
注意：此字段可能返回 null，表示取不到有效值。
        :type ParentId: int
        :param _Name: 基线名
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        """
        self._Description = None
        self._Level = None
        self._PackageName = None
        self._ParentId = None
        self._Name = None

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def PackageName(self):
        return self._PackageName

    @PackageName.setter
    def PackageName(self, PackageName):
        self._PackageName = PackageName

    @property
    def ParentId(self):
        return self._ParentId

    @ParentId.setter
    def ParentId(self, ParentId):
        self._ParentId = ParentId

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Description = params.get("Description")
        self._Level = params.get("Level")
        self._PackageName = params.get("PackageName")
        self._ParentId = params.get("ParentId")
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineDetectParam(AbstractModel):
    """基线扫描参数

    """

    def __init__(self):
        r"""
        :param _PolicyIds: 检测的策略集合
        :type PolicyIds: list of int
        :param _RuleIds: 检测的规则集合
        :type RuleIds: list of int
        :param _ItemIds: 检测项集合
        :type ItemIds: list of int
        :param _HostIds: 检测的主机ID集合
        :type HostIds: list of str
        """
        self._PolicyIds = None
        self._RuleIds = None
        self._ItemIds = None
        self._HostIds = None

    @property
    def PolicyIds(self):
        return self._PolicyIds

    @PolicyIds.setter
    def PolicyIds(self, PolicyIds):
        self._PolicyIds = PolicyIds

    @property
    def RuleIds(self):
        return self._RuleIds

    @RuleIds.setter
    def RuleIds(self, RuleIds):
        self._RuleIds = RuleIds

    @property
    def ItemIds(self):
        return self._ItemIds

    @ItemIds.setter
    def ItemIds(self, ItemIds):
        self._ItemIds = ItemIds

    @property
    def HostIds(self):
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds


    def _deserialize(self, params):
        self._PolicyIds = params.get("PolicyIds")
        self._RuleIds = params.get("RuleIds")
        self._ItemIds = params.get("ItemIds")
        self._HostIds = params.get("HostIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineDownload(AbstractModel):
    """基线导出结果下载

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务Id
        :type TaskId: int
        :param _TaskName: 任务名称
        :type TaskName: str
        :param _Status: 状态0:未完成 1:完成
        :type Status: int
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 完成时间
        :type EndTime: str
        :param _DownloadUrl: 下载地址
        :type DownloadUrl: str
        """
        self._TaskId = None
        self._TaskName = None
        self._Status = None
        self._StartTime = None
        self._EndTime = None
        self._DownloadUrl = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def TaskName(self):
        return self._TaskName

    @TaskName.setter
    def TaskName(self, TaskName):
        self._TaskName = TaskName

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._TaskName = params.get("TaskName")
        self._Status = params.get("Status")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._DownloadUrl = params.get("DownloadUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineEffectHost(AbstractModel):
    """基线影响主机信息

    """

    def __init__(self):
        r"""
        :param _PassCount: 通过项
注意：此字段可能返回 null，表示取不到有效值。
        :type PassCount: int
        :param _FailCount: 风险项
注意：此字段可能返回 null，表示取不到有效值。
        :type FailCount: int
        :param _FirstScanTime: 首次检测事件
注意：此字段可能返回 null，表示取不到有效值。
        :type FirstScanTime: str
        :param _LastScanTime: 最后检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LastScanTime: str
        :param _Status: 风险项处理状态状态：0-未通过，1-通过
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _Quuid: 主机Quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _HostIp: 主机IP
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIp: str
        :param _AliasName: 主机别名
注意：此字段可能返回 null，表示取不到有效值。
        :type AliasName: str
        :param _Uuid: 主机Uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _MaxStatus: 检测中状态
注意：此字段可能返回 null，表示取不到有效值。
        :type MaxStatus: int
        """
        self._PassCount = None
        self._FailCount = None
        self._FirstScanTime = None
        self._LastScanTime = None
        self._Status = None
        self._Quuid = None
        self._HostIp = None
        self._AliasName = None
        self._Uuid = None
        self._MaxStatus = None

    @property
    def PassCount(self):
        return self._PassCount

    @PassCount.setter
    def PassCount(self, PassCount):
        self._PassCount = PassCount

    @property
    def FailCount(self):
        return self._FailCount

    @FailCount.setter
    def FailCount(self, FailCount):
        self._FailCount = FailCount

    @property
    def FirstScanTime(self):
        return self._FirstScanTime

    @FirstScanTime.setter
    def FirstScanTime(self, FirstScanTime):
        self._FirstScanTime = FirstScanTime

    @property
    def LastScanTime(self):
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def AliasName(self):
        return self._AliasName

    @AliasName.setter
    def AliasName(self, AliasName):
        self._AliasName = AliasName

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MaxStatus(self):
        return self._MaxStatus

    @MaxStatus.setter
    def MaxStatus(self, MaxStatus):
        self._MaxStatus = MaxStatus


    def _deserialize(self, params):
        self._PassCount = params.get("PassCount")
        self._FailCount = params.get("FailCount")
        self._FirstScanTime = params.get("FirstScanTime")
        self._LastScanTime = params.get("LastScanTime")
        self._Status = params.get("Status")
        self._Quuid = params.get("Quuid")
        self._HostIp = params.get("HostIp")
        self._AliasName = params.get("AliasName")
        self._Uuid = params.get("Uuid")
        self._MaxStatus = params.get("MaxStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineEventLevelInfo(AbstractModel):
    """服务器风险Top的主机信息

    """

    def __init__(self):
        r"""
        :param _EventLevel: 危害等级：1-低危；2-中危；3-高危；4-严重
注意：此字段可能返回 null，表示取不到有效值。
        :type EventLevel: int
        :param _EventCount: 漏洞数量
注意：此字段可能返回 null，表示取不到有效值。
        :type EventCount: int
        """
        self._EventLevel = None
        self._EventCount = None

    @property
    def EventLevel(self):
        return self._EventLevel

    @EventLevel.setter
    def EventLevel(self, EventLevel):
        self._EventLevel = EventLevel

    @property
    def EventCount(self):
        return self._EventCount

    @EventCount.setter
    def EventCount(self, EventCount):
        self._EventCount = EventCount


    def _deserialize(self, params):
        self._EventLevel = params.get("EventLevel")
        self._EventCount = params.get("EventCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineFix(AbstractModel):
    """基线密码修复

    """

    def __init__(self):
        r"""
        :param _ItemName: 修复项名称
        :type ItemName: str
        :param _HostIp: 主机Ip
        :type HostIp: str
        :param _CreateTime: 首次检测时间
        :type CreateTime: str
        :param _ModifyTime: 最后检测时间
        :type ModifyTime: str
        :param _FixTime: 修复时间
        :type FixTime: str
        :param _Id: 基线检测项结果ID
        :type Id: int
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._ItemName = None
        self._HostIp = None
        self._CreateTime = None
        self._ModifyTime = None
        self._FixTime = None
        self._Id = None
        self._MachineExtraInfo = None

    @property
    def ItemName(self):
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def FixTime(self):
        return self._FixTime

    @FixTime.setter
    def FixTime(self, FixTime):
        self._FixTime = FixTime

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._ItemName = params.get("ItemName")
        self._HostIp = params.get("HostIp")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._FixTime = params.get("FixTime")
        self._Id = params.get("Id")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineHost(AbstractModel):
    """基线主机信息

    """

    def __init__(self):
        r"""
        :param _HostId: 主机Id
        :type HostId: str
        :param _HostName: 主机名称
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        :param _HostTag: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type HostTag: str
        :param _HostIp: 内网Ip
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIp: str
        :param _WanIp: 外网Ip
注意：此字段可能返回 null，表示取不到有效值。
        :type WanIp: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._HostId = None
        self._HostName = None
        self._HostTag = None
        self._HostIp = None
        self._WanIp = None
        self._MachineExtraInfo = None

    @property
    def HostId(self):
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostTag(self):
        return self._HostTag

    @HostTag.setter
    def HostTag(self, HostTag):
        self._HostTag = HostTag

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._HostId = params.get("HostId")
        self._HostName = params.get("HostName")
        self._HostTag = params.get("HostTag")
        self._HostIp = params.get("HostIp")
        self._WanIp = params.get("WanIp")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineHostDetect(AbstractModel):
    """基线主机检测

    """

    def __init__(self):
        r"""
        :param _HostId: 主机Id
        :type HostId: str
        :param _HostIp: 内网Ip
        :type HostIp: str
        :param _HostName: 主机名称
        :type HostName: str
        :param _WanIp: 外网Ip
        :type WanIp: str
        :param _DetectStatus: 0:未通过 1:忽略 3:通过 5:检测中
        :type DetectStatus: int
        :param _PassedItemCount: 检测通过数
        :type PassedItemCount: int
        :param _ItemCount: 关联检测项数
        :type ItemCount: int
        :param _NotPassedItemCount: 检测未通过数
        :type NotPassedItemCount: int
        :param _FirstTime: 首次检测时间
        :type FirstTime: str
        :param _LastTime: 最后检测时间
        :type LastTime: str
        :param _Uuid: 主机安全UUID
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._HostId = None
        self._HostIp = None
        self._HostName = None
        self._WanIp = None
        self._DetectStatus = None
        self._PassedItemCount = None
        self._ItemCount = None
        self._NotPassedItemCount = None
        self._FirstTime = None
        self._LastTime = None
        self._Uuid = None
        self._MachineExtraInfo = None

    @property
    def HostId(self):
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def WanIp(self):
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def DetectStatus(self):
        return self._DetectStatus

    @DetectStatus.setter
    def DetectStatus(self, DetectStatus):
        self._DetectStatus = DetectStatus

    @property
    def PassedItemCount(self):
        return self._PassedItemCount

    @PassedItemCount.setter
    def PassedItemCount(self, PassedItemCount):
        self._PassedItemCount = PassedItemCount

    @property
    def ItemCount(self):
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount

    @property
    def NotPassedItemCount(self):
        return self._NotPassedItemCount

    @NotPassedItemCount.setter
    def NotPassedItemCount(self, NotPassedItemCount):
        self._NotPassedItemCount = NotPassedItemCount

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def LastTime(self):
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._HostId = params.get("HostId")
        self._HostIp = params.get("HostIp")
        self._HostName = params.get("HostName")
        self._WanIp = params.get("WanIp")
        self._DetectStatus = params.get("DetectStatus")
        self._PassedItemCount = params.get("PassedItemCount")
        self._ItemCount = params.get("ItemCount")
        self._NotPassedItemCount = params.get("NotPassedItemCount")
        self._FirstTime = params.get("FirstTime")
        self._LastTime = params.get("LastTime")
        self._Uuid = params.get("Uuid")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineHostTopList(AbstractModel):
    """基线影响服务器列表数据

    """

    def __init__(self):
        r"""
        :param _EventLevelList: 事件等级与次数列表
注意：此字段可能返回 null，表示取不到有效值。
        :type EventLevelList: list of BaselineEventLevelInfo
        :param _HostName: 主机名称
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        :param _Quuid: 主机Quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _Score: 计算权重的分数
注意：此字段可能返回 null，表示取不到有效值。
        :type Score: int
        """
        self._EventLevelList = None
        self._HostName = None
        self._Quuid = None
        self._Score = None

    @property
    def EventLevelList(self):
        return self._EventLevelList

    @EventLevelList.setter
    def EventLevelList(self, EventLevelList):
        self._EventLevelList = EventLevelList

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Score(self):
        return self._Score

    @Score.setter
    def Score(self, Score):
        self._Score = Score


    def _deserialize(self, params):
        if params.get("EventLevelList") is not None:
            self._EventLevelList = []
            for item in params.get("EventLevelList"):
                obj = BaselineEventLevelInfo()
                obj._deserialize(item)
                self._EventLevelList.append(obj)
        self._HostName = params.get("HostName")
        self._Quuid = params.get("Quuid")
        self._Score = params.get("Score")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineInfo(AbstractModel):
    """基线信息

    """

    def __init__(self):
        r"""
        :param _Name: 基线名
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _Level: 危害等级：1-低危；2-中危；3-高危；4-严重
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _RuleCount: 检测项数量
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleCount: int
        :param _HostCount: 影响服务器数量
注意：此字段可能返回 null，表示取不到有效值。
        :type HostCount: int
        :param _Status: 通过状态:0:未通过,1:已通过
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _CategoryId: 基线id
注意：此字段可能返回 null，表示取不到有效值。
        :type CategoryId: int
        :param _LastScanTime: 最后检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LastScanTime: str
        :param _MaxStatus: 检测中状态: 5
注意：此字段可能返回 null，表示取不到有效值。
        :type MaxStatus: int
        :param _BaselineFailCount: 基线风险项
注意：此字段可能返回 null，表示取不到有效值。
        :type BaselineFailCount: int
        """
        self._Name = None
        self._Level = None
        self._RuleCount = None
        self._HostCount = None
        self._Status = None
        self._CategoryId = None
        self._LastScanTime = None
        self._MaxStatus = None
        self._BaselineFailCount = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def RuleCount(self):
        return self._RuleCount

    @RuleCount.setter
    def RuleCount(self, RuleCount):
        self._RuleCount = RuleCount

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CategoryId(self):
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def LastScanTime(self):
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def MaxStatus(self):
        return self._MaxStatus

    @MaxStatus.setter
    def MaxStatus(self, MaxStatus):
        self._MaxStatus = MaxStatus

    @property
    def BaselineFailCount(self):
        return self._BaselineFailCount

    @BaselineFailCount.setter
    def BaselineFailCount(self, BaselineFailCount):
        self._BaselineFailCount = BaselineFailCount


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Level = params.get("Level")
        self._RuleCount = params.get("RuleCount")
        self._HostCount = params.get("HostCount")
        self._Status = params.get("Status")
        self._CategoryId = params.get("CategoryId")
        self._LastScanTime = params.get("LastScanTime")
        self._MaxStatus = params.get("MaxStatus")
        self._BaselineFailCount = params.get("BaselineFailCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineItem(AbstractModel):
    """基线项

    """

    def __init__(self):
        r"""
        :param _ItemId: 项Id
        :type ItemId: int
        :param _ItemName: 项名称
        :type ItemName: str
        :param _CategoryId: 检测项分类
        :type CategoryId: int
        :param _ItemDesc: 项描述
        :type ItemDesc: str
        :param _FixMethod: 修复方法
        :type FixMethod: str
        :param _RuleName: 所属规则
        :type RuleName: str
        :param _DetectResultDesc: 检测结果描述
注意：此字段可能返回 null，表示取不到有效值。
        :type DetectResultDesc: str
        :param _Level: 危险等级
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _DetectStatus: 检测状态：0 未通过，1：忽略，3：通过，5：检测中
注意：此字段可能返回 null，表示取不到有效值。
        :type DetectStatus: int
        :param _HostId: 主机ID
注意：此字段可能返回 null，表示取不到有效值。
        :type HostId: str
        :param _HostName: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        :param _HostIp: 主机IP
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIp: str
        :param _WanIp: 外网IP
注意：此字段可能返回 null，表示取不到有效值。
        :type WanIp: str
        :param _FirstTime: 第一次出现时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FirstTime: str
        :param _LastTime: 最近出现时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LastTime: str
        :param _CanBeFixed: 是否可以修复
注意：此字段可能返回 null，表示取不到有效值。
        :type CanBeFixed: int
        :param _Uuid: 主机安全uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._ItemId = None
        self._ItemName = None
        self._CategoryId = None
        self._ItemDesc = None
        self._FixMethod = None
        self._RuleName = None
        self._DetectResultDesc = None
        self._Level = None
        self._DetectStatus = None
        self._HostId = None
        self._HostName = None
        self._HostIp = None
        self._WanIp = None
        self._FirstTime = None
        self._LastTime = None
        self._CanBeFixed = None
        self._Uuid = None
        self._MachineExtraInfo = None

    @property
    def ItemId(self):
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def CategoryId(self):
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def ItemDesc(self):
        return self._ItemDesc

    @ItemDesc.setter
    def ItemDesc(self, ItemDesc):
        self._ItemDesc = ItemDesc

    @property
    def FixMethod(self):
        return self._FixMethod

    @FixMethod.setter
    def FixMethod(self, FixMethod):
        self._FixMethod = FixMethod

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def DetectResultDesc(self):
        return self._DetectResultDesc

    @DetectResultDesc.setter
    def DetectResultDesc(self, DetectResultDesc):
        self._DetectResultDesc = DetectResultDesc

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def DetectStatus(self):
        return self._DetectStatus

    @DetectStatus.setter
    def DetectStatus(self, DetectStatus):
        self._DetectStatus = DetectStatus

    @property
    def HostId(self):
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def LastTime(self):
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def CanBeFixed(self):
        return self._CanBeFixed

    @CanBeFixed.setter
    def CanBeFixed(self, CanBeFixed):
        self._CanBeFixed = CanBeFixed

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._ItemId = params.get("ItemId")
        self._ItemName = params.get("ItemName")
        self._CategoryId = params.get("CategoryId")
        self._ItemDesc = params.get("ItemDesc")
        self._FixMethod = params.get("FixMethod")
        self._RuleName = params.get("RuleName")
        self._DetectResultDesc = params.get("DetectResultDesc")
        self._Level = params.get("Level")
        self._DetectStatus = params.get("DetectStatus")
        self._HostId = params.get("HostId")
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._WanIp = params.get("WanIp")
        self._FirstTime = params.get("FirstTime")
        self._LastTime = params.get("LastTime")
        self._CanBeFixed = params.get("CanBeFixed")
        self._Uuid = params.get("Uuid")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineItemDetect(AbstractModel):
    """基线检测项

    """

    def __init__(self):
        r"""
        :param _ItemId: 项Id
注意：此字段可能返回 null，表示取不到有效值。
        :type ItemId: int
        :param _ItemName: 项名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ItemName: str
        :param _ItemDesc: 项描述
注意：此字段可能返回 null，表示取不到有效值。
        :type ItemDesc: str
        :param _FixMethod: 修复方法
注意：此字段可能返回 null，表示取不到有效值。
        :type FixMethod: str
        :param _RuleName: 所属规则
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleName: str
        :param _DetectStatus: 0:未通过 1:忽略 3:通过 5:检测中
注意：此字段可能返回 null，表示取不到有效值。
        :type DetectStatus: int
        :param _Level: 风险等级
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _HostCount: 影响服务器数
注意：此字段可能返回 null，表示取不到有效值。
        :type HostCount: int
        :param _FirstTime: 首次检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FirstTime: str
        :param _LastTime: 最后检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LastTime: str
        :param _DetectResult: 检测结果,Json字符串
注意：此字段可能返回 null，表示取不到有效值。
        :type DetectResult: str
        :param _RuleId: 所属规则ID
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleId: int
        :param _PassedHostCount: 通过的服务器数
注意：此字段可能返回 null，表示取不到有效值。
        :type PassedHostCount: int
        :param _NotPassedHostCount: 未通过的服务器数
注意：此字段可能返回 null，表示取不到有效值。
        :type NotPassedHostCount: int
        """
        self._ItemId = None
        self._ItemName = None
        self._ItemDesc = None
        self._FixMethod = None
        self._RuleName = None
        self._DetectStatus = None
        self._Level = None
        self._HostCount = None
        self._FirstTime = None
        self._LastTime = None
        self._DetectResult = None
        self._RuleId = None
        self._PassedHostCount = None
        self._NotPassedHostCount = None

    @property
    def ItemId(self):
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def ItemDesc(self):
        return self._ItemDesc

    @ItemDesc.setter
    def ItemDesc(self, ItemDesc):
        self._ItemDesc = ItemDesc

    @property
    def FixMethod(self):
        return self._FixMethod

    @FixMethod.setter
    def FixMethod(self, FixMethod):
        self._FixMethod = FixMethod

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def DetectStatus(self):
        return self._DetectStatus

    @DetectStatus.setter
    def DetectStatus(self, DetectStatus):
        self._DetectStatus = DetectStatus

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def LastTime(self):
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def DetectResult(self):
        return self._DetectResult

    @DetectResult.setter
    def DetectResult(self, DetectResult):
        self._DetectResult = DetectResult

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def PassedHostCount(self):
        return self._PassedHostCount

    @PassedHostCount.setter
    def PassedHostCount(self, PassedHostCount):
        self._PassedHostCount = PassedHostCount

    @property
    def NotPassedHostCount(self):
        return self._NotPassedHostCount

    @NotPassedHostCount.setter
    def NotPassedHostCount(self, NotPassedHostCount):
        self._NotPassedHostCount = NotPassedHostCount


    def _deserialize(self, params):
        self._ItemId = params.get("ItemId")
        self._ItemName = params.get("ItemName")
        self._ItemDesc = params.get("ItemDesc")
        self._FixMethod = params.get("FixMethod")
        self._RuleName = params.get("RuleName")
        self._DetectStatus = params.get("DetectStatus")
        self._Level = params.get("Level")
        self._HostCount = params.get("HostCount")
        self._FirstTime = params.get("FirstTime")
        self._LastTime = params.get("LastTime")
        self._DetectResult = params.get("DetectResult")
        self._RuleId = params.get("RuleId")
        self._PassedHostCount = params.get("PassedHostCount")
        self._NotPassedHostCount = params.get("NotPassedHostCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineItemInfo(AbstractModel):
    """基线信息

    """

    def __init__(self):
        r"""
        :param _ItemId: 基线检测项ID
        :type ItemId: int
        :param _ItemName: 检测项名字
        :type ItemName: str
        :param _RuleId: 检测项所属规则的ID
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleId: int
        :param _ItemDesc: 检测项描述
        :type ItemDesc: str
        :param _FixMethod: 检测项的修复方法
        :type FixMethod: str
        :param _RuleName: 检测项所属规则名字
        :type RuleName: str
        :param _Level: 危险等级
        :type Level: int
        :param _SysRuleId: 系统规则ID
注意：此字段可能返回 null，表示取不到有效值。
        :type SysRuleId: int
        :param _RelatedCustomRuleInfo: 被引自定义规则信息
注意：此字段可能返回 null，表示取不到有效值。
        :type RelatedCustomRuleInfo: list of BaselineCustomRuleIdName
        """
        self._ItemId = None
        self._ItemName = None
        self._RuleId = None
        self._ItemDesc = None
        self._FixMethod = None
        self._RuleName = None
        self._Level = None
        self._SysRuleId = None
        self._RelatedCustomRuleInfo = None

    @property
    def ItemId(self):
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def ItemDesc(self):
        return self._ItemDesc

    @ItemDesc.setter
    def ItemDesc(self, ItemDesc):
        self._ItemDesc = ItemDesc

    @property
    def FixMethod(self):
        return self._FixMethod

    @FixMethod.setter
    def FixMethod(self, FixMethod):
        self._FixMethod = FixMethod

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def SysRuleId(self):
        return self._SysRuleId

    @SysRuleId.setter
    def SysRuleId(self, SysRuleId):
        self._SysRuleId = SysRuleId

    @property
    def RelatedCustomRuleInfo(self):
        return self._RelatedCustomRuleInfo

    @RelatedCustomRuleInfo.setter
    def RelatedCustomRuleInfo(self, RelatedCustomRuleInfo):
        self._RelatedCustomRuleInfo = RelatedCustomRuleInfo


    def _deserialize(self, params):
        self._ItemId = params.get("ItemId")
        self._ItemName = params.get("ItemName")
        self._RuleId = params.get("RuleId")
        self._ItemDesc = params.get("ItemDesc")
        self._FixMethod = params.get("FixMethod")
        self._RuleName = params.get("RuleName")
        self._Level = params.get("Level")
        self._SysRuleId = params.get("SysRuleId")
        if params.get("RelatedCustomRuleInfo") is not None:
            self._RelatedCustomRuleInfo = []
            for item in params.get("RelatedCustomRuleInfo"):
                obj = BaselineCustomRuleIdName()
                obj._deserialize(item)
                self._RelatedCustomRuleInfo.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselinePolicy(AbstractModel):
    """基线策略信息

    """

    def __init__(self):
        r"""
        :param _PolicyName: 策略名称,长度不超过128英文字符
        :type PolicyName: str
        :param _DetectInterval: 检测间隔[1:1天|3:3天|5:5天|7:7天]
        :type DetectInterval: int
        :param _DetectTime: 检测时间
        :type DetectTime: str
        :param _IsEnabled: 是否开启[0:未开启|1:开启]
        :type IsEnabled: int
        :param _AssetType: 资产类型[0:所有专业版旗舰版|1:id|2:ip]
        :type AssetType: int
        :param _PolicyId: 策略Id
        :type PolicyId: int
        :param _RuleCount: 关联基线项数目
        :type RuleCount: int
        :param _ItemCount: 关联基线项数目
        :type ItemCount: int
        :param _HostCount: 关联基线主机数目
        :type HostCount: int
        :param _RuleIds: 规则Id
        :type RuleIds: list of int
        :param _HostIds: 主机Id
        :type HostIds: list of str
        :param _HostIps: 主机Ip
        :type HostIps: list of str
        :param _IsDefault: 是否是系统默认
        :type IsDefault: int
        """
        self._PolicyName = None
        self._DetectInterval = None
        self._DetectTime = None
        self._IsEnabled = None
        self._AssetType = None
        self._PolicyId = None
        self._RuleCount = None
        self._ItemCount = None
        self._HostCount = None
        self._RuleIds = None
        self._HostIds = None
        self._HostIps = None
        self._IsDefault = None

    @property
    def PolicyName(self):
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def DetectInterval(self):
        return self._DetectInterval

    @DetectInterval.setter
    def DetectInterval(self, DetectInterval):
        self._DetectInterval = DetectInterval

    @property
    def DetectTime(self):
        return self._DetectTime

    @DetectTime.setter
    def DetectTime(self, DetectTime):
        self._DetectTime = DetectTime

    @property
    def IsEnabled(self):
        return self._IsEnabled

    @IsEnabled.setter
    def IsEnabled(self, IsEnabled):
        self._IsEnabled = IsEnabled

    @property
    def AssetType(self):
        return self._AssetType

    @AssetType.setter
    def AssetType(self, AssetType):
        self._AssetType = AssetType

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def RuleCount(self):
        return self._RuleCount

    @RuleCount.setter
    def RuleCount(self, RuleCount):
        self._RuleCount = RuleCount

    @property
    def ItemCount(self):
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def RuleIds(self):
        return self._RuleIds

    @RuleIds.setter
    def RuleIds(self, RuleIds):
        self._RuleIds = RuleIds

    @property
    def HostIds(self):
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def HostIps(self):
        return self._HostIps

    @HostIps.setter
    def HostIps(self, HostIps):
        self._HostIps = HostIps

    @property
    def IsDefault(self):
        return self._IsDefault

    @IsDefault.setter
    def IsDefault(self, IsDefault):
        self._IsDefault = IsDefault


    def _deserialize(self, params):
        self._PolicyName = params.get("PolicyName")
        self._DetectInterval = params.get("DetectInterval")
        self._DetectTime = params.get("DetectTime")
        self._IsEnabled = params.get("IsEnabled")
        self._AssetType = params.get("AssetType")
        self._PolicyId = params.get("PolicyId")
        self._RuleCount = params.get("RuleCount")
        self._ItemCount = params.get("ItemCount")
        self._HostCount = params.get("HostCount")
        self._RuleIds = params.get("RuleIds")
        self._HostIds = params.get("HostIds")
        self._HostIps = params.get("HostIps")
        self._IsDefault = params.get("IsDefault")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselinePolicyDetect(AbstractModel):
    """基线检测策略

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略Id
        :type PolicyId: int
        :param _TaskId: 检测任务Id
        :type TaskId: int
        :param _HostCount: 关联主机数
        :type HostCount: int
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _FinishTime: 结束时间
        :type FinishTime: str
        :param _PolicyName: 策略名称
        :type PolicyName: str
        :param _SuccessCount: 成功主机数
        :type SuccessCount: int
        :param _FailedCount: 失败主技数
        :type FailedCount: int
        :param _TimeoutCount: 失败主机数
        :type TimeoutCount: int
        :param _PolicyDetectStatus: 1:检测中 2:检测完成
注意：此字段可能返回 null，表示取不到有效值。
        :type PolicyDetectStatus: int
        """
        self._PolicyId = None
        self._TaskId = None
        self._HostCount = None
        self._StartTime = None
        self._FinishTime = None
        self._PolicyName = None
        self._SuccessCount = None
        self._FailedCount = None
        self._TimeoutCount = None
        self._PolicyDetectStatus = None

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def FinishTime(self):
        return self._FinishTime

    @FinishTime.setter
    def FinishTime(self, FinishTime):
        self._FinishTime = FinishTime

    @property
    def PolicyName(self):
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def SuccessCount(self):
        return self._SuccessCount

    @SuccessCount.setter
    def SuccessCount(self, SuccessCount):
        self._SuccessCount = SuccessCount

    @property
    def FailedCount(self):
        return self._FailedCount

    @FailedCount.setter
    def FailedCount(self, FailedCount):
        self._FailedCount = FailedCount

    @property
    def TimeoutCount(self):
        return self._TimeoutCount

    @TimeoutCount.setter
    def TimeoutCount(self, TimeoutCount):
        self._TimeoutCount = TimeoutCount

    @property
    def PolicyDetectStatus(self):
        return self._PolicyDetectStatus

    @PolicyDetectStatus.setter
    def PolicyDetectStatus(self, PolicyDetectStatus):
        self._PolicyDetectStatus = PolicyDetectStatus


    def _deserialize(self, params):
        self._PolicyId = params.get("PolicyId")
        self._TaskId = params.get("TaskId")
        self._HostCount = params.get("HostCount")
        self._StartTime = params.get("StartTime")
        self._FinishTime = params.get("FinishTime")
        self._PolicyName = params.get("PolicyName")
        self._SuccessCount = params.get("SuccessCount")
        self._FailedCount = params.get("FailedCount")
        self._TimeoutCount = params.get("TimeoutCount")
        self._PolicyDetectStatus = params.get("PolicyDetectStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineRiskItem(AbstractModel):
    """基线检测项top5

    """

    def __init__(self):
        r"""
        :param _ItemId: 检测项Id
注意：此字段可能返回 null，表示取不到有效值。
        :type ItemId: int
        :param _ItemName: 检测项名字
        :type ItemName: str
        :param _Level: 风险等级
        :type Level: int
        :param _HostCount: 影响服务器数
        :type HostCount: int
        """
        self._ItemId = None
        self._ItemName = None
        self._Level = None
        self._HostCount = None

    @property
    def ItemId(self):
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount


    def _deserialize(self, params):
        self._ItemId = params.get("ItemId")
        self._ItemName = params.get("ItemName")
        self._Level = params.get("Level")
        self._HostCount = params.get("HostCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineRule(AbstractModel):
    """基线规则

    """

    def __init__(self):
        r"""
        :param _RuleName: 规则名称,长度不超过128英文字符
        :type RuleName: str
        :param _RuleId: 规则Id
        :type RuleId: int
        :param _RuleType: 规则类型 [0:系统|1:自定义]
        :type RuleType: int
        :param _CategoryId: 规则分类
        :type CategoryId: int
        :param _RuleDesc: 规则描述
        :type RuleDesc: str
        :param _HostCount: 主机数
        :type HostCount: int
        :param _Items: 适配项ID列表
        :type Items: list of Item
        :param _AssetType: [0:所有专业版旗舰版|1:hostID|2:ip]
注意：此字段可能返回 null，表示取不到有效值。
        :type AssetType: int
        :param _HostIds: 主机Id集合
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIds: list of str
        :param _HostIps: 主机IP
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIps: list of str
        """
        self._RuleName = None
        self._RuleId = None
        self._RuleType = None
        self._CategoryId = None
        self._RuleDesc = None
        self._HostCount = None
        self._Items = None
        self._AssetType = None
        self._HostIds = None
        self._HostIps = None

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleType(self):
        return self._RuleType

    @RuleType.setter
    def RuleType(self, RuleType):
        self._RuleType = RuleType

    @property
    def CategoryId(self):
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def RuleDesc(self):
        return self._RuleDesc

    @RuleDesc.setter
    def RuleDesc(self, RuleDesc):
        self._RuleDesc = RuleDesc

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def Items(self):
        return self._Items

    @Items.setter
    def Items(self, Items):
        self._Items = Items

    @property
    def AssetType(self):
        return self._AssetType

    @AssetType.setter
    def AssetType(self, AssetType):
        self._AssetType = AssetType

    @property
    def HostIds(self):
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def HostIps(self):
        return self._HostIps

    @HostIps.setter
    def HostIps(self, HostIps):
        self._HostIps = HostIps


    def _deserialize(self, params):
        self._RuleName = params.get("RuleName")
        self._RuleId = params.get("RuleId")
        self._RuleType = params.get("RuleType")
        self._CategoryId = params.get("CategoryId")
        self._RuleDesc = params.get("RuleDesc")
        self._HostCount = params.get("HostCount")
        if params.get("Items") is not None:
            self._Items = []
            for item in params.get("Items"):
                obj = Item()
                obj._deserialize(item)
                self._Items.append(obj)
        self._AssetType = params.get("AssetType")
        self._HostIds = params.get("HostIds")
        self._HostIps = params.get("HostIps")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineRuleDetect(AbstractModel):
    """基线规则检测

    """

    def __init__(self):
        r"""
        :param _RuleId: 规则Id
        :type RuleId: int
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _RuleDesc: 规则描述
        :type RuleDesc: str
        :param _ItemCount: 关联项数
        :type ItemCount: int
        :param _HostCount: 关联主机数
        :type HostCount: int
        :param _FirstTime: 首次检测时间
        :type FirstTime: str
        :param _LastTime: string
        :type LastTime: str
        :param _DetectStatus: 0:未通过 1:忽略 3:通过 5:检测中
        :type DetectStatus: int
        :param _ItemIds: ItemID集合
注意：此字段可能返回 null，表示取不到有效值。
        :type ItemIds: list of int
        """
        self._RuleId = None
        self._RuleName = None
        self._RuleDesc = None
        self._ItemCount = None
        self._HostCount = None
        self._FirstTime = None
        self._LastTime = None
        self._DetectStatus = None
        self._ItemIds = None

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleDesc(self):
        return self._RuleDesc

    @RuleDesc.setter
    def RuleDesc(self, RuleDesc):
        self._RuleDesc = RuleDesc

    @property
    def ItemCount(self):
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def LastTime(self):
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def DetectStatus(self):
        return self._DetectStatus

    @DetectStatus.setter
    def DetectStatus(self, DetectStatus):
        self._DetectStatus = DetectStatus

    @property
    def ItemIds(self):
        return self._ItemIds

    @ItemIds.setter
    def ItemIds(self, ItemIds):
        self._ItemIds = ItemIds


    def _deserialize(self, params):
        self._RuleId = params.get("RuleId")
        self._RuleName = params.get("RuleName")
        self._RuleDesc = params.get("RuleDesc")
        self._ItemCount = params.get("ItemCount")
        self._HostCount = params.get("HostCount")
        self._FirstTime = params.get("FirstTime")
        self._LastTime = params.get("LastTime")
        self._DetectStatus = params.get("DetectStatus")
        self._ItemIds = params.get("ItemIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineRuleInfo(AbstractModel):
    """基线检测信息

    """

    def __init__(self):
        r"""
        :param _RuleName: 检测项名称
        :type RuleName: str
        :param _Description: 检测项描述
        :type Description: str
        :param _FixMessage: 修复建议
        :type FixMessage: str
        :param _Level: 危害等级
        :type Level: int
        :param _Status: 状态
        :type Status: int
        :param _RuleId: 检测项id
        :type RuleId: int
        :param _LastScanAt: 最后检测时间
        :type LastScanAt: str
        :param _RuleRemark: 具体原因说明
        :type RuleRemark: str
        :param _Uuid: 唯一Uuid
        :type Uuid: str
        :param _EventId: 唯一事件ID
        :type EventId: int
        """
        self._RuleName = None
        self._Description = None
        self._FixMessage = None
        self._Level = None
        self._Status = None
        self._RuleId = None
        self._LastScanAt = None
        self._RuleRemark = None
        self._Uuid = None
        self._EventId = None

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def FixMessage(self):
        return self._FixMessage

    @FixMessage.setter
    def FixMessage(self, FixMessage):
        self._FixMessage = FixMessage

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def LastScanAt(self):
        return self._LastScanAt

    @LastScanAt.setter
    def LastScanAt(self, LastScanAt):
        self._LastScanAt = LastScanAt

    @property
    def RuleRemark(self):
        return self._RuleRemark

    @RuleRemark.setter
    def RuleRemark(self, RuleRemark):
        self._RuleRemark = RuleRemark

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId


    def _deserialize(self, params):
        self._RuleName = params.get("RuleName")
        self._Description = params.get("Description")
        self._FixMessage = params.get("FixMessage")
        self._Level = params.get("Level")
        self._Status = params.get("Status")
        self._RuleId = params.get("RuleId")
        self._LastScanAt = params.get("LastScanAt")
        self._RuleRemark = params.get("RuleRemark")
        self._Uuid = params.get("Uuid")
        self._EventId = params.get("EventId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineRuleTopInfo(AbstractModel):
    """基线检测项TOP信息

    """

    def __init__(self):
        r"""
        :param _RuleName: 基线检测项名
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleName: str
        :param _Level: 检测项危害等级
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _EventCount: 事件总数
注意：此字段可能返回 null，表示取不到有效值。
        :type EventCount: int
        :param _RuleId: 检测项id
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleId: int
        """
        self._RuleName = None
        self._Level = None
        self._EventCount = None
        self._RuleId = None

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def EventCount(self):
        return self._EventCount

    @EventCount.setter
    def EventCount(self, EventCount):
        self._EventCount = EventCount

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId


    def _deserialize(self, params):
        self._RuleName = params.get("RuleName")
        self._Level = params.get("Level")
        self._EventCount = params.get("EventCount")
        self._RuleId = params.get("RuleId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BaselineWeakPassword(AbstractModel):
    """基线弱口令

    """

    def __init__(self):
        r"""
        :param _PasswordId: 密码Id
        :type PasswordId: int
        :param _WeakPassword: 密码
        :type WeakPassword: str
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        """
        self._PasswordId = None
        self._WeakPassword = None
        self._CreateTime = None
        self._ModifyTime = None

    @property
    def PasswordId(self):
        return self._PasswordId

    @PasswordId.setter
    def PasswordId(self, PasswordId):
        self._PasswordId = PasswordId

    @property
    def WeakPassword(self):
        return self._WeakPassword

    @WeakPassword.setter
    def WeakPassword(self, WeakPassword):
        self._WeakPassword = WeakPassword

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._PasswordId = params.get("PasswordId")
        self._WeakPassword = params.get("WeakPassword")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BashEvent(AbstractModel):
    """高危命令数据

    """

    def __init__(self):
        r"""
        :param _Id: 数据ID
        :type Id: int
        :param _Uuid: 主机安全ID
        :type Uuid: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _Hostip: 主机内网IP
        :type Hostip: str
        :param _User: 执行用户名
        :type User: str
        :param _Platform: 平台类型
        :type Platform: int
        :param _BashCmd: 执行命令
        :type BashCmd: str
        :param _RuleId: 规则ID
        :type RuleId: int
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _RuleLevel: 规则等级：1-高 2-中 3-低
        :type RuleLevel: int
        :param _Status: 处理状态： 0 = 待处理 1= 已处理, 2 = 已加白， 3 = 已忽略
        :type Status: int
        :param _CreateTime: 发生时间
        :type CreateTime: str
        :param _MachineName: 主机名
        :type MachineName: str
        :param _DetectBy: 0: bash日志 1: 实时监控(雷霆版)
注意：此字段可能返回 null，表示取不到有效值。
        :type DetectBy: int
        :param _Pid: 进程id
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: str
        :param _Exe: 进程名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Exe: str
        :param _ModifyTime: 处理时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _RuleCategory: 规则类别  0=系统规则，1=用户规则
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleCategory: int
        :param _RegexBashCmd: 自动生成的正则表达式
注意：此字段可能返回 null，表示取不到有效值。
        :type RegexBashCmd: str
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._Hostip = None
        self._User = None
        self._Platform = None
        self._BashCmd = None
        self._RuleId = None
        self._RuleName = None
        self._RuleLevel = None
        self._Status = None
        self._CreateTime = None
        self._MachineName = None
        self._DetectBy = None
        self._Pid = None
        self._Exe = None
        self._ModifyTime = None
        self._RuleCategory = None
        self._RegexBashCmd = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Hostip(self):
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Platform(self):
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def BashCmd(self):
        return self._BashCmd

    @BashCmd.setter
    def BashCmd(self, BashCmd):
        self._BashCmd = BashCmd

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleLevel(self):
        return self._RuleLevel

    @RuleLevel.setter
    def RuleLevel(self, RuleLevel):
        self._RuleLevel = RuleLevel

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def DetectBy(self):
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Exe(self):
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RuleCategory(self):
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def RegexBashCmd(self):
        return self._RegexBashCmd

    @RegexBashCmd.setter
    def RegexBashCmd(self, RegexBashCmd):
        self._RegexBashCmd = RegexBashCmd


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Hostip = params.get("Hostip")
        self._User = params.get("User")
        self._Platform = params.get("Platform")
        self._BashCmd = params.get("BashCmd")
        self._RuleId = params.get("RuleId")
        self._RuleName = params.get("RuleName")
        self._RuleLevel = params.get("RuleLevel")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MachineName = params.get("MachineName")
        self._DetectBy = params.get("DetectBy")
        self._Pid = params.get("Pid")
        self._Exe = params.get("Exe")
        self._ModifyTime = params.get("ModifyTime")
        self._RuleCategory = params.get("RuleCategory")
        self._RegexBashCmd = params.get("RegexBashCmd")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BashEventNew(AbstractModel):
    """高危命令数据(新)

    """

    def __init__(self):
        r"""
        :param _Id: 数据ID
        :type Id: int
        :param _Uuid: 主机安全ID
        :type Uuid: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _HostIp: 主机内网IP
        :type HostIp: str
        :param _User: 执行用户名
        :type User: str
        :param _Platform: 平台类型
        :type Platform: int
        :param _BashCmd: 执行命令
        :type BashCmd: str
        :param _RuleId: 规则ID
        :type RuleId: int
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _RuleLevel: 规则等级：1-高 2-中 3-低
        :type RuleLevel: int
        :param _Status: 处理状态： 0 = 待处理 1= 已处理, 2 = 已加白， 3 = 已忽略
        :type Status: int
        :param _CreateTime: 发生时间
        :type CreateTime: str
        :param _MachineName: 主机名
        :type MachineName: str
        :param _DetectBy: 0: bash日志 1: 实时监控(雷霆版)
注意：此字段可能返回 null，表示取不到有效值。
        :type DetectBy: int
        :param _Pid: 进程id
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: str
        :param _Exe: 进程名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Exe: str
        :param _ModifyTime: 处理时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _RuleCategory: 规则类别  0=系统规则，1=用户规则
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleCategory: int
        :param _RegexBashCmd: 自动生成的正则表达式
注意：此字段可能返回 null，表示取不到有效值。
        :type RegexBashCmd: str
        :param _MachineType: 0:普通 1:专业版 2:旗舰版
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineType: int
        :param _MachineExtraInfo: 机器额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._HostIp = None
        self._User = None
        self._Platform = None
        self._BashCmd = None
        self._RuleId = None
        self._RuleName = None
        self._RuleLevel = None
        self._Status = None
        self._CreateTime = None
        self._MachineName = None
        self._DetectBy = None
        self._Pid = None
        self._Exe = None
        self._ModifyTime = None
        self._RuleCategory = None
        self._RegexBashCmd = None
        self._MachineType = None
        self._MachineExtraInfo = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Platform(self):
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def BashCmd(self):
        return self._BashCmd

    @BashCmd.setter
    def BashCmd(self, BashCmd):
        self._BashCmd = BashCmd

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleLevel(self):
        return self._RuleLevel

    @RuleLevel.setter
    def RuleLevel(self, RuleLevel):
        self._RuleLevel = RuleLevel

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def DetectBy(self):
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Exe(self):
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RuleCategory(self):
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def RegexBashCmd(self):
        return self._RegexBashCmd

    @RegexBashCmd.setter
    def RegexBashCmd(self, RegexBashCmd):
        self._RegexBashCmd = RegexBashCmd

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._HostIp = params.get("HostIp")
        self._User = params.get("User")
        self._Platform = params.get("Platform")
        self._BashCmd = params.get("BashCmd")
        self._RuleId = params.get("RuleId")
        self._RuleName = params.get("RuleName")
        self._RuleLevel = params.get("RuleLevel")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MachineName = params.get("MachineName")
        self._DetectBy = params.get("DetectBy")
        self._Pid = params.get("Pid")
        self._Exe = params.get("Exe")
        self._ModifyTime = params.get("ModifyTime")
        self._RuleCategory = params.get("RuleCategory")
        self._RegexBashCmd = params.get("RegexBashCmd")
        self._MachineType = params.get("MachineType")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BashEventsInfo(AbstractModel):
    """高危命令数据详情

    """

    def __init__(self):
        r"""
        :param _Id: 数据ID
        :type Id: int
        :param _Uuid: 云镜ID
        :type Uuid: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _HostIp: 主机内网IP
        :type HostIp: str
        :param _Platform: 平台类型
        :type Platform: int
        :param _BashCmd: 执行命令
        :type BashCmd: str
        :param _RuleId: 规则ID,等于0表示已规则已被删除或生效范围已修改
        :type RuleId: int
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _RuleLevel: 规则等级：1-高 2-中 3-低
        :type RuleLevel: int
        :param _Status: 处理状态： 0 = 待处理 1= 已处理, 2 = 已加白， 3= 已忽略
        :type Status: int
        :param _CreateTime: 发生时间
        :type CreateTime: str
        :param _MachineName: 主机名
        :type MachineName: str
        :param _Exe: 进程名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Exe: str
        :param _ModifyTime: 处理时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _RuleCategory: 规则类别  0=系统规则，1=用户规则
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleCategory: int
        :param _RegexBashCmd: 自动生成的正则表达式
注意：此字段可能返回 null，表示取不到有效值。
        :type RegexBashCmd: str
        :param _PsTree: 进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
注意：此字段可能返回 null，表示取不到有效值。
        :type PsTree: str
        :param _SuggestScheme: 建议方案
注意：此字段可能返回 null，表示取不到有效值。
        :type SuggestScheme: str
        :param _HarmDescribe: 描述
注意：此字段可能返回 null，表示取不到有效值。
        :type HarmDescribe: str
        :param _Tags: 标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tags: list of str
        :param _References: 参考链接
注意：此字段可能返回 null，表示取不到有效值。
        :type References: list of str
        :param _MachineWanIp: 主机外网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineWanIp: str
        :param _MachineStatus: 主机在线状态 OFFLINE  ONLINE
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineStatus: str
        :param _User: 登录用户
注意：此字段可能返回 null，表示取不到有效值。
        :type User: str
        :param _Pid: 进程号
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: str
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._HostIp = None
        self._Platform = None
        self._BashCmd = None
        self._RuleId = None
        self._RuleName = None
        self._RuleLevel = None
        self._Status = None
        self._CreateTime = None
        self._MachineName = None
        self._Exe = None
        self._ModifyTime = None
        self._RuleCategory = None
        self._RegexBashCmd = None
        self._PsTree = None
        self._SuggestScheme = None
        self._HarmDescribe = None
        self._Tags = None
        self._References = None
        self._MachineWanIp = None
        self._MachineStatus = None
        self._User = None
        self._Pid = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Platform(self):
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def BashCmd(self):
        return self._BashCmd

    @BashCmd.setter
    def BashCmd(self, BashCmd):
        self._BashCmd = BashCmd

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleLevel(self):
        return self._RuleLevel

    @RuleLevel.setter
    def RuleLevel(self, RuleLevel):
        self._RuleLevel = RuleLevel

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Exe(self):
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RuleCategory(self):
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def RegexBashCmd(self):
        return self._RegexBashCmd

    @RegexBashCmd.setter
    def RegexBashCmd(self, RegexBashCmd):
        self._RegexBashCmd = RegexBashCmd

    @property
    def PsTree(self):
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def SuggestScheme(self):
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def HarmDescribe(self):
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def References(self):
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._HostIp = params.get("HostIp")
        self._Platform = params.get("Platform")
        self._BashCmd = params.get("BashCmd")
        self._RuleId = params.get("RuleId")
        self._RuleName = params.get("RuleName")
        self._RuleLevel = params.get("RuleLevel")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MachineName = params.get("MachineName")
        self._Exe = params.get("Exe")
        self._ModifyTime = params.get("ModifyTime")
        self._RuleCategory = params.get("RuleCategory")
        self._RegexBashCmd = params.get("RegexBashCmd")
        self._PsTree = params.get("PsTree")
        self._SuggestScheme = params.get("SuggestScheme")
        self._HarmDescribe = params.get("HarmDescribe")
        self._Tags = params.get("Tags")
        self._References = params.get("References")
        self._MachineWanIp = params.get("MachineWanIp")
        self._MachineStatus = params.get("MachineStatus")
        self._User = params.get("User")
        self._Pid = params.get("Pid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BashEventsInfoNew(AbstractModel):
    """高危命令数据详情(新)

    """

    def __init__(self):
        r"""
        :param _Id: 数据ID
        :type Id: int
        :param _Uuid: 主机安全ID
        :type Uuid: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _HostIp: 主机内网IP
        :type HostIp: str
        :param _Platform: 平台类型
        :type Platform: int
        :param _BashCmd: 执行命令
        :type BashCmd: str
        :param _RuleId: 规则ID,等于0表示已规则已被删除或生效范围已修改
        :type RuleId: int
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _RuleLevel: 规则等级：1-高 2-中 3-低
        :type RuleLevel: int
        :param _Status: 处理状态： 0 = 待处理 1= 已处理, 2 = 已加白， 3= 已忽略
        :type Status: int
        :param _CreateTime: 发生时间
        :type CreateTime: str
        :param _MachineName: 主机名
        :type MachineName: str
        :param _Exe: 进程名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Exe: str
        :param _ModifyTime: 处理时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _RuleCategory: 规则类别  0=系统规则，1=用户规则
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleCategory: int
        :param _RegexBashCmd: 自动生成的正则表达式
注意：此字段可能返回 null，表示取不到有效值。
        :type RegexBashCmd: str
        :param _PsTree: 进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
注意：此字段可能返回 null，表示取不到有效值。
        :type PsTree: str
        :param _SuggestScheme: 建议方案
注意：此字段可能返回 null，表示取不到有效值。
        :type SuggestScheme: str
        :param _HarmDescribe: 描述
注意：此字段可能返回 null，表示取不到有效值。
        :type HarmDescribe: str
        :param _Tags: 标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tags: list of str
        :param _References: 参考链接
注意：此字段可能返回 null，表示取不到有效值。
        :type References: list of str
        :param _MachineWanIp: 主机外网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineWanIp: str
        :param _MachineStatus: 主机在线状态 OFFLINE  ONLINE
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineStatus: str
        :param _User: 登录用户
注意：此字段可能返回 null，表示取不到有效值。
        :type User: str
        :param _Pid: 进程号
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: str
        :param _MachineType: 0:普通 1:专业版 2:旗舰版
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineType: int
        :param _DetectBy: 检测来源 0:bash日志 1:实时监控
注意：此字段可能返回 null，表示取不到有效值。
        :type DetectBy: int
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._HostIp = None
        self._Platform = None
        self._BashCmd = None
        self._RuleId = None
        self._RuleName = None
        self._RuleLevel = None
        self._Status = None
        self._CreateTime = None
        self._MachineName = None
        self._Exe = None
        self._ModifyTime = None
        self._RuleCategory = None
        self._RegexBashCmd = None
        self._PsTree = None
        self._SuggestScheme = None
        self._HarmDescribe = None
        self._Tags = None
        self._References = None
        self._MachineWanIp = None
        self._MachineStatus = None
        self._User = None
        self._Pid = None
        self._MachineType = None
        self._DetectBy = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Platform(self):
        return self._Platform

    @Platform.setter
    def Platform(self, Platform):
        self._Platform = Platform

    @property
    def BashCmd(self):
        return self._BashCmd

    @BashCmd.setter
    def BashCmd(self, BashCmd):
        self._BashCmd = BashCmd

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleLevel(self):
        return self._RuleLevel

    @RuleLevel.setter
    def RuleLevel(self, RuleLevel):
        self._RuleLevel = RuleLevel

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Exe(self):
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RuleCategory(self):
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def RegexBashCmd(self):
        return self._RegexBashCmd

    @RegexBashCmd.setter
    def RegexBashCmd(self, RegexBashCmd):
        self._RegexBashCmd = RegexBashCmd

    @property
    def PsTree(self):
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def SuggestScheme(self):
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def HarmDescribe(self):
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def References(self):
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def DetectBy(self):
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._HostIp = params.get("HostIp")
        self._Platform = params.get("Platform")
        self._BashCmd = params.get("BashCmd")
        self._RuleId = params.get("RuleId")
        self._RuleName = params.get("RuleName")
        self._RuleLevel = params.get("RuleLevel")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MachineName = params.get("MachineName")
        self._Exe = params.get("Exe")
        self._ModifyTime = params.get("ModifyTime")
        self._RuleCategory = params.get("RuleCategory")
        self._RegexBashCmd = params.get("RegexBashCmd")
        self._PsTree = params.get("PsTree")
        self._SuggestScheme = params.get("SuggestScheme")
        self._HarmDescribe = params.get("HarmDescribe")
        self._Tags = params.get("Tags")
        self._References = params.get("References")
        self._MachineWanIp = params.get("MachineWanIp")
        self._MachineStatus = params.get("MachineStatus")
        self._User = params.get("User")
        self._Pid = params.get("Pid")
        self._MachineType = params.get("MachineType")
        self._DetectBy = params.get("DetectBy")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BashPolicy(AbstractModel):
    """高位命令策略

    """

    def __init__(self):
        r"""
        :param _Name: 策略名称
        :type Name: str
        :param _Enable: 1:有效 0:无效
        :type Enable: int
        :param _White: 0:黑名单 1:白名单
        :type White: int
        :param _BashAction: 0:告警 1:白名单 2:拦截
        :type BashAction: int
        :param _Rule: 正则表达式
        :type Rule: str
        :param _Level: 危险等级(0:无，1: 高危 2:中危 3: 低危)
        :type Level: int
        :param _Scope: 生效范围（0:一组quuid 1:所有专业版(包含旗舰版) 2:所有旗舰版 3:所有主机）
        :type Scope: int
        :param _Id: 策略ID
        :type Id: int
        :param _Descript: 策略描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Descript: str
        :param _EventId: 事件列表点击“加入白名单”时,需要传EventId 事件的id
注意：此字段可能返回 null，表示取不到有效值。
        :type EventId: int
        :param _DealOldEvents: 是否处理旧事件为白名单 0=不处理 1=处理
注意：此字段可能返回 null，表示取不到有效值。
        :type DealOldEvents: int
        :param _Quuids: 生效主机的QUUID集合
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuids: list of str
        :param _Category: 策略类型，0:系统  1:用户
        :type Category: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        :param _Uuids: 老版本兼容可能会用到
        :type Uuids: list of str
        """
        self._Name = None
        self._Enable = None
        self._White = None
        self._BashAction = None
        self._Rule = None
        self._Level = None
        self._Scope = None
        self._Id = None
        self._Descript = None
        self._EventId = None
        self._DealOldEvents = None
        self._Quuids = None
        self._Category = None
        self._CreateTime = None
        self._ModifyTime = None
        self._Uuids = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Enable(self):
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def White(self):
        return self._White

    @White.setter
    def White(self, White):
        self._White = White

    @property
    def BashAction(self):
        return self._BashAction

    @BashAction.setter
    def BashAction(self, BashAction):
        self._BashAction = BashAction

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Scope(self):
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Descript(self):
        return self._Descript

    @Descript.setter
    def Descript(self, Descript):
        self._Descript = Descript

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def DealOldEvents(self):
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def Category(self):
        return self._Category

    @Category.setter
    def Category(self, Category):
        self._Category = Category

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Enable = params.get("Enable")
        self._White = params.get("White")
        self._BashAction = params.get("BashAction")
        self._Rule = params.get("Rule")
        self._Level = params.get("Level")
        self._Scope = params.get("Scope")
        self._Id = params.get("Id")
        self._Descript = params.get("Descript")
        self._EventId = params.get("EventId")
        self._DealOldEvents = params.get("DealOldEvents")
        self._Quuids = params.get("Quuids")
        self._Category = params.get("Category")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._Uuids = params.get("Uuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BashRule(AbstractModel):
    """高危命令规则

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _Uuid: 客户端ID
        :type Uuid: str
        :param _Name: 规则名称
        :type Name: str
        :param _Level: 危险等级(0 ：无 1: 高危 2:中危 3: 低危)
        :type Level: int
        :param _Rule: 正则表达式
        :type Rule: str
        :param _Decription: 规则描述
        :type Decription: str
        :param _Operator: 操作人
        :type Operator: str
        :param _IsGlobal: 是否全局规则
        :type IsGlobal: int
        :param _Status: 状态 (0: 有效 1: 无效)
        :type Status: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        :param _Hostip: 主机IP
        :type Hostip: str
        :param _Uuids: 生效服务器的uuid数组
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuids: list of str
        :param _White: 0=黑名单 1=白名单
注意：此字段可能返回 null，表示取不到有效值。
        :type White: int
        :param _DealOldEvents: 是否处理之前的事件 0: 不处理 1:处理
注意：此字段可能返回 null，表示取不到有效值。
        :type DealOldEvents: int
        :param _Description: 规则描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        """
        self._Id = None
        self._Uuid = None
        self._Name = None
        self._Level = None
        self._Rule = None
        self._Decription = None
        self._Operator = None
        self._IsGlobal = None
        self._Status = None
        self._CreateTime = None
        self._ModifyTime = None
        self._Hostip = None
        self._Uuids = None
        self._White = None
        self._DealOldEvents = None
        self._Description = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Decription(self):
        warnings.warn("parameter `Decription` is deprecated", DeprecationWarning) 

        return self._Decription

    @Decription.setter
    def Decription(self, Decription):
        warnings.warn("parameter `Decription` is deprecated", DeprecationWarning) 

        self._Decription = Decription

    @property
    def Operator(self):
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Hostip(self):
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def White(self):
        return self._White

    @White.setter
    def White(self, White):
        self._White = White

    @property
    def DealOldEvents(self):
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Name = params.get("Name")
        self._Level = params.get("Level")
        self._Rule = params.get("Rule")
        self._Decription = params.get("Decription")
        self._Operator = params.get("Operator")
        self._IsGlobal = params.get("IsGlobal")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._Hostip = params.get("Hostip")
        self._Uuids = params.get("Uuids")
        self._White = params.get("White")
        self._DealOldEvents = params.get("DealOldEvents")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BroadcastInfo(AbstractModel):
    """安全播报文章详情

    """

    def __init__(self):
        r"""
        :param _Title: 文章名字
注意：此字段可能返回 null，表示取不到有效值。
        :type Title: str
        :param _GotoType: 跳转位置：0=不跳转，1=文件查杀，2=漏洞扫描，3=安全基线
注意：此字段可能返回 null，表示取不到有效值。
        :type GotoType: int
        :param _Subtitle: 副标题
        :type Subtitle: str
        :param _CreateTime: 发布时间
        :type CreateTime: str
        :param _Content: 富文本内容信息
        :type Content: str
        :param _Id: 文章唯一Id
        :type Id: int
        :param _Type: 类型：0=紧急通知，1=功能更新，2=行业荣誉，3=版本发布
        :type Type: int
        """
        self._Title = None
        self._GotoType = None
        self._Subtitle = None
        self._CreateTime = None
        self._Content = None
        self._Id = None
        self._Type = None

    @property
    def Title(self):
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def GotoType(self):
        return self._GotoType

    @GotoType.setter
    def GotoType(self, GotoType):
        self._GotoType = GotoType

    @property
    def Subtitle(self):
        return self._Subtitle

    @Subtitle.setter
    def Subtitle(self, Subtitle):
        self._Subtitle = Subtitle

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Content(self):
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._Title = params.get("Title")
        self._GotoType = params.get("GotoType")
        self._Subtitle = params.get("Subtitle")
        self._CreateTime = params.get("CreateTime")
        self._Content = params.get("Content")
        self._Id = params.get("Id")
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Broadcasts(AbstractModel):
    """安全播报列表

    """

    def __init__(self):
        r"""
        :param _Title: 文章名字
注意：此字段可能返回 null，表示取不到有效值。
        :type Title: str
        :param _Type: 类型：0=紧急通知，1=功能更新，2=行业荣誉，3=版本发布
注意：此字段可能返回 null，表示取不到有效值。
        :type Type: int
        :param _Subtitle: 副标题
        :type Subtitle: str
        :param _CreateTime: 发布时间
        :type CreateTime: str
        :param _Id: 文章唯一id
        :type Id: int
        :param _Level: 危险程度  0：无， 1：严重， 2: 高危， 3:中危， 4: 低危
        :type Level: int
        """
        self._Title = None
        self._Type = None
        self._Subtitle = None
        self._CreateTime = None
        self._Id = None
        self._Level = None

    @property
    def Title(self):
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Subtitle(self):
        return self._Subtitle

    @Subtitle.setter
    def Subtitle(self, Subtitle):
        self._Subtitle = Subtitle

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level


    def _deserialize(self, params):
        self._Title = params.get("Title")
        self._Type = params.get("Type")
        self._Subtitle = params.get("Subtitle")
        self._CreateTime = params.get("CreateTime")
        self._Id = params.get("Id")
        self._Level = params.get("Level")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BruteAttackInfo(AbstractModel):
    """密码破解列表实体

    """

    def __init__(self):
        r"""
        :param _Id: 唯一Id
        :type Id: int
        :param _Uuid: 主机安全客户端唯一标识UUID
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _MachineIp: 主机ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineIp: str
        :param _MachineName: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineName: str
        :param _UserName: 用户名
注意：此字段可能返回 null，表示取不到有效值。
        :type UserName: str
        :param _SrcIp: 来源ip
注意：此字段可能返回 null，表示取不到有效值。
        :type SrcIp: str
        :param _Status: SUCCESS：破解成功；FAILED：破解失败
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _Country: 国家id
注意：此字段可能返回 null，表示取不到有效值。
        :type Country: int
        :param _City: 城市id
注意：此字段可能返回 null，表示取不到有效值。
        :type City: int
        :param _Province: 省份id
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: int
        :param _CreateTime: 创建时间
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        :param _BanStatus: 阻断状态：1-阻断成功；非1-阻断失败
注意：此字段可能返回 null，表示取不到有效值。
        :type BanStatus: int
        :param _EventType: 事件类型：200-暴力破解事件，300-暴力破解成功事件（页面展示），400-暴力破解不存在的帐号事件
注意：此字段可能返回 null，表示取不到有效值。
        :type EventType: int
        :param _Count: 发生次数
注意：此字段可能返回 null，表示取不到有效值。
        :type Count: int
        :param _Quuid: 机器UUID
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _IsProVersion: 是否为专业版（true/false）
注意：此字段可能返回 null，表示取不到有效值。
        :type IsProVersion: bool
        :param _Protocol: 被攻击的服务的用户名
注意：此字段可能返回 null，表示取不到有效值。
        :type Protocol: str
        :param _Port: 端口
注意：此字段可能返回 null，表示取不到有效值。
        :type Port: int
        :param _ModifyTime: 最近攻击时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _InstanceId: 实例ID
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceId: str
        :param _DataStatus: 0：待处理，1：忽略，5：已处理，6：加入白名单
注意：此字段可能返回 null，表示取不到有效值。
        :type DataStatus: int
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Location: 地理位置中文名
注意：此字段可能返回 null，表示取不到有效值。
        :type Location: str
        :param _RiskLevel: 威胁等级：0低危，1中危，2高危
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskLevel: int
        """
        self._Id = None
        self._Uuid = None
        self._MachineIp = None
        self._MachineName = None
        self._UserName = None
        self._SrcIp = None
        self._Status = None
        self._Country = None
        self._City = None
        self._Province = None
        self._CreateTime = None
        self._BanStatus = None
        self._EventType = None
        self._Count = None
        self._Quuid = None
        self._IsProVersion = None
        self._Protocol = None
        self._Port = None
        self._ModifyTime = None
        self._InstanceId = None
        self._DataStatus = None
        self._MachineExtraInfo = None
        self._Location = None
        self._RiskLevel = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def BanStatus(self):
        return self._BanStatus

    @BanStatus.setter
    def BanStatus(self, BanStatus):
        self._BanStatus = BanStatus

    @property
    def EventType(self):
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def IsProVersion(self):
        return self._IsProVersion

    @IsProVersion.setter
    def IsProVersion(self, IsProVersion):
        self._IsProVersion = IsProVersion

    @property
    def Protocol(self):
        return self._Protocol

    @Protocol.setter
    def Protocol(self, Protocol):
        self._Protocol = Protocol

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def DataStatus(self):
        return self._DataStatus

    @DataStatus.setter
    def DataStatus(self, DataStatus):
        self._DataStatus = DataStatus

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Location(self):
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location

    @property
    def RiskLevel(self):
        return self._RiskLevel

    @RiskLevel.setter
    def RiskLevel(self, RiskLevel):
        self._RiskLevel = RiskLevel


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._UserName = params.get("UserName")
        self._SrcIp = params.get("SrcIp")
        self._Status = params.get("Status")
        self._Country = params.get("Country")
        self._City = params.get("City")
        self._Province = params.get("Province")
        self._CreateTime = params.get("CreateTime")
        self._BanStatus = params.get("BanStatus")
        self._EventType = params.get("EventType")
        self._Count = params.get("Count")
        self._Quuid = params.get("Quuid")
        self._IsProVersion = params.get("IsProVersion")
        self._Protocol = params.get("Protocol")
        self._Port = params.get("Port")
        self._ModifyTime = params.get("ModifyTime")
        self._InstanceId = params.get("InstanceId")
        self._DataStatus = params.get("DataStatus")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Location = params.get("Location")
        self._RiskLevel = params.get("RiskLevel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BruteAttackRule(AbstractModel):
    """标准阻断模式规则

    """

    def __init__(self):
        r"""
        :param _TimeRange: 爆破事件发生的时间范围，单位：秒
        :type TimeRange: int
        :param _LoginFailTimes: 爆破事件失败次数
        :type LoginFailTimes: int
        """
        self._TimeRange = None
        self._LoginFailTimes = None

    @property
    def TimeRange(self):
        return self._TimeRange

    @TimeRange.setter
    def TimeRange(self, TimeRange):
        self._TimeRange = TimeRange

    @property
    def LoginFailTimes(self):
        return self._LoginFailTimes

    @LoginFailTimes.setter
    def LoginFailTimes(self, LoginFailTimes):
        self._LoginFailTimes = LoginFailTimes


    def _deserialize(self, params):
        self._TimeRange = params.get("TimeRange")
        self._LoginFailTimes = params.get("LoginFailTimes")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BruteAttackRuleList(AbstractModel):
    """暴力破解判定规则列表

    """

    def __init__(self):
        r"""
        :param _TimeRange: 爆破事件发生的时间范围，单位：秒
        :type TimeRange: int
        :param _LoginFailTimes: 爆破事件失败次数
        :type LoginFailTimes: int
        :param _Enable: 规则是否为空，为空则填充默认规则
        :type Enable: bool
        :param _TimeRangeDefault: 爆破事件发生的时间范围，单位：秒（默认规则）
        :type TimeRangeDefault: int
        :param _LoginFailTimesDefault: 爆破事件失败次数（默认规则）
        :type LoginFailTimesDefault: int
        """
        self._TimeRange = None
        self._LoginFailTimes = None
        self._Enable = None
        self._TimeRangeDefault = None
        self._LoginFailTimesDefault = None

    @property
    def TimeRange(self):
        return self._TimeRange

    @TimeRange.setter
    def TimeRange(self, TimeRange):
        self._TimeRange = TimeRange

    @property
    def LoginFailTimes(self):
        return self._LoginFailTimes

    @LoginFailTimes.setter
    def LoginFailTimes(self, LoginFailTimes):
        self._LoginFailTimes = LoginFailTimes

    @property
    def Enable(self):
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def TimeRangeDefault(self):
        return self._TimeRangeDefault

    @TimeRangeDefault.setter
    def TimeRangeDefault(self, TimeRangeDefault):
        self._TimeRangeDefault = TimeRangeDefault

    @property
    def LoginFailTimesDefault(self):
        return self._LoginFailTimesDefault

    @LoginFailTimesDefault.setter
    def LoginFailTimesDefault(self, LoginFailTimesDefault):
        self._LoginFailTimesDefault = LoginFailTimesDefault


    def _deserialize(self, params):
        self._TimeRange = params.get("TimeRange")
        self._LoginFailTimes = params.get("LoginFailTimes")
        self._Enable = params.get("Enable")
        self._TimeRangeDefault = params.get("TimeRangeDefault")
        self._LoginFailTimesDefault = params.get("LoginFailTimesDefault")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CKafkaInstanceInfo(AbstractModel):
    """CKafka实例信息

    """

    def __init__(self):
        r"""
        :param _InstanceID: 实例ID
        :type InstanceID: str
        :param _InstanceName: 实例名称
        :type InstanceName: str
        :param _KafkaVersion: 版本号
        :type KafkaVersion: str
        :param _TopicList: 主题列表
注意：此字段可能返回 null，表示取不到有效值。
        :type TopicList: list of CKafkaTopicInfo
        :param _RouteList: 路由列表
        :type RouteList: list of CKafkaRouteInfo
        :param _DiskSize: 磁盘容量，单位GB
        :type DiskSize: int
        :param _VpcId: vpcId，如果为空，说明是基础网络
        :type VpcId: str
        :param _SubnetId: 子网id
        :type SubnetId: str
        :param _Healthy: 状态，1表示健康，2表示告警，3 表示实例状态异常
        :type Healthy: int
        :param _Zone: 可用区
        :type Zone: str
        :param _Az: 地域
        :type Az: str
        :param _Bandwidth: 实例带宽，单位Mbps
        :type Bandwidth: int
        """
        self._InstanceID = None
        self._InstanceName = None
        self._KafkaVersion = None
        self._TopicList = None
        self._RouteList = None
        self._DiskSize = None
        self._VpcId = None
        self._SubnetId = None
        self._Healthy = None
        self._Zone = None
        self._Az = None
        self._Bandwidth = None

    @property
    def InstanceID(self):
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def InstanceName(self):
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def KafkaVersion(self):
        return self._KafkaVersion

    @KafkaVersion.setter
    def KafkaVersion(self, KafkaVersion):
        self._KafkaVersion = KafkaVersion

    @property
    def TopicList(self):
        return self._TopicList

    @TopicList.setter
    def TopicList(self, TopicList):
        self._TopicList = TopicList

    @property
    def RouteList(self):
        return self._RouteList

    @RouteList.setter
    def RouteList(self, RouteList):
        self._RouteList = RouteList

    @property
    def DiskSize(self):
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def Healthy(self):
        return self._Healthy

    @Healthy.setter
    def Healthy(self, Healthy):
        self._Healthy = Healthy

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Az(self):
        return self._Az

    @Az.setter
    def Az(self, Az):
        self._Az = Az

    @property
    def Bandwidth(self):
        return self._Bandwidth

    @Bandwidth.setter
    def Bandwidth(self, Bandwidth):
        self._Bandwidth = Bandwidth


    def _deserialize(self, params):
        self._InstanceID = params.get("InstanceID")
        self._InstanceName = params.get("InstanceName")
        self._KafkaVersion = params.get("KafkaVersion")
        if params.get("TopicList") is not None:
            self._TopicList = []
            for item in params.get("TopicList"):
                obj = CKafkaTopicInfo()
                obj._deserialize(item)
                self._TopicList.append(obj)
        if params.get("RouteList") is not None:
            self._RouteList = []
            for item in params.get("RouteList"):
                obj = CKafkaRouteInfo()
                obj._deserialize(item)
                self._RouteList.append(obj)
        self._DiskSize = params.get("DiskSize")
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._Healthy = params.get("Healthy")
        self._Zone = params.get("Zone")
        self._Az = params.get("Az")
        self._Bandwidth = params.get("Bandwidth")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CKafkaRouteInfo(AbstractModel):
    """CKafka域名信息

    """

    def __init__(self):
        r"""
        :param _RouteID: 路由ID
        :type RouteID: int
        :param _Domain: 域名
        :type Domain: str
        :param _DomainPort: 域名端口
        :type DomainPort: int
        :param _Vip: 虚拟ip
        :type Vip: str
        :param _VipType: 虚拟ip类型
        :type VipType: int
        :param _AccessType: 接入类型
        :type AccessType: int
        """
        self._RouteID = None
        self._Domain = None
        self._DomainPort = None
        self._Vip = None
        self._VipType = None
        self._AccessType = None

    @property
    def RouteID(self):
        return self._RouteID

    @RouteID.setter
    def RouteID(self, RouteID):
        self._RouteID = RouteID

    @property
    def Domain(self):
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def DomainPort(self):
        return self._DomainPort

    @DomainPort.setter
    def DomainPort(self, DomainPort):
        self._DomainPort = DomainPort

    @property
    def Vip(self):
        return self._Vip

    @Vip.setter
    def Vip(self, Vip):
        self._Vip = Vip

    @property
    def VipType(self):
        return self._VipType

    @VipType.setter
    def VipType(self, VipType):
        self._VipType = VipType

    @property
    def AccessType(self):
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType


    def _deserialize(self, params):
        self._RouteID = params.get("RouteID")
        self._Domain = params.get("Domain")
        self._DomainPort = params.get("DomainPort")
        self._Vip = params.get("Vip")
        self._VipType = params.get("VipType")
        self._AccessType = params.get("AccessType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CKafkaTopicInfo(AbstractModel):
    """Ckafka主题名称

    """

    def __init__(self):
        r"""
        :param _TopicID: 主题ID
        :type TopicID: str
        :param _TopicName: 主题名称
        :type TopicName: str
        """
        self._TopicID = None
        self._TopicName = None

    @property
    def TopicID(self):
        return self._TopicID

    @TopicID.setter
    def TopicID(self, TopicID):
        self._TopicID = TopicID

    @property
    def TopicName(self):
        return self._TopicName

    @TopicName.setter
    def TopicName(self, TopicName):
        self._TopicName = TopicName


    def _deserialize(self, params):
        self._TopicID = params.get("TopicID")
        self._TopicName = params.get("TopicName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CanFixVulInfo(AbstractModel):
    """批量修复漏洞二次弹窗 漏洞主机信息

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
注意：此字段可能返回 null，表示取不到有效值。
        :type VulId: int
        :param _VulName: 漏洞名称
注意：此字段可能返回 null，表示取不到有效值。
        :type VulName: str
        :param _HostList: 该漏洞可修复的主机信息
注意：此字段可能返回 null，表示取不到有效值。
        :type HostList: list of VulInfoHostInfo
        :param _FixTag: 修复提示tag
注意：此字段可能返回 null，表示取不到有效值。
        :type FixTag: list of str
        """
        self._VulId = None
        self._VulName = None
        self._HostList = None
        self._FixTag = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def HostList(self):
        return self._HostList

    @HostList.setter
    def HostList(self, HostList):
        self._HostList = HostList

    @property
    def FixTag(self):
        return self._FixTag

    @FixTag.setter
    def FixTag(self, FixTag):
        self._FixTag = FixTag


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._VulName = params.get("VulName")
        if params.get("HostList") is not None:
            self._HostList = []
            for item in params.get("HostList"):
                obj = VulInfoHostInfo()
                obj._deserialize(item)
                self._HostList.append(obj)
        self._FixTag = params.get("FixTag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CanNotSeparateInfo(AbstractModel):
    """不可隔离木马的机器信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _Alias: 主机名
        :type Alias: str
        :param _PrivateIp: 内网ip
        :type PrivateIp: str
        :param _PublicIp: 外网ip
        :type PublicIp: str
        :param _Reason: 隔离失败原因 1:agent离线
        :type Reason: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Alias = None
        self._PrivateIp = None
        self._PublicIp = None
        self._Reason = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def PrivateIp(self):
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def Reason(self):
        return self._Reason

    @Reason.setter
    def Reason(self, Reason):
        self._Reason = Reason


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Alias = params.get("Alias")
        self._PrivateIp = params.get("PrivateIp")
        self._PublicIp = params.get("PublicIp")
        self._Reason = params.get("Reason")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CancelIgnoreVulRequest(AbstractModel):
    """CancelIgnoreVul请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EventIds: 漏洞事件id串，多个用英文逗号分隔
        :type EventIds: str
        """
        self._EventIds = None

    @property
    def EventIds(self):
        return self._EventIds

    @EventIds.setter
    def EventIds(self, EventIds):
        self._EventIds = EventIds


    def _deserialize(self, params):
        self._EventIds = params.get("EventIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CancelIgnoreVulResponse(AbstractModel):
    """CancelIgnoreVul返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ChangeRuleEventsIgnoreStatusRequest(AbstractModel):
    """ChangeRuleEventsIgnoreStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _IgnoreStatus: 忽略状态 0:取消忽略 ； 1:忽略
        :type IgnoreStatus: int
        :param _RuleIdList: 检测项id数组
        :type RuleIdList: list of int non-negative
        :param _EventIdList: 事件id数组
        :type EventIdList: list of int non-negative
        """
        self._IgnoreStatus = None
        self._RuleIdList = None
        self._EventIdList = None

    @property
    def IgnoreStatus(self):
        return self._IgnoreStatus

    @IgnoreStatus.setter
    def IgnoreStatus(self, IgnoreStatus):
        self._IgnoreStatus = IgnoreStatus

    @property
    def RuleIdList(self):
        return self._RuleIdList

    @RuleIdList.setter
    def RuleIdList(self, RuleIdList):
        self._RuleIdList = RuleIdList

    @property
    def EventIdList(self):
        return self._EventIdList

    @EventIdList.setter
    def EventIdList(self, EventIdList):
        self._EventIdList = EventIdList


    def _deserialize(self, params):
        self._IgnoreStatus = params.get("IgnoreStatus")
        self._RuleIdList = params.get("RuleIdList")
        self._EventIdList = params.get("EventIdList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ChangeRuleEventsIgnoreStatusResponse(AbstractModel):
    """ChangeRuleEventsIgnoreStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ChangeStrategyEnableStatusRequest(AbstractModel):
    """ChangeStrategyEnableStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyId: 基线策略id
        :type StrategyId: int
        :param _Status: 开关状态
        :type Status: int
        """
        self._StrategyId = None
        self._Status = None

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._StrategyId = params.get("StrategyId")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ChangeStrategyEnableStatusResponse(AbstractModel):
    """ChangeStrategyEnableStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CheckBashPolicyParamsRequest(AbstractModel):
    """CheckBashPolicyParams请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CheckField: 校验内容 Name或Rule ，两个都要校验时逗号分割
        :type CheckField: str
        :param _EventId: 在事件列表中新增白名时需要提交事件ID
        :type EventId: int
        :param _Name: 填入的规则名称
        :type Name: str
        :param _Rule: 用户填入的正则表达式："正则表达式" 需与 "提交EventId对应的命令内容" 相匹配
        :type Rule: str
        :param _Id: 编辑时传的规则id
        :type Id: int
        """
        self._CheckField = None
        self._EventId = None
        self._Name = None
        self._Rule = None
        self._Id = None

    @property
    def CheckField(self):
        return self._CheckField

    @CheckField.setter
    def CheckField(self, CheckField):
        self._CheckField = CheckField

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._CheckField = params.get("CheckField")
        self._EventId = params.get("EventId")
        self._Name = params.get("Name")
        self._Rule = params.get("Rule")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckBashPolicyParamsResponse(AbstractModel):
    """CheckBashPolicyParams返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 0=校验通过  1=规则名称校验不通过 2=正则表达式校验不通过
        :type ErrCode: int
        :param _ErrMsg: 校验信息
        :type ErrMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMsg = params.get("ErrMsg")
        self._RequestId = params.get("RequestId")


class CheckBashRuleParamsRequest(AbstractModel):
    """CheckBashRuleParams请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CheckField: 校验内容 Name或Rule ，两个都要校验时逗号分割
        :type CheckField: str
        :param _EventId: 在事件列表中新增白名时需要提交事件ID
        :type EventId: int
        :param _Name: 填入的规则名称
        :type Name: str
        :param _Rule: 用户填入的正则表达式："正则表达式" 需与 "提交EventId对应的命令内容" 相匹配
        :type Rule: str
        :param _Id: 编辑时传的规则id
        :type Id: int
        """
        self._CheckField = None
        self._EventId = None
        self._Name = None
        self._Rule = None
        self._Id = None

    @property
    def CheckField(self):
        return self._CheckField

    @CheckField.setter
    def CheckField(self, CheckField):
        self._CheckField = CheckField

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._CheckField = params.get("CheckField")
        self._EventId = params.get("EventId")
        self._Name = params.get("Name")
        self._Rule = params.get("Rule")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckBashRuleParamsResponse(AbstractModel):
    """CheckBashRuleParams返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 0=校验通过  1=规则名称校验不通过 2=正则表达式校验不通过
        :type ErrCode: int
        :param _ErrMsg: 校验信息
        :type ErrMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMsg = params.get("ErrMsg")
        self._RequestId = params.get("RequestId")


class CheckFileTamperRuleRequest(AbstractModel):
    """CheckFileTamperRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 填入的规则名称
        :type Name: str
        :param _Id: 编辑时传的规则id
        :type Id: int
        """
        self._Name = None
        self._Id = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckFileTamperRuleResponse(AbstractModel):
    """CheckFileTamperRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 0=校验通过  1=规则名称校验不通过
        :type ErrCode: int
        :param _ErrMsg: 校验信息
        :type ErrMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMsg = params.get("ErrMsg")
        self._RequestId = params.get("RequestId")


class CheckFirstScanBaselineRequest(AbstractModel):
    """CheckFirstScanBaseline请求参数结构体

    """


class CheckFirstScanBaselineResponse(AbstractModel):
    """CheckFirstScanBaseline返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FirstScan: 是否是第一次检测 0：不是；1：是
        :type FirstScan: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FirstScan = None
        self._RequestId = None

    @property
    def FirstScan(self):
        return self._FirstScan

    @FirstScan.setter
    def FirstScan(self, FirstScan):
        self._FirstScan = FirstScan

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FirstScan = params.get("FirstScan")
        self._RequestId = params.get("RequestId")


class CheckLogKafkaConnectionStateRequest(AbstractModel):
    """CheckLogKafkaConnectionState请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AccessType: 接入方式,1公网域名接入，2支撑环境接入
        :type AccessType: int
        :param _AccessAddr: 接入地址，域名或ip，带端口
        :type AccessAddr: str
        :param _Username: 用户名
        :type Username: str
        :param _HasPwd: 0不用密码，1有密码
        :type HasPwd: int
        :param _Pwd: 密码，使用aes加密
        :type Pwd: str
        :param _KafkaId: kafka实例id
        :type KafkaId: str
        :param _InsVersion: kafka版本
        :type InsVersion: str
        """
        self._AccessType = None
        self._AccessAddr = None
        self._Username = None
        self._HasPwd = None
        self._Pwd = None
        self._KafkaId = None
        self._InsVersion = None

    @property
    def AccessType(self):
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType

    @property
    def AccessAddr(self):
        return self._AccessAddr

    @AccessAddr.setter
    def AccessAddr(self, AccessAddr):
        self._AccessAddr = AccessAddr

    @property
    def Username(self):
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def HasPwd(self):
        return self._HasPwd

    @HasPwd.setter
    def HasPwd(self, HasPwd):
        self._HasPwd = HasPwd

    @property
    def Pwd(self):
        return self._Pwd

    @Pwd.setter
    def Pwd(self, Pwd):
        self._Pwd = Pwd

    @property
    def KafkaId(self):
        return self._KafkaId

    @KafkaId.setter
    def KafkaId(self, KafkaId):
        self._KafkaId = KafkaId

    @property
    def InsVersion(self):
        return self._InsVersion

    @InsVersion.setter
    def InsVersion(self, InsVersion):
        self._InsVersion = InsVersion


    def _deserialize(self, params):
        self._AccessType = params.get("AccessType")
        self._AccessAddr = params.get("AccessAddr")
        self._Username = params.get("Username")
        self._HasPwd = params.get("HasPwd")
        self._Pwd = params.get("Pwd")
        self._KafkaId = params.get("KafkaId")
        self._InsVersion = params.get("InsVersion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckLogKafkaConnectionStateResponse(AbstractModel):
    """CheckLogKafkaConnectionState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsConnect: true连通，false不通
        :type IsConnect: bool
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsConnect = None
        self._RequestId = None

    @property
    def IsConnect(self):
        return self._IsConnect

    @IsConnect.setter
    def IsConnect(self, IsConnect):
        self._IsConnect = IsConnect

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._IsConnect = params.get("IsConnect")
        self._RequestId = params.get("RequestId")


class ClearLocalStorageRequest(AbstractModel):
    """ClearLocalStorage请求参数结构体

    """


class ClearLocalStorageResponse(AbstractModel):
    """ClearLocalStorage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CloudProtectService(AbstractModel):
    """云护航服务详情信息

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _Type: 类型： 这里为新购
        :type Type: str
        :param _Config: 配置：购买的配置信息
        :type Config: str
        :param _ServiceName: 服务名称
        :type ServiceName: str
        :param _BeginTime: 购买时间
        :type BeginTime: str
        """
        self._ResourceId = None
        self._Type = None
        self._Config = None
        self._ServiceName = None
        self._BeginTime = None

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Config(self):
        return self._Config

    @Config.setter
    def Config(self, Config):
        self._Config = Config

    @property
    def ServiceName(self):
        return self._ServiceName

    @ServiceName.setter
    def ServiceName(self, ServiceName):
        self._ServiceName = ServiceName

    @property
    def BeginTime(self):
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime


    def _deserialize(self, params):
        self._ResourceId = params.get("ResourceId")
        self._Type = params.get("Type")
        self._Config = params.get("Config")
        self._ServiceName = params.get("ServiceName")
        self._BeginTime = params.get("BeginTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ComponentStatistics(AbstractModel):
    """组件统计数据。

    """

    def __init__(self):
        r"""
        :param _Id: 组件ID。
        :type Id: int
        :param _MachineNum: 主机数量。
        :type MachineNum: int
        :param _ComponentName: 组件名称。
        :type ComponentName: str
        :param _ComponentType: 组件类型。
<li>WEB：Web组件</li>
<li>SYSTEM：系统组件</li>
        :type ComponentType: str
        :param _Description: 组件描述。
        :type Description: str
        """
        self._Id = None
        self._MachineNum = None
        self._ComponentName = None
        self._ComponentType = None
        self._Description = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def MachineNum(self):
        return self._MachineNum

    @MachineNum.setter
    def MachineNum(self, MachineNum):
        self._MachineNum = MachineNum

    @property
    def ComponentName(self):
        return self._ComponentName

    @ComponentName.setter
    def ComponentName(self, ComponentName):
        self._ComponentName = ComponentName

    @property
    def ComponentType(self):
        return self._ComponentType

    @ComponentType.setter
    def ComponentType(self, ComponentType):
        self._ComponentType = ComponentType

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._MachineNum = params.get("MachineNum")
        self._ComponentName = params.get("ComponentName")
        self._ComponentType = params.get("ComponentType")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBanWhiteListRequest(AbstractModel):
    """CreateBanWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Rules: 阻断规则
        :type Rules: :class:`tencentcloud.cwp.v20180228.models.BanWhiteList`
        :param _EventId: 事件ID，事件列表加白名单时传递，白名单添加成功后，会将事件变成已加白状态
        :type EventId: int
        """
        self._Rules = None
        self._EventId = None

    @property
    def Rules(self):
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId


    def _deserialize(self, params):
        if params.get("Rules") is not None:
            self._Rules = BanWhiteList()
            self._Rules._deserialize(params.get("Rules"))
        self._EventId = params.get("EventId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBanWhiteListResponse(AbstractModel):
    """CreateBanWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsGlobal: 是否全局规则
        :type IsGlobal: bool
        :param _IsDuplicate: 添加规则是否重复
        :type IsDuplicate: bool
        :param _DuplicateHosts: 重复机器的信息
        :type DuplicateHosts: list of DuplicateHosts
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsGlobal = None
        self._IsDuplicate = None
        self._DuplicateHosts = None
        self._RequestId = None

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def IsDuplicate(self):
        return self._IsDuplicate

    @IsDuplicate.setter
    def IsDuplicate(self, IsDuplicate):
        self._IsDuplicate = IsDuplicate

    @property
    def DuplicateHosts(self):
        return self._DuplicateHosts

    @DuplicateHosts.setter
    def DuplicateHosts(self, DuplicateHosts):
        self._DuplicateHosts = DuplicateHosts

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._IsGlobal = params.get("IsGlobal")
        self._IsDuplicate = params.get("IsDuplicate")
        if params.get("DuplicateHosts") is not None:
            self._DuplicateHosts = []
            for item in params.get("DuplicateHosts"):
                obj = DuplicateHosts()
                obj._deserialize(item)
                self._DuplicateHosts.append(obj)
        self._RequestId = params.get("RequestId")


class CreateBaselineStrategyRequest(AbstractModel):
    """CreateBaselineStrategy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyName: 策略名称
        :type StrategyName: str
        :param _ScanCycle: 检测周期, 表示每隔多少天进行检测.示例: 2, 表示每2天进行检测一次.
        :type ScanCycle: int
        :param _ScanAt: 定期检测时间，该时间下发扫描. 示例:“22:00”, 表示在22:00下发检测
        :type ScanAt: str
        :param _CategoryIds: 该策略下选择的基线id数组. 示例: [1,3,5,7]
        :type CategoryIds: list of int non-negative
        :param _IsGlobal: 扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        :type IsGlobal: int
        :param _MachineType: 云主机类型：
CVM：虚拟主机
BM：裸金属
ECM：边缘计算主机
LH：轻量应用服务器
Other：混合云机器
        :type MachineType: str
        :param _RegionCode: 主机地域. 示例: "ap-guangzhou"
        :type RegionCode: str
        :param _Quuids: 主机id数组. 示例: ["quuid1","quuid2"]
        :type Quuids: list of str
        """
        self._StrategyName = None
        self._ScanCycle = None
        self._ScanAt = None
        self._CategoryIds = None
        self._IsGlobal = None
        self._MachineType = None
        self._RegionCode = None
        self._Quuids = None

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def ScanCycle(self):
        return self._ScanCycle

    @ScanCycle.setter
    def ScanCycle(self, ScanCycle):
        self._ScanCycle = ScanCycle

    @property
    def ScanAt(self):
        return self._ScanAt

    @ScanAt.setter
    def ScanAt(self, ScanAt):
        self._ScanAt = ScanAt

    @property
    def CategoryIds(self):
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._StrategyName = params.get("StrategyName")
        self._ScanCycle = params.get("ScanCycle")
        self._ScanAt = params.get("ScanAt")
        self._CategoryIds = params.get("CategoryIds")
        self._IsGlobal = params.get("IsGlobal")
        self._MachineType = params.get("MachineType")
        self._RegionCode = params.get("RegionCode")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBaselineStrategyResponse(AbstractModel):
    """CreateBaselineStrategy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateBuyBindTaskRequest(AbstractModel):
    """CreateBuyBindTask请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DealName: 订单号
        :type DealName: str
        :param _LicenseType: 可选参数: 1专业版-包年包月 , 2 旗舰版-包年包月
        :type LicenseType: int
        :param _QuuidList: 机器列表
        :type QuuidList: list of str
        :param _IsAll: 是否全选机器
        :type IsAll: bool
        """
        self._DealName = None
        self._LicenseType = None
        self._QuuidList = None
        self._IsAll = None

    @property
    def DealName(self):
        return self._DealName

    @DealName.setter
    def DealName(self, DealName):
        self._DealName = DealName

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def IsAll(self):
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll


    def _deserialize(self, params):
        self._DealName = params.get("DealName")
        self._LicenseType = params.get("LicenseType")
        self._QuuidList = params.get("QuuidList")
        self._IsAll = params.get("IsAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBuyBindTaskResponse(AbstractModel):
    """CreateBuyBindTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateCloudProtectServiceOrderRecordRequest(AbstractModel):
    """CreateCloudProtectServiceOrderRecord请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceIds: 对应云护航服务的资源ID
        :type ResourceIds: list of str
        """
        self._ResourceIds = None

    @property
    def ResourceIds(self):
        return self._ResourceIds

    @ResourceIds.setter
    def ResourceIds(self, ResourceIds):
        self._ResourceIds = ResourceIds


    def _deserialize(self, params):
        self._ResourceIds = params.get("ResourceIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateCloudProtectServiceOrderRecordResponse(AbstractModel):
    """CreateCloudProtectServiceOrderRecord返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Success: 成功收货的资源ID
        :type Success: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Success = None
        self._RequestId = None

    @property
    def Success(self):
        return self._Success

    @Success.setter
    def Success(self, Success):
        self._Success = Success

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Success = params.get("Success")
        self._RequestId = params.get("RequestId")


class CreateEmergencyVulScanRequest(AbstractModel):
    """CreateEmergencyVulScan请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _Uuids: 自选服务器时生效，主机uuid的string数组
        :type Uuids: list of str
        :param _TimeoutPeriod: 扫描超时时长 ，单位秒
        :type TimeoutPeriod: int
        """
        self._VulId = None
        self._Uuids = None
        self._TimeoutPeriod = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def TimeoutPeriod(self):
        return self._TimeoutPeriod

    @TimeoutPeriod.setter
    def TimeoutPeriod(self, TimeoutPeriod):
        self._TimeoutPeriod = TimeoutPeriod


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._Uuids = params.get("Uuids")
        self._TimeoutPeriod = params.get("TimeoutPeriod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateEmergencyVulScanResponse(AbstractModel):
    """CreateEmergencyVulScan返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateIncidentBacktrackingRequest(AbstractModel):
    """CreateIncidentBacktracking请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机安全quuid
        :type Quuid: str
        """
        self._Quuid = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateIncidentBacktrackingResponse(AbstractModel):
    """CreateIncidentBacktracking返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateLicenseOrderRequest(AbstractModel):
    """CreateLicenseOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Tags: 标签数组, 空则表示不需要绑定标签
        :type Tags: list of Tags
        :param _LicenseType: 授权类型, 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
默认为0
        :type LicenseType: int
        :param _LicenseNum: 授权数量 , 需要购买的数量.
默认为1
        :type LicenseNum: int
        :param _RegionId: 购买订单地域,这里仅支持 1 广州,9 新加坡. 推荐选择广州. 新加坡地域为白名单用户购买.
默认为1
        :type RegionId: int
        :param _ProjectId: 项目ID .
默认为0
        :type ProjectId: int
        :param _TimeSpan: 购买时间长度,默认1 , 可选值为1,2,3,4,5,6,7,8,9,10,11,12,24,36
该参数仅包年包月生效
        :type TimeSpan: int
        :param _AutoRenewFlag: 是否自动续费, 默认不自动续费.
该参数仅包年包月生效
        :type AutoRenewFlag: bool
        :param _AutoProtectOpenConfig: 该字段作废
        :type AutoProtectOpenConfig: str
        :param _ModifyConfig: 变配参数
        :type ModifyConfig: :class:`tencentcloud.cwp.v20180228.models.OrderModifyObject`
        """
        self._Tags = None
        self._LicenseType = None
        self._LicenseNum = None
        self._RegionId = None
        self._ProjectId = None
        self._TimeSpan = None
        self._AutoRenewFlag = None
        self._AutoProtectOpenConfig = None
        self._ModifyConfig = None

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def LicenseNum(self):
        return self._LicenseNum

    @LicenseNum.setter
    def LicenseNum(self, LicenseNum):
        self._LicenseNum = LicenseNum

    @property
    def RegionId(self):
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def TimeSpan(self):
        return self._TimeSpan

    @TimeSpan.setter
    def TimeSpan(self, TimeSpan):
        self._TimeSpan = TimeSpan

    @property
    def AutoRenewFlag(self):
        return self._AutoRenewFlag

    @AutoRenewFlag.setter
    def AutoRenewFlag(self, AutoRenewFlag):
        self._AutoRenewFlag = AutoRenewFlag

    @property
    def AutoProtectOpenConfig(self):
        return self._AutoProtectOpenConfig

    @AutoProtectOpenConfig.setter
    def AutoProtectOpenConfig(self, AutoProtectOpenConfig):
        self._AutoProtectOpenConfig = AutoProtectOpenConfig

    @property
    def ModifyConfig(self):
        return self._ModifyConfig

    @ModifyConfig.setter
    def ModifyConfig(self, ModifyConfig):
        self._ModifyConfig = ModifyConfig


    def _deserialize(self, params):
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tags()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._LicenseType = params.get("LicenseType")
        self._LicenseNum = params.get("LicenseNum")
        self._RegionId = params.get("RegionId")
        self._ProjectId = params.get("ProjectId")
        self._TimeSpan = params.get("TimeSpan")
        self._AutoRenewFlag = params.get("AutoRenewFlag")
        self._AutoProtectOpenConfig = params.get("AutoProtectOpenConfig")
        if params.get("ModifyConfig") is not None:
            self._ModifyConfig = OrderModifyObject()
            self._ModifyConfig._deserialize(params.get("ModifyConfig"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateLicenseOrderResponse(AbstractModel):
    """CreateLicenseOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DealNames: 订单号列表
        :type DealNames: list of str
        :param _ResourceIds: 资源ID列表,预付费订单该字段空值
        :type ResourceIds: list of str
        :param _BigDealId: 大订单号 , 后付费该字段空值
        :type BigDealId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DealNames = None
        self._ResourceIds = None
        self._BigDealId = None
        self._RequestId = None

    @property
    def DealNames(self):
        return self._DealNames

    @DealNames.setter
    def DealNames(self, DealNames):
        self._DealNames = DealNames

    @property
    def ResourceIds(self):
        return self._ResourceIds

    @ResourceIds.setter
    def ResourceIds(self, ResourceIds):
        self._ResourceIds = ResourceIds

    @property
    def BigDealId(self):
        return self._BigDealId

    @BigDealId.setter
    def BigDealId(self, BigDealId):
        self._BigDealId = BigDealId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DealNames = params.get("DealNames")
        self._ResourceIds = params.get("ResourceIds")
        self._BigDealId = params.get("BigDealId")
        self._RequestId = params.get("RequestId")


class CreateLogExportRequest(AbstractModel):
    """CreateLogExport请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Count: 日志导出数量, 最大值5000万
        :type Count: int
        :param _StartTime: 日志导出起始时间，毫秒时间戳
        :type StartTime: int
        :param _EndTime: 日志导出结束时间，毫秒时间戳
        :type EndTime: int
        :param _QueryString: 日志导出检索语句，不支持[SQL语句]
        :type QueryString: str
        :param _Sort: 日志导出时间排序。desc，asc，默认为desc
        :type Sort: str
        :param _Format: 日志导出数据格式。json，csv，默认为json
        :type Format: str
        """
        self._Count = None
        self._StartTime = None
        self._EndTime = None
        self._QueryString = None
        self._Sort = None
        self._Format = None

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def QueryString(self):
        return self._QueryString

    @QueryString.setter
    def QueryString(self, QueryString):
        self._QueryString = QueryString

    @property
    def Sort(self):
        return self._Sort

    @Sort.setter
    def Sort(self, Sort):
        self._Sort = Sort

    @property
    def Format(self):
        return self._Format

    @Format.setter
    def Format(self, Format):
        self._Format = Format


    def _deserialize(self, params):
        self._Count = params.get("Count")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._QueryString = params.get("QueryString")
        self._Sort = params.get("Sort")
        self._Format = params.get("Format")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateLogExportResponse(AbstractModel):
    """CreateLogExport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ExportId: 日志导出ID
        :type ExportId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ExportId = None
        self._RequestId = None

    @property
    def ExportId(self):
        return self._ExportId

    @ExportId.setter
    def ExportId(self, ExportId):
        self._ExportId = ExportId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ExportId = params.get("ExportId")
        self._RequestId = params.get("RequestId")


class CreateMaliciousRequestWhiteListRequest(AbstractModel):
    """CreateMaliciousRequestWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Domain: 白名单域名
        :type Domain: str
        :param _Mark: 备注
        :type Mark: str
        """
        self._Domain = None
        self._Mark = None

    @property
    def Domain(self):
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def Mark(self):
        return self._Mark

    @Mark.setter
    def Mark(self, Mark):
        self._Mark = Mark


    def _deserialize(self, params):
        self._Domain = params.get("Domain")
        self._Mark = params.get("Mark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateMaliciousRequestWhiteListResponse(AbstractModel):
    """CreateMaliciousRequestWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateMalwareWhiteListRequest(AbstractModel):
    """CreateMalwareWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: 白名单模式； 0MD5白名单，1自定义
        :type Mode: int
        :param _QuuidList: quuid 列表
        :type QuuidList: list of str
        :param _IsGlobal: 是否全部主机； 0否，1是。
        :type IsGlobal: int
        :param _MatchType: 匹配模式 ；0 精确匹配，1模糊匹配（废弃）
        :type MatchType: int
        :param _FileName: 文件名称(正则)；长度不超过200个
        :type FileName: list of str
        :param _FileDirectory: 文件目录(正则)；长度不超过200个,内容base64转义
        :type FileDirectory: list of str
        :param _FileExtension: 文件后缀；长度不超过200个,内容base64转义（废弃）
        :type FileExtension: list of str
        :param _Md5List: MD5列表
        :type Md5List: list of str
        :param _EventId: 木马事件ID
        :type EventId: int
        """
        self._Mode = None
        self._QuuidList = None
        self._IsGlobal = None
        self._MatchType = None
        self._FileName = None
        self._FileDirectory = None
        self._FileExtension = None
        self._Md5List = None
        self._EventId = None

    @property
    def Mode(self):
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MatchType(self):
        return self._MatchType

    @MatchType.setter
    def MatchType(self, MatchType):
        self._MatchType = MatchType

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileDirectory(self):
        return self._FileDirectory

    @FileDirectory.setter
    def FileDirectory(self, FileDirectory):
        self._FileDirectory = FileDirectory

    @property
    def FileExtension(self):
        return self._FileExtension

    @FileExtension.setter
    def FileExtension(self, FileExtension):
        self._FileExtension = FileExtension

    @property
    def Md5List(self):
        return self._Md5List

    @Md5List.setter
    def Md5List(self, Md5List):
        self._Md5List = Md5List

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId


    def _deserialize(self, params):
        self._Mode = params.get("Mode")
        self._QuuidList = params.get("QuuidList")
        self._IsGlobal = params.get("IsGlobal")
        self._MatchType = params.get("MatchType")
        self._FileName = params.get("FileName")
        self._FileDirectory = params.get("FileDirectory")
        self._FileExtension = params.get("FileExtension")
        self._Md5List = params.get("Md5List")
        self._EventId = params.get("EventId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateMalwareWhiteListResponse(AbstractModel):
    """CreateMalwareWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateNetAttackWhiteListRequest(AbstractModel):
    """CreateNetAttackWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Scope: 是否全部主机； 0否，1是。
        :type Scope: int
        :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: list of str
        :param _QuuidList: quuid 列表
        :type QuuidList: list of str
        :param _EventId: 事件id
        :type EventId: int
        :param _DealOldEvents: 是否加白所有符合该规则的告警 ，1:处理,0:不处理
        :type DealOldEvents: int
        :param _Description: 描述
        :type Description: str
        """
        self._Scope = None
        self._SrcIp = None
        self._QuuidList = None
        self._EventId = None
        self._DealOldEvents = None
        self._Description = None

    @property
    def Scope(self):
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def DealOldEvents(self):
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._Scope = params.get("Scope")
        self._SrcIp = params.get("SrcIp")
        self._QuuidList = params.get("QuuidList")
        self._EventId = params.get("EventId")
        self._DealOldEvents = params.get("DealOldEvents")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateNetAttackWhiteListResponse(AbstractModel):
    """CreateNetAttackWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateProtectServerRequest(AbstractModel):
    """CreateProtectServer请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ProtectDir: 防护目录地址
        :type ProtectDir: str
        :param _ProtectHostConfig: 防护机器 信息
        :type ProtectHostConfig: list of ProtectHostConfig
        """
        self._ProtectDir = None
        self._ProtectHostConfig = None

    @property
    def ProtectDir(self):
        return self._ProtectDir

    @ProtectDir.setter
    def ProtectDir(self, ProtectDir):
        self._ProtectDir = ProtectDir

    @property
    def ProtectHostConfig(self):
        return self._ProtectHostConfig

    @ProtectHostConfig.setter
    def ProtectHostConfig(self, ProtectHostConfig):
        self._ProtectHostConfig = ProtectHostConfig


    def _deserialize(self, params):
        self._ProtectDir = params.get("ProtectDir")
        if params.get("ProtectHostConfig") is not None:
            self._ProtectHostConfig = []
            for item in params.get("ProtectHostConfig"):
                obj = ProtectHostConfig()
                obj._deserialize(item)
                self._ProtectHostConfig.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateProtectServerResponse(AbstractModel):
    """CreateProtectServer返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateRansomDefenseStrategyRequest(AbstractModel):
    """CreateRansomDefenseStrategy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 策略名称
        :type Name: str
        :param _Hour: 定时快照执行时间（0-23）：01:00;23:00
        :type Hour: str
        :param _Id: 策略ID，填ID时修改策略，否则新增策略
        :type Id: int
        :param _Description: 策略备注
        :type Description: str
        :param _Status: 是否开启：0关，1开
        :type Status: int
        :param _IsAll: 是否全部机器生效：0否，1是
        :type IsAll: int
        :param _IncludeDir: 包含目录，;分隔
        :type IncludeDir: str
        :param _ExcludeDir: 排除目录，;分隔
        :type ExcludeDir: str
        :param _BackupType: 备份模式： 0按周，1按天
        :type BackupType: int
        :param _Weekday: 定时任务执行星期天数（1-7）：1;2;7
        :type Weekday: str
        :param _SaveDay: 保留天数：0永久
        :type SaveDay: int
        :param _Machines: 绑定主机列表
        :type Machines: list of RansomDefenseStrategyMachineInfo
        """
        self._Name = None
        self._Hour = None
        self._Id = None
        self._Description = None
        self._Status = None
        self._IsAll = None
        self._IncludeDir = None
        self._ExcludeDir = None
        self._BackupType = None
        self._Weekday = None
        self._SaveDay = None
        self._Machines = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Hour(self):
        return self._Hour

    @Hour.setter
    def Hour(self, Hour):
        self._Hour = Hour

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IsAll(self):
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def IncludeDir(self):
        return self._IncludeDir

    @IncludeDir.setter
    def IncludeDir(self, IncludeDir):
        self._IncludeDir = IncludeDir

    @property
    def ExcludeDir(self):
        return self._ExcludeDir

    @ExcludeDir.setter
    def ExcludeDir(self, ExcludeDir):
        self._ExcludeDir = ExcludeDir

    @property
    def BackupType(self):
        return self._BackupType

    @BackupType.setter
    def BackupType(self, BackupType):
        self._BackupType = BackupType

    @property
    def Weekday(self):
        return self._Weekday

    @Weekday.setter
    def Weekday(self, Weekday):
        self._Weekday = Weekday

    @property
    def SaveDay(self):
        return self._SaveDay

    @SaveDay.setter
    def SaveDay(self, SaveDay):
        self._SaveDay = SaveDay

    @property
    def Machines(self):
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Hour = params.get("Hour")
        self._Id = params.get("Id")
        self._Description = params.get("Description")
        self._Status = params.get("Status")
        self._IsAll = params.get("IsAll")
        self._IncludeDir = params.get("IncludeDir")
        self._ExcludeDir = params.get("ExcludeDir")
        self._BackupType = params.get("BackupType")
        self._Weekday = params.get("Weekday")
        self._SaveDay = params.get("SaveDay")
        if params.get("Machines") is not None:
            self._Machines = []
            for item in params.get("Machines"):
                obj = RansomDefenseStrategyMachineInfo()
                obj._deserialize(item)
                self._Machines.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRansomDefenseStrategyResponse(AbstractModel):
    """CreateRansomDefenseStrategy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CreateScanMalwareSettingRequest(AbstractModel):
    """CreateScanMalwareSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ScanPattern: 扫描模式 0 全盘扫描, 1 快速扫描
        :type ScanPattern: int
        :param _HostType: 服务器分类：1:专业版服务器；2:自选服务器
        :type HostType: int
        :param _QuuidList: 自选服务器时生效，主机quuid的string数组
        :type QuuidList: list of str
        :param _TimeoutPeriod: 超时时间单位 秒 默认3600 秒
        :type TimeoutPeriod: int
        :param _EngineType: 1标准模式（只报严重、高危）、2增强模式（报严重、高危、中危）、3严格模式（报严重、高、中、低、提示）
        :type EngineType: int
        :param _EnableMemShellScan: 是否开启恶意进程查杀[0:未开启,1:开启]
        :type EnableMemShellScan: int
        """
        self._ScanPattern = None
        self._HostType = None
        self._QuuidList = None
        self._TimeoutPeriod = None
        self._EngineType = None
        self._EnableMemShellScan = None

    @property
    def ScanPattern(self):
        return self._ScanPattern

    @ScanPattern.setter
    def ScanPattern(self, ScanPattern):
        self._ScanPattern = ScanPattern

    @property
    def HostType(self):
        return self._HostType

    @HostType.setter
    def HostType(self, HostType):
        self._HostType = HostType

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def TimeoutPeriod(self):
        return self._TimeoutPeriod

    @TimeoutPeriod.setter
    def TimeoutPeriod(self, TimeoutPeriod):
        self._TimeoutPeriod = TimeoutPeriod

    @property
    def EngineType(self):
        return self._EngineType

    @EngineType.setter
    def EngineType(self, EngineType):
        self._EngineType = EngineType

    @property
    def EnableMemShellScan(self):
        return self._EnableMemShellScan

    @EnableMemShellScan.setter
    def EnableMemShellScan(self, EnableMemShellScan):
        self._EnableMemShellScan = EnableMemShellScan


    def _deserialize(self, params):
        self._ScanPattern = params.get("ScanPattern")
        self._HostType = params.get("HostType")
        self._QuuidList = params.get("QuuidList")
        self._TimeoutPeriod = params.get("TimeoutPeriod")
        self._EngineType = params.get("EngineType")
        self._EnableMemShellScan = params.get("EnableMemShellScan")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateScanMalwareSettingResponse(AbstractModel):
    """CreateScanMalwareSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class CreateSearchLogRequest(AbstractModel):
    """CreateSearchLog请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SearchContent: 搜索内容
        :type SearchContent: str
        """
        self._SearchContent = None

    @property
    def SearchContent(self):
        return self._SearchContent

    @SearchContent.setter
    def SearchContent(self, SearchContent):
        self._SearchContent = SearchContent


    def _deserialize(self, params):
        self._SearchContent = params.get("SearchContent")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSearchLogResponse(AbstractModel):
    """CreateSearchLog返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 0：成功，非0：失败
        :type Status: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._RequestId = params.get("RequestId")


class CreateSearchTemplateRequest(AbstractModel):
    """CreateSearchTemplate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SearchTemplate: 搜索模板
        :type SearchTemplate: :class:`tencentcloud.cwp.v20180228.models.SearchTemplate`
        """
        self._SearchTemplate = None

    @property
    def SearchTemplate(self):
        return self._SearchTemplate

    @SearchTemplate.setter
    def SearchTemplate(self, SearchTemplate):
        self._SearchTemplate = SearchTemplate


    def _deserialize(self, params):
        if params.get("SearchTemplate") is not None:
            self._SearchTemplate = SearchTemplate()
            self._SearchTemplate._deserialize(params.get("SearchTemplate"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSearchTemplateResponse(AbstractModel):
    """CreateSearchTemplate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 0：成功，非0：失败
        :type Status: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._RequestId = params.get("RequestId")


class CreateVulFixRequest(AbstractModel):
    """CreateVulFix请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CreateVulFixTaskQuuids: 漏洞对应要修复的主机列表
        :type CreateVulFixTaskQuuids: list of CreateVulFixTaskQuuids
        :param _SaveDays: 快照保存天数，  0 天表示不创建快照。24小时没有快照的主机必须要创建快照才能修复
        :type SaveDays: int
        :param _SnapshotName: 快照名称
        :type SnapshotName: str
        """
        self._CreateVulFixTaskQuuids = None
        self._SaveDays = None
        self._SnapshotName = None

    @property
    def CreateVulFixTaskQuuids(self):
        return self._CreateVulFixTaskQuuids

    @CreateVulFixTaskQuuids.setter
    def CreateVulFixTaskQuuids(self, CreateVulFixTaskQuuids):
        self._CreateVulFixTaskQuuids = CreateVulFixTaskQuuids

    @property
    def SaveDays(self):
        return self._SaveDays

    @SaveDays.setter
    def SaveDays(self, SaveDays):
        self._SaveDays = SaveDays

    @property
    def SnapshotName(self):
        return self._SnapshotName

    @SnapshotName.setter
    def SnapshotName(self, SnapshotName):
        self._SnapshotName = SnapshotName


    def _deserialize(self, params):
        if params.get("CreateVulFixTaskQuuids") is not None:
            self._CreateVulFixTaskQuuids = []
            for item in params.get("CreateVulFixTaskQuuids"):
                obj = CreateVulFixTaskQuuids()
                obj._deserialize(item)
                self._CreateVulFixTaskQuuids.append(obj)
        self._SaveDays = params.get("SaveDays")
        self._SnapshotName = params.get("SnapshotName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateVulFixResponse(AbstractModel):
    """CreateVulFix返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FixId: 任务id
        :type FixId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FixId = None
        self._RequestId = None

    @property
    def FixId(self):
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FixId = params.get("FixId")
        self._RequestId = params.get("RequestId")


class CreateVulFixTaskQuuids(AbstractModel):
    """创建修复任务的quuids

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _Quuids: 需要修复漏洞的主机，所有主机必须有VulId的这个漏洞且是待修复状态。
        :type Quuids: list of str
        """
        self._VulId = None
        self._Quuids = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateWhiteListOrderRequest(AbstractModel):
    """CreateWhiteListOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LicenseType: 授权类型
        :type LicenseType: int
        :param _LicenseNum: 授权数量,最小为1 最大99999
        :type LicenseNum: int
        :param _Deadline: 到期时间,最小为1
        :type Deadline: int
        :param _RuleName: 规则名称,大资产中心:asset_center
        :type RuleName: str
        :param _SourceType: 订单类型, 1 试用 2 赠送 3 体验 4 SSL-证书赠送 5 cvm赠送
        :type SourceType: int
        :param _RegionId: 地域, 1 广州 9新加坡, 默认为 1. 非必要情况不要选9
        :type RegionId: int
        :param _ExtraParam: 额外参数,json字符串,包含ResourceId 资源ID,LicenseType 授权类型
        :type ExtraParam: str
        """
        self._LicenseType = None
        self._LicenseNum = None
        self._Deadline = None
        self._RuleName = None
        self._SourceType = None
        self._RegionId = None
        self._ExtraParam = None

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def LicenseNum(self):
        return self._LicenseNum

    @LicenseNum.setter
    def LicenseNum(self, LicenseNum):
        self._LicenseNum = LicenseNum

    @property
    def Deadline(self):
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def SourceType(self):
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType

    @property
    def RegionId(self):
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def ExtraParam(self):
        return self._ExtraParam

    @ExtraParam.setter
    def ExtraParam(self, ExtraParam):
        self._ExtraParam = ExtraParam


    def _deserialize(self, params):
        self._LicenseType = params.get("LicenseType")
        self._LicenseNum = params.get("LicenseNum")
        self._Deadline = params.get("Deadline")
        self._RuleName = params.get("RuleName")
        self._SourceType = params.get("SourceType")
        self._RegionId = params.get("RegionId")
        self._ExtraParam = params.get("ExtraParam")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateWhiteListOrderResponse(AbstractModel):
    """CreateWhiteListOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Resource: 资源对象
        :type Resource: :class:`tencentcloud.cwp.v20180228.models.OrderResource`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Resource = None
        self._RequestId = None

    @property
    def Resource(self):
        return self._Resource

    @Resource.setter
    def Resource(self, Resource):
        self._Resource = Resource

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Resource") is not None:
            self._Resource = OrderResource()
            self._Resource._deserialize(params.get("Resource"))
        self._RequestId = params.get("RequestId")


class DefaultStrategyInfo(AbstractModel):
    """默认策略基础信息

    """

    def __init__(self):
        r"""
        :param _StrategyName: 策略名
        :type StrategyName: str
        :param _StrategyId: 策略id
        :type StrategyId: int
        """
        self._StrategyName = None
        self._StrategyId = None

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId


    def _deserialize(self, params):
        self._StrategyName = params.get("StrategyName")
        self._StrategyId = params.get("StrategyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DefendAttackLog(AbstractModel):
    """网络攻击日志

    """

    def __init__(self):
        r"""
        :param _Id: 日志ID
        :type Id: int
        :param _Uuid: 客户端ID
        :type Uuid: str
        :param _SrcIp: 来源IP
        :type SrcIp: str
        :param _SrcPort: 来源端口
        :type SrcPort: int
        :param _HttpMethod: 攻击方式
        :type HttpMethod: str
        :param _HttpCgi: 攻击描述
        :type HttpCgi: str
        :param _HttpParam: 攻击参数
        :type HttpParam: str
        :param _VulType: 威胁类型
        :type VulType: str
        :param _CreatedAt: 攻击时间
        :type CreatedAt: str
        :param _MachineIp: 目标服务器IP
        :type MachineIp: str
        :param _MachineName: 目标服务器名称
        :type MachineName: str
        :param _DstIp: 目标IP
        :type DstIp: str
        :param _DstPort: 目标端口
        :type DstPort: int
        :param _HttpContent: 攻击内容
        :type HttpContent: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Id = None
        self._Uuid = None
        self._SrcIp = None
        self._SrcPort = None
        self._HttpMethod = None
        self._HttpCgi = None
        self._HttpParam = None
        self._VulType = None
        self._CreatedAt = None
        self._MachineIp = None
        self._MachineName = None
        self._DstIp = None
        self._DstPort = None
        self._HttpContent = None
        self._MachineExtraInfo = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def SrcPort(self):
        return self._SrcPort

    @SrcPort.setter
    def SrcPort(self, SrcPort):
        self._SrcPort = SrcPort

    @property
    def HttpMethod(self):
        return self._HttpMethod

    @HttpMethod.setter
    def HttpMethod(self, HttpMethod):
        self._HttpMethod = HttpMethod

    @property
    def HttpCgi(self):
        return self._HttpCgi

    @HttpCgi.setter
    def HttpCgi(self, HttpCgi):
        self._HttpCgi = HttpCgi

    @property
    def HttpParam(self):
        return self._HttpParam

    @HttpParam.setter
    def HttpParam(self, HttpParam):
        self._HttpParam = HttpParam

    @property
    def VulType(self):
        return self._VulType

    @VulType.setter
    def VulType(self, VulType):
        self._VulType = VulType

    @property
    def CreatedAt(self):
        return self._CreatedAt

    @CreatedAt.setter
    def CreatedAt(self, CreatedAt):
        self._CreatedAt = CreatedAt

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def DstIp(self):
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def HttpContent(self):
        return self._HttpContent

    @HttpContent.setter
    def HttpContent(self, HttpContent):
        self._HttpContent = HttpContent

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._SrcIp = params.get("SrcIp")
        self._SrcPort = params.get("SrcPort")
        self._HttpMethod = params.get("HttpMethod")
        self._HttpCgi = params.get("HttpCgi")
        self._HttpParam = params.get("HttpParam")
        self._VulType = params.get("VulType")
        self._CreatedAt = params.get("CreatedAt")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._DstIp = params.get("DstIp")
        self._DstPort = params.get("DstPort")
        self._HttpContent = params.get("HttpContent")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAllJavaMemShellsRequest(AbstractModel):
    """DeleteAllJavaMemShells请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器quuid
        :type Quuid: str
        """
        self._Quuid = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAllJavaMemShellsResponse(AbstractModel):
    """DeleteAllJavaMemShells返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteAttackLogsRequest(AbstractModel):
    """DeleteAttackLogs请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 日志ID数组，最大100条。
        :type Ids: list of int non-negative
        :param _IsAll: 是否全部删除
        :type IsAll: bool
        """
        self._Ids = None
        self._IsAll = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def IsAll(self):
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._IsAll = params.get("IsAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAttackLogsResponse(AbstractModel):
    """DeleteAttackLogs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBanWhiteListRequest(AbstractModel):
    """DeleteBanWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 要删除的白名单ID列表 (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBanWhiteListResponse(AbstractModel):
    """DeleteBanWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselinePolicyRequest(AbstractModel):
    """DeleteBaselinePolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyIds: 策略Id
        :type PolicyIds: list of int
        """
        self._PolicyIds = None

    @property
    def PolicyIds(self):
        return self._PolicyIds

    @PolicyIds.setter
    def PolicyIds(self, PolicyIds):
        self._PolicyIds = PolicyIds


    def _deserialize(self, params):
        self._PolicyIds = params.get("PolicyIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBaselinePolicyResponse(AbstractModel):
    """DeleteBaselinePolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselineRuleIgnoreRequest(AbstractModel):
    """DeleteBaselineRuleIgnore请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleIds: 规则Id
        :type RuleIds: list of int
        """
        self._RuleIds = None

    @property
    def RuleIds(self):
        return self._RuleIds

    @RuleIds.setter
    def RuleIds(self, RuleIds):
        self._RuleIds = RuleIds


    def _deserialize(self, params):
        self._RuleIds = params.get("RuleIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBaselineRuleIgnoreResponse(AbstractModel):
    """DeleteBaselineRuleIgnore返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselineRuleRequest(AbstractModel):
    """DeleteBaselineRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleId: 规则Id
        :type RuleId: int
        """
        self._RuleId = None

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId


    def _deserialize(self, params):
        self._RuleId = params.get("RuleId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBaselineRuleResponse(AbstractModel):
    """DeleteBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselineStrategyRequest(AbstractModel):
    """DeleteBaselineStrategy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyId: 基线策略id
        :type StrategyId: int
        """
        self._StrategyId = None

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId


    def _deserialize(self, params):
        self._StrategyId = params.get("StrategyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBaselineStrategyResponse(AbstractModel):
    """DeleteBaselineStrategy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBaselineWeakPasswordRequest(AbstractModel):
    """DeleteBaselineWeakPassword请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PasswordIds: 弱口令Id
        :type PasswordIds: list of int
        """
        self._PasswordIds = None

    @property
    def PasswordIds(self):
        return self._PasswordIds

    @PasswordIds.setter
    def PasswordIds(self, PasswordIds):
        self._PasswordIds = PasswordIds


    def _deserialize(self, params):
        self._PasswordIds = params.get("PasswordIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBaselineWeakPasswordResponse(AbstractModel):
    """DeleteBaselineWeakPassword返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBashEventsRequest(AbstractModel):
    """DeleteBashEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBashEventsResponse(AbstractModel):
    """DeleteBashEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBashPoliciesRequest(AbstractModel):
    """DeleteBashPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBashPoliciesResponse(AbstractModel):
    """DeleteBashPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBashRulesRequest(AbstractModel):
    """DeleteBashRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBashRulesResponse(AbstractModel):
    """DeleteBashRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteBruteAttacksRequest(AbstractModel):
    """DeleteBruteAttacks请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 暴力破解事件Id数组。(最大 100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteBruteAttacksResponse(AbstractModel):
    """DeleteBruteAttacks返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLicenseRecordAllRequest(AbstractModel):
    """DeleteLicenseRecordAll请求参数结构体

    """


class DeleteLicenseRecordAllResponse(AbstractModel):
    """DeleteLicenseRecordAll返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLicenseRecordRequest(AbstractModel):
    """DeleteLicenseRecord请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LicenseId: 授权ID ,可以用授权订单列表获取.
        :type LicenseId: int
        :param _LicenseType: 授权类型
        :type LicenseType: int
        :param _ResourceId: 资源ID
        :type ResourceId: str
        """
        self._LicenseId = None
        self._LicenseType = None
        self._ResourceId = None

    @property
    def LicenseId(self):
        return self._LicenseId

    @LicenseId.setter
    def LicenseId(self, LicenseId):
        self._LicenseId = LicenseId

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId


    def _deserialize(self, params):
        self._LicenseId = params.get("LicenseId")
        self._LicenseType = params.get("LicenseType")
        self._ResourceId = params.get("ResourceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteLicenseRecordResponse(AbstractModel):
    """DeleteLicenseRecord返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLogExportRequest(AbstractModel):
    """DeleteLogExport请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ExportId: 日志导出ID
        :type ExportId: str
        """
        self._ExportId = None

    @property
    def ExportId(self):
        return self._ExportId

    @ExportId.setter
    def ExportId(self, ExportId):
        self._ExportId = ExportId


    def _deserialize(self, params):
        self._ExportId = params.get("ExportId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteLogExportResponse(AbstractModel):
    """DeleteLogExport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteLoginWhiteListRequest(AbstractModel):
    """DeleteLoginWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 白名单ID (最大 100 条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteLoginWhiteListResponse(AbstractModel):
    """DeleteLoginWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMachineClearHistoryRequest(AbstractModel):
    """DeleteMachineClearHistory请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 需要删除的记录id值,最大长度100个
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteMachineClearHistoryResponse(AbstractModel):
    """DeleteMachineClearHistory返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMachineRequest(AbstractModel):
    """DeleteMachine请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机安全客户端Uuid。
        :type Uuid: str
        """
        self._Uuid = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteMachineResponse(AbstractModel):
    """DeleteMachine返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMachineTagRequest(AbstractModel):
    """DeleteMachineTag请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Rid: 关联的标签ID
        :type Rid: int
        """
        self._Rid = None

    @property
    def Rid(self):
        return self._Rid

    @Rid.setter
    def Rid(self, Rid):
        self._Rid = Rid


    def _deserialize(self, params):
        self._Rid = params.get("Rid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteMachineTagResponse(AbstractModel):
    """DeleteMachineTag返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMaliciousRequestWhiteListRequest(AbstractModel):
    """DeleteMaliciousRequestWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 白名单id (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteMaliciousRequestWhiteListResponse(AbstractModel):
    """DeleteMaliciousRequestWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMaliciousRequestsRequest(AbstractModel):
    """DeleteMaliciousRequests请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 恶意请求记录ID数组，(最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteMaliciousRequestsResponse(AbstractModel):
    """DeleteMaliciousRequests返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMalwareScanTaskRequest(AbstractModel):
    """DeleteMalwareScanTask请求参数结构体

    """


class DeleteMalwareScanTaskResponse(AbstractModel):
    """DeleteMalwareScanTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMalwareWhiteListRequest(AbstractModel):
    """DeleteMalwareWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteMalwareWhiteListResponse(AbstractModel):
    """DeleteMalwareWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteMalwaresRequest(AbstractModel):
    """DeleteMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马记录ID数组 (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteMalwaresResponse(AbstractModel):
    """DeleteMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNetAttackWhiteListRequest(AbstractModel):
    """DeleteNetAttackWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNetAttackWhiteListResponse(AbstractModel):
    """DeleteNetAttackWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteNonlocalLoginPlacesRequest(AbstractModel):
    """DeleteNonlocalLoginPlaces请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DelType: 删除异地登录事件的方式，可选值："Ids"、"Ip"、"All"，默认为Ids
        :type DelType: str
        :param _Ids: 异地登录事件ID数组。DelType为Ids或DelType未填时此项必填
        :type Ids: list of int non-negative
        :param _Ip: 异地登录事件的Ip。DelType为Ip时必填
        :type Ip: list of str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        """
        self._DelType = None
        self._Ids = None
        self._Ip = None
        self._Uuid = None

    @property
    def DelType(self):
        return self._DelType

    @DelType.setter
    def DelType(self, DelType):
        self._DelType = DelType

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._DelType = params.get("DelType")
        self._Ids = params.get("Ids")
        self._Ip = params.get("Ip")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteNonlocalLoginPlacesResponse(AbstractModel):
    """DeleteNonlocalLoginPlaces返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeletePrivilegeEventsRequest(AbstractModel):
    """DeletePrivilegeEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组. (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeletePrivilegeEventsResponse(AbstractModel):
    """DeletePrivilegeEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeletePrivilegeRulesRequest(AbstractModel):
    """DeletePrivilegeRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeletePrivilegeRulesResponse(AbstractModel):
    """DeletePrivilegeRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteProtectDirRequest(AbstractModel):
    """DeleteProtectDir请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 删除的目录ID 最大100条
        :type Ids: list of str
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteProtectDirResponse(AbstractModel):
    """DeleteProtectDir返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteReverseShellEventsRequest(AbstractModel):
    """DeleteReverseShellEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组. (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteReverseShellEventsResponse(AbstractModel):
    """DeleteReverseShellEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteReverseShellRulesRequest(AbstractModel):
    """DeleteReverseShellRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组. (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteReverseShellRulesResponse(AbstractModel):
    """DeleteReverseShellRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteRiskDnsEventRequest(AbstractModel):
    """DeleteRiskDnsEvent请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 恶意请求记录ID数组，(最大100条), 为空时全部删除
        :type Ids: list of int
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteRiskDnsEventResponse(AbstractModel):
    """DeleteRiskDnsEvent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteRiskDnsPolicyRequest(AbstractModel):
    """DeleteRiskDnsPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyIds: 策略ID
        :type PolicyIds: list of int
        """
        self._PolicyIds = None

    @property
    def PolicyIds(self):
        return self._PolicyIds

    @PolicyIds.setter
    def PolicyIds(self, PolicyIds):
        self._PolicyIds = PolicyIds


    def _deserialize(self, params):
        self._PolicyIds = params.get("PolicyIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteRiskDnsPolicyResponse(AbstractModel):
    """DeleteRiskDnsPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteScanTaskRequest(AbstractModel):
    """DeleteScanTask请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务Id
        :type TaskId: int
        :param _ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :type ModuleType: str
        :param _QuuidList: 自选服务器时生效，主机quuid的string数组
        :type QuuidList: list of str
        """
        self._TaskId = None
        self._ModuleType = None
        self._QuuidList = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def ModuleType(self):
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._ModuleType = params.get("ModuleType")
        self._QuuidList = params.get("QuuidList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteScanTaskResponse(AbstractModel):
    """DeleteScanTask返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteSearchTemplateRequest(AbstractModel):
    """DeleteSearchTemplate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 模板ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteSearchTemplateResponse(AbstractModel):
    """DeleteSearchTemplate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 0：成功，非0：失败
        :type Status: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._RequestId = params.get("RequestId")


class DeleteTagsRequest(AbstractModel):
    """DeleteTags请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 标签ID (最大100 条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteTagsResponse(AbstractModel):
    """DeleteTags返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteWebHookPolicyRequest(AbstractModel):
    """DeleteWebHookPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: id列表
        :type Ids: list of int
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteWebHookPolicyResponse(AbstractModel):
    """DeleteWebHookPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteWebHookReceiverRequest(AbstractModel):
    """DeleteWebHookReceiver请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: id数组
        :type Ids: list of int
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteWebHookReceiverResponse(AbstractModel):
    """DeleteWebHookReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteWebHookRuleRequest(AbstractModel):
    """DeleteWebHookRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 规则Id列表
        :type Ids: list of int
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteWebHookRuleResponse(AbstractModel):
    """DeleteWebHookRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteWebPageEventLogRequest(AbstractModel):
    """DeleteWebPageEventLog请求参数结构体

    """


class DeleteWebPageEventLogResponse(AbstractModel):
    """DeleteWebPageEventLog返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeliverTypeDetails(AbstractModel):
    """日志投递类型细节

    """

    def __init__(self):
        r"""
        :param _SecurityType: 安全模块类型 1: 入侵检测 2: 漏洞管理 3: 基线管理 4: 高级防御 5:客户端相关 6: 资产指纹
        :type SecurityType: int
        :param _LogType: 安全模块下的日志类型，http://tapd.woa.com/Teneyes/markdown_wikis/show/#1210131751002328905
        :type LogType: list of int
        :param _TopicId: kafka topic id
        :type TopicId: str
        :param _TopicName: kafka topic name
        :type TopicName: str
        :param _Switch: 投递开关 0关闭 1开启
        :type Switch: int
        :param _Status: 投递状态，0未开启 1正常 2异常
        :type Status: int
        :param _ErrInfo: 错误信息
        :type ErrInfo: str
        :param _StatusTime: 最近一次状态上报时间戳，s
        :type StatusTime: int
        """
        self._SecurityType = None
        self._LogType = None
        self._TopicId = None
        self._TopicName = None
        self._Switch = None
        self._Status = None
        self._ErrInfo = None
        self._StatusTime = None

    @property
    def SecurityType(self):
        return self._SecurityType

    @SecurityType.setter
    def SecurityType(self, SecurityType):
        self._SecurityType = SecurityType

    @property
    def LogType(self):
        return self._LogType

    @LogType.setter
    def LogType(self, LogType):
        self._LogType = LogType

    @property
    def TopicId(self):
        return self._TopicId

    @TopicId.setter
    def TopicId(self, TopicId):
        self._TopicId = TopicId

    @property
    def TopicName(self):
        return self._TopicName

    @TopicName.setter
    def TopicName(self, TopicName):
        self._TopicName = TopicName

    @property
    def Switch(self):
        return self._Switch

    @Switch.setter
    def Switch(self, Switch):
        self._Switch = Switch

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ErrInfo(self):
        return self._ErrInfo

    @ErrInfo.setter
    def ErrInfo(self, ErrInfo):
        self._ErrInfo = ErrInfo

    @property
    def StatusTime(self):
        return self._StatusTime

    @StatusTime.setter
    def StatusTime(self, StatusTime):
        self._StatusTime = StatusTime


    def _deserialize(self, params):
        self._SecurityType = params.get("SecurityType")
        self._LogType = params.get("LogType")
        self._TopicId = params.get("TopicId")
        self._TopicName = params.get("TopicName")
        self._Switch = params.get("Switch")
        self._Status = params.get("Status")
        self._ErrInfo = params.get("ErrInfo")
        self._StatusTime = params.get("StatusTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeABTestConfigRequest(AbstractModel):
    """DescribeABTestConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ProjectName: 灰度项目名称
        :type ProjectName: str
        """
        self._ProjectName = None

    @property
    def ProjectName(self):
        return self._ProjectName

    @ProjectName.setter
    def ProjectName(self, ProjectName):
        self._ProjectName = ProjectName


    def _deserialize(self, params):
        self._ProjectName = params.get("ProjectName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeABTestConfigResponse(AbstractModel):
    """DescribeABTestConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Config: 灰度项目配置
        :type Config: list of ABTestConfig
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Config = None
        self._RequestId = None

    @property
    def Config(self):
        return self._Config

    @Config.setter
    def Config(self, Config):
        self._Config = Config

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Config") is not None:
            self._Config = []
            for item in params.get("Config"):
                obj = ABTestConfig()
                obj._deserialize(item)
                self._Config.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAESKeyRequest(AbstractModel):
    """DescribeAESKey请求参数结构体

    """


class DescribeAESKeyResponse(AbstractModel):
    """DescribeAESKey返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeAccountStatisticsRequest(AbstractModel):
    """DescribeAccountStatistics请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Username - String - 是否必填：否 - 帐号用户名</li>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAccountStatisticsResponse(AbstractModel):
    """DescribeAccountStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 帐号统计列表记录总数。
        :type TotalCount: int
        :param _AccountStatistics: 帐号统计列表。
        :type AccountStatistics: list of AccountStatistics
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._AccountStatistics = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def AccountStatistics(self):
        return self._AccountStatistics

    @AccountStatistics.setter
    def AccountStatistics(self, AccountStatistics):
        self._AccountStatistics = AccountStatistics

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("AccountStatistics") is not None:
            self._AccountStatistics = []
            for item in params.get("AccountStatistics"):
                obj = AccountStatistics()
                obj._deserialize(item)
                self._AccountStatistics.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAgentInstallCommandRequest(AbstractModel):
    """DescribeAgentInstallCommand请求参数结构体

    """

    def __init__(self):
        r"""
        :param _IsCloud: 是否腾讯云
        :type IsCloud: bool
        :param _NetType: 网络类型：basic-基础网络，private-VPC, public-公网，direct-专线
        :type NetType: str
        :param _RegionCode: 地域标示, NetType=direct时必填
        :type RegionCode: str
        :param _VpcId: VpcId, NetType=direct时必填
        :type VpcId: str
        :param _TagIds: 标签ID列表，IsCloud=false时才会生效
        :type TagIds: list of int non-negative
        :param _ExpireDate: 命令有效期，非腾讯云时必填
        :type ExpireDate: str
        :param _Vip: 代理方式接入的vip
        :type Vip: str
        """
        self._IsCloud = None
        self._NetType = None
        self._RegionCode = None
        self._VpcId = None
        self._TagIds = None
        self._ExpireDate = None
        self._Vip = None

    @property
    def IsCloud(self):
        return self._IsCloud

    @IsCloud.setter
    def IsCloud(self, IsCloud):
        self._IsCloud = IsCloud

    @property
    def NetType(self):
        return self._NetType

    @NetType.setter
    def NetType(self, NetType):
        self._NetType = NetType

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def TagIds(self):
        return self._TagIds

    @TagIds.setter
    def TagIds(self, TagIds):
        self._TagIds = TagIds

    @property
    def ExpireDate(self):
        return self._ExpireDate

    @ExpireDate.setter
    def ExpireDate(self, ExpireDate):
        self._ExpireDate = ExpireDate

    @property
    def Vip(self):
        return self._Vip

    @Vip.setter
    def Vip(self, Vip):
        self._Vip = Vip


    def _deserialize(self, params):
        self._IsCloud = params.get("IsCloud")
        self._NetType = params.get("NetType")
        self._RegionCode = params.get("RegionCode")
        self._VpcId = params.get("VpcId")
        self._TagIds = params.get("TagIds")
        self._ExpireDate = params.get("ExpireDate")
        self._Vip = params.get("Vip")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAgentInstallCommandResponse(AbstractModel):
    """DescribeAgentInstallCommand返回参数结构体

    """

    def __init__(self):
        r"""
        :param _LinuxCommand: linux系统安装命令
        :type LinuxCommand: str
        :param _WindowsCommand: windows系统安装命令（windows2008及以上）
        :type WindowsCommand: str
        :param _WindowsStepOne: windows系统安装命令第一步（windows2003）
        :type WindowsStepOne: str
        :param _WindowsStepTwo: windows系统安装命令第二步（windows2003）
        :type WindowsStepTwo: str
        :param _WindowsDownloadUrl: windows版agent下载链接
        :type WindowsDownloadUrl: str
        :param _ARMCommand: Arm安装命令
注意：此字段可能返回 null，表示取不到有效值。
        :type ARMCommand: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._LinuxCommand = None
        self._WindowsCommand = None
        self._WindowsStepOne = None
        self._WindowsStepTwo = None
        self._WindowsDownloadUrl = None
        self._ARMCommand = None
        self._RequestId = None

    @property
    def LinuxCommand(self):
        return self._LinuxCommand

    @LinuxCommand.setter
    def LinuxCommand(self, LinuxCommand):
        self._LinuxCommand = LinuxCommand

    @property
    def WindowsCommand(self):
        return self._WindowsCommand

    @WindowsCommand.setter
    def WindowsCommand(self, WindowsCommand):
        self._WindowsCommand = WindowsCommand

    @property
    def WindowsStepOne(self):
        return self._WindowsStepOne

    @WindowsStepOne.setter
    def WindowsStepOne(self, WindowsStepOne):
        self._WindowsStepOne = WindowsStepOne

    @property
    def WindowsStepTwo(self):
        return self._WindowsStepTwo

    @WindowsStepTwo.setter
    def WindowsStepTwo(self, WindowsStepTwo):
        self._WindowsStepTwo = WindowsStepTwo

    @property
    def WindowsDownloadUrl(self):
        return self._WindowsDownloadUrl

    @WindowsDownloadUrl.setter
    def WindowsDownloadUrl(self, WindowsDownloadUrl):
        self._WindowsDownloadUrl = WindowsDownloadUrl

    @property
    def ARMCommand(self):
        return self._ARMCommand

    @ARMCommand.setter
    def ARMCommand(self, ARMCommand):
        self._ARMCommand = ARMCommand

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._LinuxCommand = params.get("LinuxCommand")
        self._WindowsCommand = params.get("WindowsCommand")
        self._WindowsStepOne = params.get("WindowsStepOne")
        self._WindowsStepTwo = params.get("WindowsStepTwo")
        self._WindowsDownloadUrl = params.get("WindowsDownloadUrl")
        self._ARMCommand = params.get("ARMCommand")
        self._RequestId = params.get("RequestId")


class DescribeAgentInstallationTokenRequest(AbstractModel):
    """DescribeAgentInstallationToken请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ExpireDate: token 过期时间
        :type ExpireDate: str
        """
        self._ExpireDate = None

    @property
    def ExpireDate(self):
        return self._ExpireDate

    @ExpireDate.setter
    def ExpireDate(self, ExpireDate):
        self._ExpireDate = ExpireDate


    def _deserialize(self, params):
        self._ExpireDate = params.get("ExpireDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAgentInstallationTokenResponse(AbstractModel):
    """DescribeAgentInstallationToken返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Token: 安装命令token
        :type Token: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Token = None
        self._RequestId = None

    @property
    def Token(self):
        return self._Token

    @Token.setter
    def Token(self, Token):
        self._Token = Token

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Token = params.get("Token")
        self._RequestId = params.get("RequestId")


class DescribeAlarmIncidentNodesRequest(AbstractModel):
    """DescribeAlarmIncidentNodes请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 机器uuid
        :type Uuid: str
        :param _AlarmVid: 告警vid
        :type AlarmVid: str
        :param _AlarmTime: 告警时间
        :type AlarmTime: int
        :param _TableId: 告警来源表ID
        :type TableId: int
        """
        self._Uuid = None
        self._AlarmVid = None
        self._AlarmTime = None
        self._TableId = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def AlarmVid(self):
        return self._AlarmVid

    @AlarmVid.setter
    def AlarmVid(self, AlarmVid):
        self._AlarmVid = AlarmVid

    @property
    def AlarmTime(self):
        return self._AlarmTime

    @AlarmTime.setter
    def AlarmTime(self, AlarmTime):
        self._AlarmTime = AlarmTime

    @property
    def TableId(self):
        return self._TableId

    @TableId.setter
    def TableId(self, TableId):
        self._TableId = TableId


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._AlarmVid = params.get("AlarmVid")
        self._AlarmTime = params.get("AlarmTime")
        self._TableId = params.get("TableId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAlarmIncidentNodesResponse(AbstractModel):
    """DescribeAlarmIncidentNodes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IncidentNodes: 告警点所在事件的所有节点信息,可能包含多事件
注意：此字段可能返回 null，表示取不到有效值。
        :type IncidentNodes: list of IncidentVertexInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IncidentNodes = None
        self._RequestId = None

    @property
    def IncidentNodes(self):
        return self._IncidentNodes

    @IncidentNodes.setter
    def IncidentNodes(self, IncidentNodes):
        self._IncidentNodes = IncidentNodes

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("IncidentNodes") is not None:
            self._IncidentNodes = []
            for item in params.get("IncidentNodes"):
                obj = IncidentVertexInfo()
                obj._deserialize(item)
                self._IncidentNodes.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAlarmVertexIdRequest(AbstractModel):
    """DescribeAlarmVertexId请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 机器uuid
        :type Uuid: str
        :param _StartTime: 开始时间戳
        :type StartTime: int
        :param _EndTime: 结束时间戳
        :type EndTime: int
        """
        self._Uuid = None
        self._StartTime = None
        self._EndTime = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAlarmVertexIdResponse(AbstractModel):
    """DescribeAlarmVertexId返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AlarmVertexIds: 告警点id列表
注意：此字段可能返回 null，表示取不到有效值。
        :type AlarmVertexIds: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AlarmVertexIds = None
        self._RequestId = None

    @property
    def AlarmVertexIds(self):
        return self._AlarmVertexIds

    @AlarmVertexIds.setter
    def AlarmVertexIds(self, AlarmVertexIds):
        self._AlarmVertexIds = AlarmVertexIds

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AlarmVertexIds = params.get("AlarmVertexIds")
        self._RequestId = params.get("RequestId")


class DescribeAssetAppCountRequest(AbstractModel):
    """DescribeAssetAppCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：搜索返回所有软件名包含Name的进程列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetAppCountResponse(AbstractModel):
    """DescribeAssetAppCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Apps: 各软件应用数量
注意：此字段可能返回 null，表示取不到有效值。
        :type Apps: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Apps = None
        self._RequestId = None

    @property
    def Apps(self):
        return self._Apps

    @Apps.setter
    def Apps(self, Apps):
        self._Apps = Apps

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Apps") is not None:
            self._Apps = []
            for item in params.get("Apps"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Apps.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetAppListRequest(AbstractModel):
    """DescribeAssetAppList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of AssetFilters
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime|ProcessCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetAppListResponse(AbstractModel):
    """DescribeAssetAppList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Apps: 应用列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Apps: list of AssetAppBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Apps = None
        self._Total = None
        self._RequestId = None

    @property
    def Apps(self):
        return self._Apps

    @Apps.setter
    def Apps(self, Apps):
        self._Apps = Apps

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Apps") is not None:
            self._Apps = []
            for item in params.get("Apps"):
                obj = AssetAppBaseInfo()
                obj._deserialize(item)
                self._Apps.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetAppProcessListRequest(AbstractModel):
    """DescribeAssetAppProcessList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Name: App名
        :type Name: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Name = None
        self._Offset = None
        self._Limit = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Name = params.get("Name")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetAppProcessListResponse(AbstractModel):
    """DescribeAssetAppProcessList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Process: 进程列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Process: list of AssetAppProcessInfo
        :param _Total: 分区总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Process = None
        self._Total = None
        self._RequestId = None

    @property
    def Process(self):
        return self._Process

    @Process.setter
    def Process(self, Process):
        self._Process = Process

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Process") is not None:
            self._Process = []
            for item in params.get("Process"):
                obj = AssetAppProcessInfo()
                obj._deserialize(item)
                self._Process.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetCoreModuleInfoRequest(AbstractModel):
    """DescribeAssetCoreModuleInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Id: 内核模块ID
        :type Id: str
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetCoreModuleInfoResponse(AbstractModel):
    """DescribeAssetCoreModuleInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Module: 内核模块详情
        :type Module: :class:`tencentcloud.cwp.v20180228.models.AssetCoreModuleDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Module = None
        self._RequestId = None

    @property
    def Module(self):
        return self._Module

    @Module.setter
    def Module(self, Module):
        self._Module = Module

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Module") is not None:
            self._Module = AssetCoreModuleDetail()
            self._Module._deserialize(params.get("Module"))
        self._RequestId = params.get("RequestId")


class DescribeAssetCoreModuleListRequest(AbstractModel):
    """DescribeAssetCoreModuleList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :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: list of AssetFilters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序依据[Size|FirstTime|ProcessCount|ModuleCount]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetCoreModuleListResponse(AbstractModel):
    """DescribeAssetCoreModuleList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Modules: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Modules: list of AssetCoreModuleBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Modules = None
        self._Total = None
        self._RequestId = None

    @property
    def Modules(self):
        return self._Modules

    @Modules.setter
    def Modules(self, Modules):
        self._Modules = Modules

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Modules") is not None:
            self._Modules = []
            for item in params.get("Modules"):
                obj = AssetCoreModuleBaseInfo()
                obj._deserialize(item)
                self._Modules.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetDatabaseCountRequest(AbstractModel):
    """DescribeAssetDatabaseCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的数据库列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetDatabaseCountResponse(AbstractModel):
    """DescribeAssetDatabaseCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Databases: 各数据库数量
        :type Databases: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Databases = None
        self._RequestId = None

    @property
    def Databases(self):
        return self._Databases

    @Databases.setter
    def Databases(self, Databases):
        self._Databases = Databases

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Databases") is not None:
            self._Databases = []
            for item in params.get("Databases"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Databases.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetDatabaseInfoRequest(AbstractModel):
    """DescribeAssetDatabaseInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Id: 数据库ID
        :type Id: str
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetDatabaseInfoResponse(AbstractModel):
    """DescribeAssetDatabaseInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Database: 数据库详情
        :type Database: :class:`tencentcloud.cwp.v20180228.models.AssetDatabaseDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Database = None
        self._RequestId = None

    @property
    def Database(self):
        return self._Database

    @Database.setter
    def Database(self, Database):
        self._Database = Database

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Database") is not None:
            self._Database = AssetDatabaseDetail()
            self._Database._deserialize(params.get("Database"))
        self._RequestId = params.get("RequestId")


class DescribeAssetDatabaseListRequest(AbstractModel):
    """DescribeAssetDatabaseList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of AssetFilters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetDatabaseListResponse(AbstractModel):
    """DescribeAssetDatabaseList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Databases: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Databases: list of AssetDatabaseBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Databases = None
        self._Total = None
        self._RequestId = None

    @property
    def Databases(self):
        return self._Databases

    @Databases.setter
    def Databases(self, Databases):
        self._Databases = Databases

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Databases") is not None:
            self._Databases = []
            for item in params.get("Databases"):
                obj = AssetDatabaseBaseInfo()
                obj._deserialize(item)
                self._Databases.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetDiskListRequest(AbstractModel):
    """DescribeAssetDiskList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Offset = None
        self._Limit = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetDiskListResponse(AbstractModel):
    """DescribeAssetDiskList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Disks: 磁盘分区列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Disks: list of AssetDiskPartitionInfo
        :param _Total: 分区总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Disks = None
        self._Total = None
        self._RequestId = None

    @property
    def Disks(self):
        return self._Disks

    @Disks.setter
    def Disks(self, Disks):
        self._Disks = Disks

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Disks") is not None:
            self._Disks = []
            for item in params.get("Disks"):
                obj = AssetDiskPartitionInfo()
                obj._deserialize(item)
                self._Disks.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetEnvListRequest(AbstractModel):
    """DescribeAssetEnvList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Type: 该字段已废弃，由Filters代替
        :type Type: int
        :param _Filters: 过滤条件。
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>Name- string - 是否必填：否 - 环境变量名</li>
<li>Type- int - 是否必填：否 - 类型：0用户变量，1系统变量</li>
        :type Filters: list of AssetFilters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Type = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Type = params.get("Type")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetEnvListResponse(AbstractModel):
    """DescribeAssetEnvList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Envs: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Envs: list of AssetEnvBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Envs = None
        self._Total = None
        self._RequestId = None

    @property
    def Envs(self):
        return self._Envs

    @Envs.setter
    def Envs(self, Envs):
        self._Envs = Envs

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Envs") is not None:
            self._Envs = []
            for item in params.get("Envs"):
                obj = AssetEnvBaseInfo()
                obj._deserialize(item)
                self._Envs.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetHostTotalCountRequest(AbstractModel):
    """DescribeAssetHostTotalCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        """
        self._Uuid = None
        self._Quuid = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetHostTotalCountResponse(AbstractModel):
    """DescribeAssetHostTotalCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Types: 各项资源数量
system : 资源监控
account: 账号
port: 端口
process: 进程
app: 应用软件
database:数据库
webapp: Web应用
webframe: Web框架
webservice: Web服务
weblocation: Web站点
systempackage: 系统安装包
jar: jar包
initservice:启动服务
env: 环境变量
coremodule: 内核模块
        :type Types: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Types = None
        self._RequestId = None

    @property
    def Types(self):
        return self._Types

    @Types.setter
    def Types(self, Types):
        self._Types = Types

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Types") is not None:
            self._Types = []
            for item in params.get("Types"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Types.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetInfoRequest(AbstractModel):
    """DescribeAssetInfo请求参数结构体

    """


class DescribeAssetInfoResponse(AbstractModel):
    """DescribeAssetInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineCount: 主机数
        :type MachineCount: int
        :param _AccountCount: 账号数
        :type AccountCount: int
        :param _PortCount: 端口数
        :type PortCount: int
        :param _ProcessCount: 进程数
        :type ProcessCount: int
        :param _SoftwareCount: 软件数
        :type SoftwareCount: int
        :param _DatabaseCount: 数据库数
        :type DatabaseCount: int
        :param _WebAppCount: Web应用数
        :type WebAppCount: int
        :param _WebFrameCount: Web框架数
        :type WebFrameCount: int
        :param _WebServiceCount: Web服务数
        :type WebServiceCount: int
        :param _WebLocationCount: Web站点数
        :type WebLocationCount: int
        :param _AccountNewCount: 账号今日新增
        :type AccountNewCount: int
        :param _PortNewCount: 端口今日新增
        :type PortNewCount: int
        :param _ProcessNewCount: 进程今日新增
        :type ProcessNewCount: int
        :param _SoftwareNewCount: 软件今日新增
        :type SoftwareNewCount: int
        :param _DatabaseNewCount: 数据库今日新增
        :type DatabaseNewCount: int
        :param _WebAppNewCount: Web应用今日新增
        :type WebAppNewCount: int
        :param _WebFrameNewCount: Web框架今日新增
        :type WebFrameNewCount: int
        :param _WebServiceNewCount: Web服务今日新增
        :type WebServiceNewCount: int
        :param _WebLocationNewCount: Web站点今日新增
        :type WebLocationNewCount: int
        :param _MachineNewCount: 主机今日新增
        :type MachineNewCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MachineCount = None
        self._AccountCount = None
        self._PortCount = None
        self._ProcessCount = None
        self._SoftwareCount = None
        self._DatabaseCount = None
        self._WebAppCount = None
        self._WebFrameCount = None
        self._WebServiceCount = None
        self._WebLocationCount = None
        self._AccountNewCount = None
        self._PortNewCount = None
        self._ProcessNewCount = None
        self._SoftwareNewCount = None
        self._DatabaseNewCount = None
        self._WebAppNewCount = None
        self._WebFrameNewCount = None
        self._WebServiceNewCount = None
        self._WebLocationNewCount = None
        self._MachineNewCount = None
        self._RequestId = None

    @property
    def MachineCount(self):
        return self._MachineCount

    @MachineCount.setter
    def MachineCount(self, MachineCount):
        self._MachineCount = MachineCount

    @property
    def AccountCount(self):
        return self._AccountCount

    @AccountCount.setter
    def AccountCount(self, AccountCount):
        self._AccountCount = AccountCount

    @property
    def PortCount(self):
        return self._PortCount

    @PortCount.setter
    def PortCount(self, PortCount):
        self._PortCount = PortCount

    @property
    def ProcessCount(self):
        return self._ProcessCount

    @ProcessCount.setter
    def ProcessCount(self, ProcessCount):
        self._ProcessCount = ProcessCount

    @property
    def SoftwareCount(self):
        return self._SoftwareCount

    @SoftwareCount.setter
    def SoftwareCount(self, SoftwareCount):
        self._SoftwareCount = SoftwareCount

    @property
    def DatabaseCount(self):
        return self._DatabaseCount

    @DatabaseCount.setter
    def DatabaseCount(self, DatabaseCount):
        self._DatabaseCount = DatabaseCount

    @property
    def WebAppCount(self):
        return self._WebAppCount

    @WebAppCount.setter
    def WebAppCount(self, WebAppCount):
        self._WebAppCount = WebAppCount

    @property
    def WebFrameCount(self):
        return self._WebFrameCount

    @WebFrameCount.setter
    def WebFrameCount(self, WebFrameCount):
        self._WebFrameCount = WebFrameCount

    @property
    def WebServiceCount(self):
        return self._WebServiceCount

    @WebServiceCount.setter
    def WebServiceCount(self, WebServiceCount):
        self._WebServiceCount = WebServiceCount

    @property
    def WebLocationCount(self):
        return self._WebLocationCount

    @WebLocationCount.setter
    def WebLocationCount(self, WebLocationCount):
        self._WebLocationCount = WebLocationCount

    @property
    def AccountNewCount(self):
        return self._AccountNewCount

    @AccountNewCount.setter
    def AccountNewCount(self, AccountNewCount):
        self._AccountNewCount = AccountNewCount

    @property
    def PortNewCount(self):
        return self._PortNewCount

    @PortNewCount.setter
    def PortNewCount(self, PortNewCount):
        self._PortNewCount = PortNewCount

    @property
    def ProcessNewCount(self):
        return self._ProcessNewCount

    @ProcessNewCount.setter
    def ProcessNewCount(self, ProcessNewCount):
        self._ProcessNewCount = ProcessNewCount

    @property
    def SoftwareNewCount(self):
        return self._SoftwareNewCount

    @SoftwareNewCount.setter
    def SoftwareNewCount(self, SoftwareNewCount):
        self._SoftwareNewCount = SoftwareNewCount

    @property
    def DatabaseNewCount(self):
        return self._DatabaseNewCount

    @DatabaseNewCount.setter
    def DatabaseNewCount(self, DatabaseNewCount):
        self._DatabaseNewCount = DatabaseNewCount

    @property
    def WebAppNewCount(self):
        return self._WebAppNewCount

    @WebAppNewCount.setter
    def WebAppNewCount(self, WebAppNewCount):
        self._WebAppNewCount = WebAppNewCount

    @property
    def WebFrameNewCount(self):
        return self._WebFrameNewCount

    @WebFrameNewCount.setter
    def WebFrameNewCount(self, WebFrameNewCount):
        self._WebFrameNewCount = WebFrameNewCount

    @property
    def WebServiceNewCount(self):
        return self._WebServiceNewCount

    @WebServiceNewCount.setter
    def WebServiceNewCount(self, WebServiceNewCount):
        self._WebServiceNewCount = WebServiceNewCount

    @property
    def WebLocationNewCount(self):
        return self._WebLocationNewCount

    @WebLocationNewCount.setter
    def WebLocationNewCount(self, WebLocationNewCount):
        self._WebLocationNewCount = WebLocationNewCount

    @property
    def MachineNewCount(self):
        return self._MachineNewCount

    @MachineNewCount.setter
    def MachineNewCount(self, MachineNewCount):
        self._MachineNewCount = MachineNewCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MachineCount = params.get("MachineCount")
        self._AccountCount = params.get("AccountCount")
        self._PortCount = params.get("PortCount")
        self._ProcessCount = params.get("ProcessCount")
        self._SoftwareCount = params.get("SoftwareCount")
        self._DatabaseCount = params.get("DatabaseCount")
        self._WebAppCount = params.get("WebAppCount")
        self._WebFrameCount = params.get("WebFrameCount")
        self._WebServiceCount = params.get("WebServiceCount")
        self._WebLocationCount = params.get("WebLocationCount")
        self._AccountNewCount = params.get("AccountNewCount")
        self._PortNewCount = params.get("PortNewCount")
        self._ProcessNewCount = params.get("ProcessNewCount")
        self._SoftwareNewCount = params.get("SoftwareNewCount")
        self._DatabaseNewCount = params.get("DatabaseNewCount")
        self._WebAppNewCount = params.get("WebAppNewCount")
        self._WebFrameNewCount = params.get("WebFrameNewCount")
        self._WebServiceNewCount = params.get("WebServiceNewCount")
        self._WebLocationNewCount = params.get("WebLocationNewCount")
        self._MachineNewCount = params.get("MachineNewCount")
        self._RequestId = params.get("RequestId")


class DescribeAssetInitServiceListRequest(AbstractModel):
    """DescribeAssetInitServiceList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :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: list of AssetFilters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetInitServiceListResponse(AbstractModel):
    """DescribeAssetInitServiceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Services: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Services: list of AssetInitServiceBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Services = None
        self._Total = None
        self._RequestId = None

    @property
    def Services(self):
        return self._Services

    @Services.setter
    def Services(self, Services):
        self._Services = Services

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Services") is not None:
            self._Services = []
            for item in params.get("Services"):
                obj = AssetInitServiceBaseInfo()
                obj._deserialize(item)
                self._Services.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetJarInfoRequest(AbstractModel):
    """DescribeAssetJarInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Id: Jar包ID
        :type Id: str
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetJarInfoResponse(AbstractModel):
    """DescribeAssetJarInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Jar: Jar包详情
        :type Jar: :class:`tencentcloud.cwp.v20180228.models.AssetJarDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Jar = None
        self._RequestId = None

    @property
    def Jar(self):
        return self._Jar

    @Jar.setter
    def Jar(self, Jar):
        self._Jar = Jar

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Jar") is not None:
            self._Jar = AssetJarDetail()
            self._Jar._deserialize(params.get("Jar"))
        self._RequestId = params.get("RequestId")


class DescribeAssetJarListRequest(AbstractModel):
    """DescribeAssetJarList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :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: list of AssetFilters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetJarListResponse(AbstractModel):
    """DescribeAssetJarList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Jars: 应用列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Jars: list of AssetJarBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Jars = None
        self._Total = None
        self._RequestId = None

    @property
    def Jars(self):
        return self._Jars

    @Jars.setter
    def Jars(self, Jars):
        self._Jars = Jars

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Jars") is not None:
            self._Jars = []
            for item in params.get("Jars"):
                obj = AssetJarBaseInfo()
                obj._deserialize(item)
                self._Jars.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetLoadInfoRequest(AbstractModel):
    """DescribeAssetLoadInfo请求参数结构体

    """


class DescribeAssetLoadInfoResponse(AbstractModel):
    """DescribeAssetLoadInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :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: str
        """
        self._CpuLoad = None
        self._MemLoad = None
        self._DiskLoad = None
        self._RequestId = None

    @property
    def CpuLoad(self):
        return self._CpuLoad

    @CpuLoad.setter
    def CpuLoad(self, CpuLoad):
        self._CpuLoad = CpuLoad

    @property
    def MemLoad(self):
        return self._MemLoad

    @MemLoad.setter
    def MemLoad(self, MemLoad):
        self._MemLoad = MemLoad

    @property
    def DiskLoad(self):
        return self._DiskLoad

    @DiskLoad.setter
    def DiskLoad(self, DiskLoad):
        self._DiskLoad = DiskLoad

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CpuLoad") is not None:
            self._CpuLoad = AssetLoadSummary()
            self._CpuLoad._deserialize(params.get("CpuLoad"))
        if params.get("MemLoad") is not None:
            self._MemLoad = AssetLoadSummary()
            self._MemLoad._deserialize(params.get("MemLoad"))
        if params.get("DiskLoad") is not None:
            self._DiskLoad = AssetLoadSummary()
            self._DiskLoad._deserialize(params.get("DiskLoad"))
        self._RequestId = params.get("RequestId")


class DescribeAssetMachineDetailRequest(AbstractModel):
    """DescribeAssetMachineDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        """
        self._Quuid = None
        self._Uuid = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetMachineDetailResponse(AbstractModel):
    """DescribeAssetMachineDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineDetail: 主机详情
        :type MachineDetail: :class:`tencentcloud.cwp.v20180228.models.AssetMachineDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MachineDetail = None
        self._RequestId = None

    @property
    def MachineDetail(self):
        return self._MachineDetail

    @MachineDetail.setter
    def MachineDetail(self, MachineDetail):
        self._MachineDetail = MachineDetail

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("MachineDetail") is not None:
            self._MachineDetail = AssetMachineDetail()
            self._MachineDetail._deserialize(params.get("MachineDetail"))
        self._RequestId = params.get("RequestId")


class DescribeAssetMachineListRequest(AbstractModel):
    """DescribeAssetMachineList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>MachineName  主机名称



InstanceID  实例ID  

 

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: list of Filter
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序[FirstTime|PartitionCount]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetMachineListResponse(AbstractModel):
    """DescribeAssetMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _Machines: 记录列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Machines: list of AssetMachineBaseInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Machines = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Machines(self):
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("Machines") is not None:
            self._Machines = []
            for item in params.get("Machines"):
                obj = AssetMachineBaseInfo()
                obj._deserialize(item)
                self._Machines.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetMachineTagTopRequest(AbstractModel):
    """DescribeAssetMachineTagTop请求参数结构体

    """


class DescribeAssetMachineTagTopResponse(AbstractModel):
    """DescribeAssetMachineTagTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Tags: Top5标签及数量
注意：此字段可能返回 null，表示取不到有效值。
        :type Tags: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Tags = None
        self._RequestId = None

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetPlanTaskListRequest(AbstractModel):
    """DescribeAssetPlanTaskList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :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: list of AssetFilters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetPlanTaskListResponse(AbstractModel):
    """DescribeAssetPlanTaskList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Tasks: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Tasks: list of AssetPlanTask
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Tasks = None
        self._Total = None
        self._RequestId = None

    @property
    def Tasks(self):
        return self._Tasks

    @Tasks.setter
    def Tasks(self, Tasks):
        self._Tasks = Tasks

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Tasks") is not None:
            self._Tasks = []
            for item in params.get("Tasks"):
                obj = AssetPlanTask()
                obj._deserialize(item)
                self._Tasks.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetPortCountRequest(AbstractModel):
    """DescribeAssetPortCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Port: 搜索条件：返回指定端口号数据
        :type Port: int
        """
        self._Port = None

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port


    def _deserialize(self, params):
        self._Port = params.get("Port")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetPortCountResponse(AbstractModel):
    """DescribeAssetPortCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ports: 各进程数量
        :type Ports: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ports = None
        self._RequestId = None

    @property
    def Ports(self):
        return self._Ports

    @Ports.setter
    def Ports(self, Ports):
        self._Ports = Ports

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Ports") is not None:
            self._Ports = []
            for item in params.get("Ports"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Ports.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetPortInfoListRequest(AbstractModel):
    """DescribeAssetPortInfoList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime|StartTime]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetPortInfoListResponse(AbstractModel):
    """DescribeAssetPortInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Ports: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Ports: list of AssetPortBaseInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Ports = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Ports(self):
        return self._Ports

    @Ports.setter
    def Ports(self, Ports):
        self._Ports = Ports

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("Ports") is not None:
            self._Ports = []
            for item in params.get("Ports"):
                obj = AssetPortBaseInfo()
                obj._deserialize(item)
                self._Ports.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetProcessCountRequest(AbstractModel):
    """DescribeAssetProcessCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：搜索返回所有进程名包含Name的进程列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetProcessCountResponse(AbstractModel):
    """DescribeAssetProcessCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Process: 各进程数量
注意：此字段可能返回 null，表示取不到有效值。
        :type Process: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Process = None
        self._RequestId = None

    @property
    def Process(self):
        return self._Process

    @Process.setter
    def Process(self, Process):
        self._Process = Process

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Process") is not None:
            self._Process = []
            for item in params.get("Process"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Process.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetProcessInfoListRequest(AbstractModel):
    """DescribeAssetProcessInfoList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime|StartTime]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetProcessInfoListResponse(AbstractModel):
    """DescribeAssetProcessInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Process: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Process: list of AssetProcessBaseInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Process = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Process(self):
        return self._Process

    @Process.setter
    def Process(self, Process):
        self._Process = Process

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("Process") is not None:
            self._Process = []
            for item in params.get("Process"):
                obj = AssetProcessBaseInfo()
                obj._deserialize(item)
                self._Process.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetRecentMachineInfoRequest(AbstractModel):
    """DescribeAssetRecentMachineInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BeginDate: 开始时间，如：2020-09-22
        :type BeginDate: str
        :param _EndDate: 结束时间，如：2020-09-22
        :type EndDate: str
        """
        self._BeginDate = None
        self._EndDate = None

    @property
    def BeginDate(self):
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate


    def _deserialize(self, params):
        self._BeginDate = params.get("BeginDate")
        self._EndDate = params.get("EndDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetRecentMachineInfoResponse(AbstractModel):
    """DescribeAssetRecentMachineInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalList: 总数量列表
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalList: list of AssetKeyVal
        :param _LiveList: 在线数量列表
注意：此字段可能返回 null，表示取不到有效值。
        :type LiveList: list of AssetKeyVal
        :param _OfflineList: 离线数量列表
注意：此字段可能返回 null，表示取不到有效值。
        :type OfflineList: list of AssetKeyVal
        :param _RiskList: 风险数量列表
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskList: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalList = None
        self._LiveList = None
        self._OfflineList = None
        self._RiskList = None
        self._RequestId = None

    @property
    def TotalList(self):
        return self._TotalList

    @TotalList.setter
    def TotalList(self, TotalList):
        self._TotalList = TotalList

    @property
    def LiveList(self):
        return self._LiveList

    @LiveList.setter
    def LiveList(self, LiveList):
        self._LiveList = LiveList

    @property
    def OfflineList(self):
        return self._OfflineList

    @OfflineList.setter
    def OfflineList(self, OfflineList):
        self._OfflineList = OfflineList

    @property
    def RiskList(self):
        return self._RiskList

    @RiskList.setter
    def RiskList(self, RiskList):
        self._RiskList = RiskList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("TotalList") is not None:
            self._TotalList = []
            for item in params.get("TotalList"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._TotalList.append(obj)
        if params.get("LiveList") is not None:
            self._LiveList = []
            for item in params.get("LiveList"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._LiveList.append(obj)
        if params.get("OfflineList") is not None:
            self._OfflineList = []
            for item in params.get("OfflineList"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._OfflineList.append(obj)
        if params.get("RiskList") is not None:
            self._RiskList = []
            for item in params.get("RiskList"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._RiskList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetSystemPackageListRequest(AbstractModel):
    """DescribeAssetSystemPackageList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :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: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc-升序 或 desc-降序。默认：desc-降序
        :type Order: str
        :param _By: 排序方式可选：[FistTime|InstallTime:安装时间]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetSystemPackageListResponse(AbstractModel):
    """DescribeAssetSystemPackageList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Packages: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Packages: list of AssetSystemPackageInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Packages = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Packages(self):
        return self._Packages

    @Packages.setter
    def Packages(self, Packages):
        self._Packages = Packages

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("Packages") is not None:
            self._Packages = []
            for item in params.get("Packages"):
                obj = AssetSystemPackageInfo()
                obj._deserialize(item)
                self._Packages.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetTotalCountRequest(AbstractModel):
    """DescribeAssetTotalCount请求参数结构体

    """


class DescribeAssetTotalCountResponse(AbstractModel):
    """DescribeAssetTotalCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Types: 各项资源数量
system : 资源监控
account: 账号
port: 端口
process: 进程
app: 应用软件
database:数据库
webapp: Web应用
webframe: Web框架
webservice: Web服务
weblocation: Web站点
jar: Jar包
initservice: 启动服务
planTask:计划任务
env:环境变量
coremoudle:内核模块
        :type Types: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Types = None
        self._RequestId = None

    @property
    def Types(self):
        return self._Types

    @Types.setter
    def Types(self, Types):
        self._Types = Types

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Types") is not None:
            self._Types = []
            for item in params.get("Types"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Types.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetTypeTopRequest(AbstractModel):
    """DescribeAssetTypeTop请求参数结构体

    """


class DescribeAssetTypeTopResponse(AbstractModel):
    """DescribeAssetTypeTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _User: 账号Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type User: list of AssetKeyVal
        :param _Port: 端口Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type Port: list of AssetKeyVal
        :param _Process: 进程Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type Process: list of AssetKeyVal
        :param _Software: 软件Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type Software: list of AssetKeyVal
        :param _Database: 数据库Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type Database: list of AssetKeyVal
        :param _WebApp: Web应用Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type WebApp: list of AssetKeyVal
        :param _WebLocation: Web站点Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type WebLocation: list of AssetKeyVal
        :param _WebFrame: Web框架Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type WebFrame: list of AssetKeyVal
        :param _WebService: Web服务Top5
注意：此字段可能返回 null，表示取不到有效值。
        :type WebService: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._User = None
        self._Port = None
        self._Process = None
        self._Software = None
        self._Database = None
        self._WebApp = None
        self._WebLocation = None
        self._WebFrame = None
        self._WebService = None
        self._RequestId = None

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def Process(self):
        return self._Process

    @Process.setter
    def Process(self, Process):
        self._Process = Process

    @property
    def Software(self):
        return self._Software

    @Software.setter
    def Software(self, Software):
        self._Software = Software

    @property
    def Database(self):
        return self._Database

    @Database.setter
    def Database(self, Database):
        self._Database = Database

    @property
    def WebApp(self):
        return self._WebApp

    @WebApp.setter
    def WebApp(self, WebApp):
        self._WebApp = WebApp

    @property
    def WebLocation(self):
        return self._WebLocation

    @WebLocation.setter
    def WebLocation(self, WebLocation):
        self._WebLocation = WebLocation

    @property
    def WebFrame(self):
        return self._WebFrame

    @WebFrame.setter
    def WebFrame(self, WebFrame):
        self._WebFrame = WebFrame

    @property
    def WebService(self):
        return self._WebService

    @WebService.setter
    def WebService(self, WebService):
        self._WebService = WebService

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("User") is not None:
            self._User = []
            for item in params.get("User"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._User.append(obj)
        if params.get("Port") is not None:
            self._Port = []
            for item in params.get("Port"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Port.append(obj)
        if params.get("Process") is not None:
            self._Process = []
            for item in params.get("Process"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Process.append(obj)
        if params.get("Software") is not None:
            self._Software = []
            for item in params.get("Software"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Software.append(obj)
        if params.get("Database") is not None:
            self._Database = []
            for item in params.get("Database"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Database.append(obj)
        if params.get("WebApp") is not None:
            self._WebApp = []
            for item in params.get("WebApp"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._WebApp.append(obj)
        if params.get("WebLocation") is not None:
            self._WebLocation = []
            for item in params.get("WebLocation"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._WebLocation.append(obj)
        if params.get("WebFrame") is not None:
            self._WebFrame = []
            for item in params.get("WebFrame"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._WebFrame.append(obj)
        if params.get("WebService") is not None:
            self._WebService = []
            for item in params.get("WebService"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._WebService.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetTypesRequest(AbstractModel):
    """DescribeAssetTypes请求参数结构体

    """


class DescribeAssetTypesResponse(AbstractModel):
    """DescribeAssetTypes返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Types: 资产指纹类型列表
        :type Types: list of AssetType
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Types = None
        self._RequestId = None

    @property
    def Types(self):
        return self._Types

    @Types.setter
    def Types(self, Types):
        self._Types = Types

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Types") is not None:
            self._Types = []
            for item in params.get("Types"):
                obj = AssetType()
                obj._deserialize(item)
                self._Types.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetUserCountRequest(AbstractModel):
    """DescribeAssetUserCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：搜索名称中包含name的所有账号列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetUserCountResponse(AbstractModel):
    """DescribeAssetUserCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Users: 各账号数量
        :type Users: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Users = None
        self._RequestId = None

    @property
    def Users(self):
        return self._Users

    @Users.setter
    def Users(self, Users):
        self._Users = Users

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Users") is not None:
            self._Users = []
            for item in params.get("Users"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._Users.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetUserInfoRequest(AbstractModel):
    """DescribeAssetUserInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 云服务器UUID
        :type Quuid: str
        :param _Uuid: 主机安全UUID
        :type Uuid: str
        :param _Name: 账户名
        :type Name: str
        """
        self._Quuid = None
        self._Uuid = None
        self._Name = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetUserInfoResponse(AbstractModel):
    """DescribeAssetUserInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _User: 用户详细信息
        :type User: :class:`tencentcloud.cwp.v20180228.models.AssetUserDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._User = None
        self._RequestId = None

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("User") is not None:
            self._User = AssetUserDetail()
            self._User._deserialize(params.get("User"))
        self._RequestId = params.get("RequestId")


class DescribeAssetUserKeyListRequest(AbstractModel):
    """DescribeAssetUserKeyList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Name: 账号名
        :type Name: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Name = None
        self._Offset = None
        self._Limit = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Name = params.get("Name")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetUserKeyListResponse(AbstractModel):
    """DescribeAssetUserKeyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Keys: 公钥列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Keys: list of AssetUserKeyInfo
        :param _Total: 分区总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Keys = None
        self._Total = None
        self._RequestId = None

    @property
    def Keys(self):
        return self._Keys

    @Keys.setter
    def Keys(self, Keys):
        self._Keys = Keys

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Keys") is not None:
            self._Keys = []
            for item in params.get("Keys"):
                obj = AssetUserKeyInfo()
                obj._deserialize(item)
                self._Keys.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetUserListRequest(AbstractModel):
    """DescribeAssetUserList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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>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>
<li>Os -String 是否必填: 否 - 操作系统( DescribeMachineOsList 接口 值 )</li>
        :type Filters: list of Filter
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|LoginTime|PasswordChangeTime|PasswordDuaTime]
PasswordLockDays
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetUserListResponse(AbstractModel):
    """DescribeAssetUserList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Users: 账号列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Users: list of AssetUserBaseInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Users = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Users(self):
        return self._Users

    @Users.setter
    def Users(self, Users):
        self._Users = Users

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("Users") is not None:
            self._Users = []
            for item in params.get("Users"):
                obj = AssetUserBaseInfo()
                obj._deserialize(item)
                self._Users.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebAppCountRequest(AbstractModel):
    """DescribeAssetWebAppCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的所有Web应用列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebAppCountResponse(AbstractModel):
    """DescribeAssetWebAppCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebApps: 各Web应用数量
        :type WebApps: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebApps = None
        self._RequestId = None

    @property
    def WebApps(self):
        return self._WebApps

    @WebApps.setter
    def WebApps(self, WebApps):
        self._WebApps = WebApps

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("WebApps") is not None:
            self._WebApps = []
            for item in params.get("WebApps"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._WebApps.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebAppListRequest(AbstractModel):
    """DescribeAssetWebAppList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|PluginCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebAppListResponse(AbstractModel):
    """DescribeAssetWebAppList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _WebApps: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type WebApps: list of AssetWebAppBaseInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._WebApps = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def WebApps(self):
        return self._WebApps

    @WebApps.setter
    def WebApps(self, WebApps):
        self._WebApps = WebApps

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("WebApps") is not None:
            self._WebApps = []
            for item in params.get("WebApps"):
                obj = AssetWebAppBaseInfo()
                obj._deserialize(item)
                self._WebApps.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebAppPluginListRequest(AbstractModel):
    """DescribeAssetWebAppPluginList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Id: Web应用ID
        :type Id: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None
        self._Offset = None
        self._Limit = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebAppPluginListResponse(AbstractModel):
    """DescribeAssetWebAppPluginList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Plugins: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Plugins: list of AssetWebAppPluginInfo
        :param _Total: 分区总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Plugins = None
        self._Total = None
        self._RequestId = None

    @property
    def Plugins(self):
        return self._Plugins

    @Plugins.setter
    def Plugins(self, Plugins):
        self._Plugins = Plugins

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Plugins") is not None:
            self._Plugins = []
            for item in params.get("Plugins"):
                obj = AssetWebAppPluginInfo()
                obj._deserialize(item)
                self._Plugins.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetWebFrameCountRequest(AbstractModel):
    """DescribeAssetWebFrameCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的所有Web框架列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebFrameCountResponse(AbstractModel):
    """DescribeAssetWebFrameCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebFrames: 各Web框架数量
        :type WebFrames: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebFrames = None
        self._RequestId = None

    @property
    def WebFrames(self):
        return self._WebFrames

    @WebFrames.setter
    def WebFrames(self, WebFrames):
        self._WebFrames = WebFrames

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("WebFrames") is not None:
            self._WebFrames = []
            for item in params.get("WebFrames"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._WebFrames.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebFrameListRequest(AbstractModel):
    """DescribeAssetWebFrameList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|JarCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebFrameListResponse(AbstractModel):
    """DescribeAssetWebFrameList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _WebFrames: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type WebFrames: list of AssetWebFrameBaseInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._WebFrames = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def WebFrames(self):
        return self._WebFrames

    @WebFrames.setter
    def WebFrames(self, WebFrames):
        self._WebFrames = WebFrames

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("WebFrames") is not None:
            self._WebFrames = []
            for item in params.get("WebFrames"):
                obj = AssetWebFrameBaseInfo()
                obj._deserialize(item)
                self._WebFrames.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebLocationCountRequest(AbstractModel):
    """DescribeAssetWebLocationCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的所有Web站点列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebLocationCountResponse(AbstractModel):
    """DescribeAssetWebLocationCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebLocations: 各Web站点数量
        :type WebLocations: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebLocations = None
        self._RequestId = None

    @property
    def WebLocations(self):
        return self._WebLocations

    @WebLocations.setter
    def WebLocations(self, WebLocations):
        self._WebLocations = WebLocations

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("WebLocations") is not None:
            self._WebLocations = []
            for item in params.get("WebLocations"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._WebLocations.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebLocationInfoRequest(AbstractModel):
    """DescribeAssetWebLocationInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Id: 站点Id
        :type Id: str
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebLocationInfoResponse(AbstractModel):
    """DescribeAssetWebLocationInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebLocation: 站点信息
注意：此字段可能返回 null，表示取不到有效值。
        :type WebLocation: :class:`tencentcloud.cwp.v20180228.models.AssetWebLocationInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebLocation = None
        self._RequestId = None

    @property
    def WebLocation(self):
        return self._WebLocation

    @WebLocation.setter
    def WebLocation(self, WebLocation):
        self._WebLocation = WebLocation

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("WebLocation") is not None:
            self._WebLocation = AssetWebLocationInfo()
            self._WebLocation._deserialize(params.get("WebLocation"))
        self._RequestId = params.get("RequestId")


class DescribeAssetWebLocationListRequest(AbstractModel):
    """DescribeAssetWebLocationList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|PathCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebLocationListResponse(AbstractModel):
    """DescribeAssetWebLocationList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 记录总数
        :type Total: int
        :param _Locations: 站点列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Locations: list of AssetWebLocationBaseInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Locations = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Locations(self):
        return self._Locations

    @Locations.setter
    def Locations(self, Locations):
        self._Locations = Locations

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("Locations") is not None:
            self._Locations = []
            for item in params.get("Locations"):
                obj = AssetWebLocationBaseInfo()
                obj._deserialize(item)
                self._Locations.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebLocationPathListRequest(AbstractModel):
    """DescribeAssetWebLocationPathList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Id: Web站点Id
        :type Id: str
        :param _Limit: 返回列表数量，最多100，默认10
        :type Limit: int
        :param _Offset: 偏移量，默认为0
        :type Offset: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None
        self._Limit = None
        self._Offset = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebLocationPathListResponse(AbstractModel):
    """DescribeAssetWebLocationPathList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
注意：此字段可能返回 null，表示取不到有效值。
        :type Total: int
        :param _Paths: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Paths: list of AssetWebLocationPath
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._Paths = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Paths(self):
        return self._Paths

    @Paths.setter
    def Paths(self, Paths):
        self._Paths = Paths

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("Paths") is not None:
            self._Paths = []
            for item in params.get("Paths"):
                obj = AssetWebLocationPath()
                obj._deserialize(item)
                self._Paths.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebServiceCountRequest(AbstractModel):
    """DescribeAssetWebServiceCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 搜索条件：返回名称包含Name的所有Web服务列表
        :type Name: str
        """
        self._Name = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebServiceCountResponse(AbstractModel):
    """DescribeAssetWebServiceCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebServices: 各Web服务数量
        :type WebServices: list of AssetKeyVal
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebServices = None
        self._RequestId = None

    @property
    def WebServices(self):
        return self._WebServices

    @WebServices.setter
    def WebServices(self, WebServices):
        self._WebServices = WebServices

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("WebServices") is not None:
            self._WebServices = []
            for item in params.get("WebServices"):
                obj = AssetKeyVal()
                obj._deserialize(item)
                self._WebServices.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAssetWebServiceInfoListRequest(AbstractModel):
    """DescribeAssetWebServiceInfoList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of AssetFilters
        :param _Offset: 偏移量，默认为0。
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|ProcessCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebServiceInfoListResponse(AbstractModel):
    """DescribeAssetWebServiceInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WebServices: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type WebServices: list of AssetWebServiceBaseInfo
        :param _Total: 总数量
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WebServices = None
        self._Total = None
        self._RequestId = None

    @property
    def WebServices(self):
        return self._WebServices

    @WebServices.setter
    def WebServices(self, WebServices):
        self._WebServices = WebServices

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("WebServices") is not None:
            self._WebServices = []
            for item in params.get("WebServices"):
                obj = AssetWebServiceBaseInfo()
                obj._deserialize(item)
                self._WebServices.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAssetWebServiceProcessListRequest(AbstractModel):
    """DescribeAssetWebServiceProcessList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Id: Web服务ID
        :type Id: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None
        self._Offset = None
        self._Limit = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAssetWebServiceProcessListResponse(AbstractModel):
    """DescribeAssetWebServiceProcessList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Process: 进程列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Process: list of AssetAppProcessInfo
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Process = None
        self._Total = None
        self._RequestId = None

    @property
    def Process(self):
        return self._Process

    @Process.setter
    def Process(self, Process):
        self._Process = Process

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Process") is not None:
            self._Process = []
            for item in params.get("Process"):
                obj = AssetAppProcessInfo()
                obj._deserialize(item)
                self._Process.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeAttackEventInfoRequest(AbstractModel):
    """DescribeAttackEventInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAttackEventInfoResponse(AbstractModel):
    """DescribeAttackEventInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackEventInfo: 网络攻击事件详情
        :type NetAttackEventInfo: :class:`tencentcloud.cwp.v20180228.models.NetAttackEventInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetAttackEventInfo = None
        self._RequestId = None

    @property
    def NetAttackEventInfo(self):
        return self._NetAttackEventInfo

    @NetAttackEventInfo.setter
    def NetAttackEventInfo(self, NetAttackEventInfo):
        self._NetAttackEventInfo = NetAttackEventInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetAttackEventInfo") is not None:
            self._NetAttackEventInfo = NetAttackEventInfo()
            self._NetAttackEventInfo._deserialize(params.get("NetAttackEventInfo"))
        self._RequestId = params.get("RequestId")


class DescribeAttackEventsRequest(AbstractModel):
    """DescribeAttackEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        :param _By: 排序
        :type By: str
        :param _Order: 排序方式 ASC,DESC
        :type Order: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._By = None
        self._Order = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._By = params.get("By")
        self._Order = params.get("Order")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAttackEventsResponse(AbstractModel):
    """DescribeAttackEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 攻击事件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of NetAttackEvent
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = NetAttackEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeAttackLogInfoRequest(AbstractModel):
    """DescribeAttackLogInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 日志ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAttackLogInfoResponse(AbstractModel):
    """DescribeAttackLogInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 日志ID
        :type Id: int
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _SrcPort: 攻击来源端口
        :type SrcPort: int
        :param _SrcIp: 攻击来源IP
        :type SrcIp: str
        :param _DstPort: 攻击目标端口
        :type DstPort: int
        :param _DstIp: 攻击目标IP
        :type DstIp: str
        :param _HttpMethod: 攻击方法
        :type HttpMethod: str
        :param _HttpHost: 攻击目标主机
        :type HttpHost: str
        :param _HttpHead: 攻击头信息
        :type HttpHead: str
        :param _HttpUserAgent: 攻击者浏览器标识
        :type HttpUserAgent: str
        :param _HttpReferer: 请求源
        :type HttpReferer: str
        :param _VulType: 威胁类型
        :type VulType: str
        :param _HttpCgi: 攻击路径
        :type HttpCgi: str
        :param _HttpParam: 攻击参数
        :type HttpParam: str
        :param _CreatedAt: 攻击时间
        :type CreatedAt: str
        :param _HttpContent: 攻击内容
        :type HttpContent: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Id = None
        self._Quuid = None
        self._SrcPort = None
        self._SrcIp = None
        self._DstPort = None
        self._DstIp = None
        self._HttpMethod = None
        self._HttpHost = None
        self._HttpHead = None
        self._HttpUserAgent = None
        self._HttpReferer = None
        self._VulType = None
        self._HttpCgi = None
        self._HttpParam = None
        self._CreatedAt = None
        self._HttpContent = None
        self._RequestId = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def SrcPort(self):
        return self._SrcPort

    @SrcPort.setter
    def SrcPort(self, SrcPort):
        self._SrcPort = SrcPort

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def DstIp(self):
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp

    @property
    def HttpMethod(self):
        return self._HttpMethod

    @HttpMethod.setter
    def HttpMethod(self, HttpMethod):
        self._HttpMethod = HttpMethod

    @property
    def HttpHost(self):
        return self._HttpHost

    @HttpHost.setter
    def HttpHost(self, HttpHost):
        self._HttpHost = HttpHost

    @property
    def HttpHead(self):
        return self._HttpHead

    @HttpHead.setter
    def HttpHead(self, HttpHead):
        self._HttpHead = HttpHead

    @property
    def HttpUserAgent(self):
        return self._HttpUserAgent

    @HttpUserAgent.setter
    def HttpUserAgent(self, HttpUserAgent):
        self._HttpUserAgent = HttpUserAgent

    @property
    def HttpReferer(self):
        return self._HttpReferer

    @HttpReferer.setter
    def HttpReferer(self, HttpReferer):
        self._HttpReferer = HttpReferer

    @property
    def VulType(self):
        return self._VulType

    @VulType.setter
    def VulType(self, VulType):
        self._VulType = VulType

    @property
    def HttpCgi(self):
        return self._HttpCgi

    @HttpCgi.setter
    def HttpCgi(self, HttpCgi):
        self._HttpCgi = HttpCgi

    @property
    def HttpParam(self):
        return self._HttpParam

    @HttpParam.setter
    def HttpParam(self, HttpParam):
        self._HttpParam = HttpParam

    @property
    def CreatedAt(self):
        return self._CreatedAt

    @CreatedAt.setter
    def CreatedAt(self, CreatedAt):
        self._CreatedAt = CreatedAt

    @property
    def HttpContent(self):
        return self._HttpContent

    @HttpContent.setter
    def HttpContent(self, HttpContent):
        self._HttpContent = HttpContent

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Quuid = params.get("Quuid")
        self._SrcPort = params.get("SrcPort")
        self._SrcIp = params.get("SrcIp")
        self._DstPort = params.get("DstPort")
        self._DstIp = params.get("DstIp")
        self._HttpMethod = params.get("HttpMethod")
        self._HttpHost = params.get("HttpHost")
        self._HttpHead = params.get("HttpHead")
        self._HttpUserAgent = params.get("HttpUserAgent")
        self._HttpReferer = params.get("HttpReferer")
        self._VulType = params.get("VulType")
        self._HttpCgi = params.get("HttpCgi")
        self._HttpParam = params.get("HttpParam")
        self._CreatedAt = params.get("CreatedAt")
        self._HttpContent = params.get("HttpContent")
        self._RequestId = params.get("RequestId")


class DescribeAttackLogsRequest(AbstractModel):
    """DescribeAttackLogs请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        :param _Uuid: 主机安全客户端ID
        :type Uuid: str
        :param _Quuid: 云主机机器ID
        :type Quuid: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Uuid = None
        self._Quuid = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAttackLogsResponse(AbstractModel):
    """DescribeAttackLogs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AttackLogs: 日志列表
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackLogs: list of DefendAttackLog
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AttackLogs = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def AttackLogs(self):
        return self._AttackLogs

    @AttackLogs.setter
    def AttackLogs(self, AttackLogs):
        self._AttackLogs = AttackLogs

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AttackLogs") is not None:
            self._AttackLogs = []
            for item in params.get("AttackLogs"):
                obj = DefendAttackLog()
                obj._deserialize(item)
                self._AttackLogs.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeAttackSourceEventsRequest(AbstractModel):
    """DescribeAttackSourceEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _BeginDate: 开始日期
        :type BeginDate: str
        :param _EndDate: 结束日期
        :type EndDate: str
        :param _EventInfoParam: 接口DescribeAttackSource 返回的EventInfoParam
        :type EventInfoParam: str
        :param _Limit: 限制分页条数默认10
        :type Limit: int
        :param _Offset: 起始步长默认0
        :type Offset: int
        """
        self._Uuid = None
        self._BeginDate = None
        self._EndDate = None
        self._EventInfoParam = None
        self._Limit = None
        self._Offset = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def BeginDate(self):
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def EventInfoParam(self):
        return self._EventInfoParam

    @EventInfoParam.setter
    def EventInfoParam(self, EventInfoParam):
        self._EventInfoParam = EventInfoParam

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._BeginDate = params.get("BeginDate")
        self._EndDate = params.get("EndDate")
        self._EventInfoParam = params.get("EventInfoParam")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAttackSourceEventsResponse(AbstractModel):
    """DescribeAttackSourceEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 攻击溯源事件列表
        :type List: list of AttackSourceEvent
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = AttackSourceEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAttackSourceRequest(AbstractModel):
    """DescribeAttackSource请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _BeginDate: 开始日期
        :type BeginDate: str
        :param _EndDate: 结束日期
        :type EndDate: str
        """
        self._Uuid = None
        self._BeginDate = None
        self._EndDate = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def BeginDate(self):
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._BeginDate = params.get("BeginDate")
        self._EndDate = params.get("EndDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAttackSourceResponse(AbstractModel):
    """DescribeAttackSource返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AttackSource: 攻击溯源数据
        :type AttackSource: :class:`tencentcloud.cwp.v20180228.models.AttackSource`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AttackSource = None
        self._RequestId = None

    @property
    def AttackSource(self):
        return self._AttackSource

    @AttackSource.setter
    def AttackSource(self, AttackSource):
        self._AttackSource = AttackSource

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AttackSource") is not None:
            self._AttackSource = AttackSource()
            self._AttackSource._deserialize(params.get("AttackSource"))
        self._RequestId = params.get("RequestId")


class DescribeAttackStatisticsRequest(AbstractModel):
    """DescribeAttackStatistics请求参数结构体

    """


class DescribeAttackStatisticsResponse(AbstractModel):
    """DescribeAttackStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PendingAttackCount: 总攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type PendingAttackCount: int
        :param _PendingTryAttackCount: 总尝试攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type PendingTryAttackCount: int
        :param _PendingSuccAttackCount: 总攻击成功次数
注意：此字段可能返回 null，表示取不到有效值。
        :type PendingSuccAttackCount: int
        :param _PendingNewAttackCount: 今日新增攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type PendingNewAttackCount: int
        :param _AttackedAssetCount: 总受攻击资产数量
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackedAssetCount: int
        :param _NewAttackedAssetCount: 今日新增受攻击资产数量
注意：此字段可能返回 null，表示取不到有效值。
        :type NewAttackedAssetCount: int
        :param _AttackedPortCount: 总受攻击端口数量
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackedPortCount: int
        :param _NewAttackedPortCount: 今日新增受攻击端口数量
注意：此字段可能返回 null，表示取不到有效值。
        :type NewAttackedPortCount: int
        :param _AttackSrcIpCount: 总攻击来源ip数量
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackSrcIpCount: int
        :param _NewAttackSrcIpCount: 今日新增攻击来源ip数量
注意：此字段可能返回 null，表示取不到有效值。
        :type NewAttackSrcIpCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._PendingAttackCount = None
        self._PendingTryAttackCount = None
        self._PendingSuccAttackCount = None
        self._PendingNewAttackCount = None
        self._AttackedAssetCount = None
        self._NewAttackedAssetCount = None
        self._AttackedPortCount = None
        self._NewAttackedPortCount = None
        self._AttackSrcIpCount = None
        self._NewAttackSrcIpCount = None
        self._RequestId = None

    @property
    def PendingAttackCount(self):
        return self._PendingAttackCount

    @PendingAttackCount.setter
    def PendingAttackCount(self, PendingAttackCount):
        self._PendingAttackCount = PendingAttackCount

    @property
    def PendingTryAttackCount(self):
        return self._PendingTryAttackCount

    @PendingTryAttackCount.setter
    def PendingTryAttackCount(self, PendingTryAttackCount):
        self._PendingTryAttackCount = PendingTryAttackCount

    @property
    def PendingSuccAttackCount(self):
        return self._PendingSuccAttackCount

    @PendingSuccAttackCount.setter
    def PendingSuccAttackCount(self, PendingSuccAttackCount):
        self._PendingSuccAttackCount = PendingSuccAttackCount

    @property
    def PendingNewAttackCount(self):
        return self._PendingNewAttackCount

    @PendingNewAttackCount.setter
    def PendingNewAttackCount(self, PendingNewAttackCount):
        self._PendingNewAttackCount = PendingNewAttackCount

    @property
    def AttackedAssetCount(self):
        return self._AttackedAssetCount

    @AttackedAssetCount.setter
    def AttackedAssetCount(self, AttackedAssetCount):
        self._AttackedAssetCount = AttackedAssetCount

    @property
    def NewAttackedAssetCount(self):
        return self._NewAttackedAssetCount

    @NewAttackedAssetCount.setter
    def NewAttackedAssetCount(self, NewAttackedAssetCount):
        self._NewAttackedAssetCount = NewAttackedAssetCount

    @property
    def AttackedPortCount(self):
        return self._AttackedPortCount

    @AttackedPortCount.setter
    def AttackedPortCount(self, AttackedPortCount):
        self._AttackedPortCount = AttackedPortCount

    @property
    def NewAttackedPortCount(self):
        return self._NewAttackedPortCount

    @NewAttackedPortCount.setter
    def NewAttackedPortCount(self, NewAttackedPortCount):
        self._NewAttackedPortCount = NewAttackedPortCount

    @property
    def AttackSrcIpCount(self):
        return self._AttackSrcIpCount

    @AttackSrcIpCount.setter
    def AttackSrcIpCount(self, AttackSrcIpCount):
        self._AttackSrcIpCount = AttackSrcIpCount

    @property
    def NewAttackSrcIpCount(self):
        return self._NewAttackSrcIpCount

    @NewAttackSrcIpCount.setter
    def NewAttackSrcIpCount(self, NewAttackSrcIpCount):
        self._NewAttackSrcIpCount = NewAttackSrcIpCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._PendingAttackCount = params.get("PendingAttackCount")
        self._PendingTryAttackCount = params.get("PendingTryAttackCount")
        self._PendingSuccAttackCount = params.get("PendingSuccAttackCount")
        self._PendingNewAttackCount = params.get("PendingNewAttackCount")
        self._AttackedAssetCount = params.get("AttackedAssetCount")
        self._NewAttackedAssetCount = params.get("NewAttackedAssetCount")
        self._AttackedPortCount = params.get("AttackedPortCount")
        self._NewAttackedPortCount = params.get("NewAttackedPortCount")
        self._AttackSrcIpCount = params.get("AttackSrcIpCount")
        self._NewAttackSrcIpCount = params.get("NewAttackSrcIpCount")
        self._RequestId = params.get("RequestId")


class DescribeAttackTopRequest(AbstractModel):
    """DescribeAttackTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters:  过滤条件。
<li>BeginTime - String 起始时间,默认近7天- 是否必填: 否</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAttackTopResponse(AbstractModel):
    """DescribeAttackTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackTopInfo: top统计数据
注意：此字段可能返回 null，表示取不到有效值。
        :type NetAttackTopInfo: :class:`tencentcloud.cwp.v20180228.models.NetAttackTopInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetAttackTopInfo = None
        self._RequestId = None

    @property
    def NetAttackTopInfo(self):
        return self._NetAttackTopInfo

    @NetAttackTopInfo.setter
    def NetAttackTopInfo(self, NetAttackTopInfo):
        self._NetAttackTopInfo = NetAttackTopInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetAttackTopInfo") is not None:
            self._NetAttackTopInfo = NetAttackTopInfo()
            self._NetAttackTopInfo._deserialize(params.get("NetAttackTopInfo"))
        self._RequestId = params.get("RequestId")


class DescribeAttackTrendsRequest(AbstractModel):
    """DescribeAttackTrends请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters:  过滤条件。
<li>BeginTime - String 起始时间,默认近7天- 是否必填: 否</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeAttackTrendsResponse(AbstractModel):
    """DescribeAttackTrends返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackTrend: 攻击趋势统计数据（天）
注意：此字段可能返回 null，表示取不到有效值。
        :type NetAttackTrend: list of NetAttackTrend
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetAttackTrend = None
        self._RequestId = None

    @property
    def NetAttackTrend(self):
        return self._NetAttackTrend

    @NetAttackTrend.setter
    def NetAttackTrend(self, NetAttackTrend):
        self._NetAttackTrend = NetAttackTrend

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("NetAttackTrend") is not None:
            self._NetAttackTrend = []
            for item in params.get("NetAttackTrend"):
                obj = NetAttackTrend()
                obj._deserialize(item)
                self._NetAttackTrend.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeAttackVulTypeListRequest(AbstractModel):
    """DescribeAttackVulTypeList请求参数结构体

    """


class DescribeAttackVulTypeListResponse(AbstractModel):
    """DescribeAttackVulTypeList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 威胁类型列表
        :type List: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._List = params.get("List")
        self._RequestId = params.get("RequestId")


class DescribeAvailableExpertServiceDetailRequest(AbstractModel):
    """DescribeAvailableExpertServiceDetail请求参数结构体

    """


class DescribeAvailableExpertServiceDetailResponse(AbstractModel):
    """DescribeAvailableExpertServiceDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ExpertService: 安全管家订单
        :type ExpertService: list of ExpertServiceOrderInfo
        :param _EmergencyResponse: 应急响应可用次数
        :type EmergencyResponse: int
        :param _ProtectNet: 旗舰护网可用次数
        :type ProtectNet: int
        :param _ExpertServiceBuy: 是否购买过安全管家
        :type ExpertServiceBuy: bool
        :param _EmergencyResponseBuy: 是否购买过应急响应
        :type EmergencyResponseBuy: bool
        :param _ProtectNetBuy: 是否购买过旗舰护网
        :type ProtectNetBuy: bool
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ExpertService = None
        self._EmergencyResponse = None
        self._ProtectNet = None
        self._ExpertServiceBuy = None
        self._EmergencyResponseBuy = None
        self._ProtectNetBuy = None
        self._RequestId = None

    @property
    def ExpertService(self):
        return self._ExpertService

    @ExpertService.setter
    def ExpertService(self, ExpertService):
        self._ExpertService = ExpertService

    @property
    def EmergencyResponse(self):
        return self._EmergencyResponse

    @EmergencyResponse.setter
    def EmergencyResponse(self, EmergencyResponse):
        self._EmergencyResponse = EmergencyResponse

    @property
    def ProtectNet(self):
        return self._ProtectNet

    @ProtectNet.setter
    def ProtectNet(self, ProtectNet):
        self._ProtectNet = ProtectNet

    @property
    def ExpertServiceBuy(self):
        return self._ExpertServiceBuy

    @ExpertServiceBuy.setter
    def ExpertServiceBuy(self, ExpertServiceBuy):
        self._ExpertServiceBuy = ExpertServiceBuy

    @property
    def EmergencyResponseBuy(self):
        return self._EmergencyResponseBuy

    @EmergencyResponseBuy.setter
    def EmergencyResponseBuy(self, EmergencyResponseBuy):
        self._EmergencyResponseBuy = EmergencyResponseBuy

    @property
    def ProtectNetBuy(self):
        return self._ProtectNetBuy

    @ProtectNetBuy.setter
    def ProtectNetBuy(self, ProtectNetBuy):
        self._ProtectNetBuy = ProtectNetBuy

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ExpertService") is not None:
            self._ExpertService = []
            for item in params.get("ExpertService"):
                obj = ExpertServiceOrderInfo()
                obj._deserialize(item)
                self._ExpertService.append(obj)
        self._EmergencyResponse = params.get("EmergencyResponse")
        self._ProtectNet = params.get("ProtectNet")
        self._ExpertServiceBuy = params.get("ExpertServiceBuy")
        self._EmergencyResponseBuy = params.get("EmergencyResponseBuy")
        self._ProtectNetBuy = params.get("ProtectNetBuy")
        self._RequestId = params.get("RequestId")


class DescribeBanModeRequest(AbstractModel):
    """DescribeBanMode请求参数结构体

    """


class DescribeBanModeResponse(AbstractModel):
    """DescribeBanMode返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: 阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断
        :type Mode: str
        :param _StandardModeConfig: 标准阻断模式的配置
        :type StandardModeConfig: :class:`tencentcloud.cwp.v20180228.models.StandardModeConfig`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Mode = None
        self._StandardModeConfig = None
        self._RequestId = None

    @property
    def Mode(self):
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def StandardModeConfig(self):
        return self._StandardModeConfig

    @StandardModeConfig.setter
    def StandardModeConfig(self, StandardModeConfig):
        self._StandardModeConfig = StandardModeConfig

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Mode = params.get("Mode")
        if params.get("StandardModeConfig") is not None:
            self._StandardModeConfig = StandardModeConfig()
            self._StandardModeConfig._deserialize(params.get("StandardModeConfig"))
        self._RequestId = params.get("RequestId")


class DescribeBanRegionsRequest(AbstractModel):
    """DescribeBanRegions请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: 阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断
        :type Mode: str
        """
        self._Mode = None

    @property
    def Mode(self):
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode


    def _deserialize(self, params):
        self._Mode = params.get("Mode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBanRegionsResponse(AbstractModel):
    """DescribeBanRegions返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RegionSet: 地域信息列表
        :type RegionSet: list of RegionSet
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RegionSet = None
        self._RequestId = None

    @property
    def RegionSet(self):
        return self._RegionSet

    @RegionSet.setter
    def RegionSet(self, RegionSet):
        self._RegionSet = RegionSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RegionSet") is not None:
            self._RegionSet = []
            for item in params.get("RegionSet"):
                obj = RegionSet()
                obj._deserialize(item)
                self._RegionSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBanStatusRequest(AbstractModel):
    """DescribeBanStatus请求参数结构体

    """


class DescribeBanStatusResponse(AbstractModel):
    """DescribeBanStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 阻断开关状态 0:关闭 1:开启
        :type Status: int
        :param _ShowTips: 是否弹窗提示信息 false: 关闭，true: 开启
        :type ShowTips: bool
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._ShowTips = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ShowTips(self):
        return self._ShowTips

    @ShowTips.setter
    def ShowTips(self, ShowTips):
        self._ShowTips = ShowTips

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._ShowTips = params.get("ShowTips")
        self._RequestId = params.get("RequestId")


class DescribeBanWhiteListRequest(AbstractModel):
    """DescribeBanWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 查询关键字 </li>
        :type Filters: list of Filter
        """
        self._Offset = None
        self._Limit = None
        self._Filters = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBanWhiteListResponse(AbstractModel):
    """DescribeBanWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总记录数
        :type TotalCount: int
        :param _WhiteList: 白名单列表
        :type WhiteList: list of BanWhiteListDetail
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._WhiteList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def WhiteList(self):
        return self._WhiteList

    @WhiteList.setter
    def WhiteList(self, WhiteList):
        self._WhiteList = WhiteList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("WhiteList") is not None:
            self._WhiteList = []
            for item in params.get("WhiteList"):
                obj = BanWhiteListDetail()
                obj._deserialize(item)
                self._WhiteList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineAnalysisDataRequest(AbstractModel):
    """DescribeBaselineAnalysisData请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyId: 基线策略id
        :type StrategyId: int
        """
        self._StrategyId = None

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId


    def _deserialize(self, params):
        self._StrategyId = params.get("StrategyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineAnalysisDataResponse(AbstractModel):
    """DescribeBaselineAnalysisData返回参数结构体

    """

    def __init__(self):
        r"""
        :param _LatestScanTime: 最后检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LatestScanTime: str
        :param _IsGlobal: 是否全部服务器：1-是 0-否
注意：此字段可能返回 null，表示取不到有效值。
        :type IsGlobal: int
        :param _ScanHostCount: 服务器总数
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanHostCount: int
        :param _ScanRuleCount: 检测项总数
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanRuleCount: int
        :param _IfFirstScan: 是否是第一次检测  1是 0不是
注意：此字段可能返回 null，表示取不到有效值。
        :type IfFirstScan: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._LatestScanTime = None
        self._IsGlobal = None
        self._ScanHostCount = None
        self._ScanRuleCount = None
        self._IfFirstScan = None
        self._RequestId = None

    @property
    def LatestScanTime(self):
        return self._LatestScanTime

    @LatestScanTime.setter
    def LatestScanTime(self, LatestScanTime):
        self._LatestScanTime = LatestScanTime

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def ScanHostCount(self):
        return self._ScanHostCount

    @ScanHostCount.setter
    def ScanHostCount(self, ScanHostCount):
        self._ScanHostCount = ScanHostCount

    @property
    def ScanRuleCount(self):
        return self._ScanRuleCount

    @ScanRuleCount.setter
    def ScanRuleCount(self, ScanRuleCount):
        self._ScanRuleCount = ScanRuleCount

    @property
    def IfFirstScan(self):
        return self._IfFirstScan

    @IfFirstScan.setter
    def IfFirstScan(self, IfFirstScan):
        self._IfFirstScan = IfFirstScan

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._LatestScanTime = params.get("LatestScanTime")
        self._IsGlobal = params.get("IsGlobal")
        self._ScanHostCount = params.get("ScanHostCount")
        self._ScanRuleCount = params.get("ScanRuleCount")
        self._IfFirstScan = params.get("IfFirstScan")
        self._RequestId = params.get("RequestId")


class DescribeBaselineBasicInfoRequest(AbstractModel):
    """DescribeBaselineBasicInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineName: 基线名称
        :type BaselineName: str
        """
        self._BaselineName = None

    @property
    def BaselineName(self):
        return self._BaselineName

    @BaselineName.setter
    def BaselineName(self, BaselineName):
        self._BaselineName = BaselineName


    def _deserialize(self, params):
        self._BaselineName = params.get("BaselineName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineBasicInfoResponse(AbstractModel):
    """DescribeBaselineBasicInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineBasicInfoList: 基线基础信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type BaselineBasicInfoList: list of BaselineBasicInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BaselineBasicInfoList = None
        self._RequestId = None

    @property
    def BaselineBasicInfoList(self):
        return self._BaselineBasicInfoList

    @BaselineBasicInfoList.setter
    def BaselineBasicInfoList(self, BaselineBasicInfoList):
        self._BaselineBasicInfoList = BaselineBasicInfoList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("BaselineBasicInfoList") is not None:
            self._BaselineBasicInfoList = []
            for item in params.get("BaselineBasicInfoList"):
                obj = BaselineBasicInfo()
                obj._deserialize(item)
                self._BaselineBasicInfoList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineDefaultStrategyListRequest(AbstractModel):
    """DescribeBaselineDefaultStrategyList请求参数结构体

    """


class DescribeBaselineDefaultStrategyListResponse(AbstractModel):
    """DescribeBaselineDefaultStrategyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyList: 默认策略基础信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyList: list of DefaultStrategyInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._StrategyList = None
        self._RequestId = None

    @property
    def StrategyList(self):
        return self._StrategyList

    @StrategyList.setter
    def StrategyList(self, StrategyList):
        self._StrategyList = StrategyList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("StrategyList") is not None:
            self._StrategyList = []
            for item in params.get("StrategyList"):
                obj = DefaultStrategyInfo()
                obj._deserialize(item)
                self._StrategyList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineDetailRequest(AbstractModel):
    """DescribeBaselineDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineId: 基线id
        :type BaselineId: int
        """
        self._BaselineId = None

    @property
    def BaselineId(self):
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId


    def _deserialize(self, params):
        self._BaselineId = params.get("BaselineId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineDetailResponse(AbstractModel):
    """DescribeBaselineDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineDetail: 基线详情
注意：此字段可能返回 null，表示取不到有效值。
        :type BaselineDetail: :class:`tencentcloud.cwp.v20180228.models.BaselineDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BaselineDetail = None
        self._RequestId = None

    @property
    def BaselineDetail(self):
        return self._BaselineDetail

    @BaselineDetail.setter
    def BaselineDetail(self, BaselineDetail):
        self._BaselineDetail = BaselineDetail

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("BaselineDetail") is not None:
            self._BaselineDetail = BaselineDetail()
            self._BaselineDetail._deserialize(params.get("BaselineDetail"))
        self._RequestId = params.get("RequestId")


class DescribeBaselineDetectListRequest(AbstractModel):
    """DescribeBaselineDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>PolicyName - string - 是否必填：否 - 策略名称</li>
<li>PolicyDetectStatus - int - 是否必填：否 - 1:检测中 2:检测完成</li>
<li>FirstTime - string - 是否必填：否 - 开始时间</li>
<li>LastTime - string - 是否必填：否 - 结束时间</li>
        :type Filters: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [HostCount|StartTime|StopTime]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineDetectListResponse(AbstractModel):
    """DescribeBaselineDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselinePolicyDetect
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselinePolicyDetect()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineDetectOverviewRequest(AbstractModel):
    """DescribeBaselineDetectOverview请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略Id
        :type PolicyId: int
        """
        self._PolicyId = None

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId


    def _deserialize(self, params):
        self._PolicyId = params.get("PolicyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineDetectOverviewResponse(AbstractModel):
    """DescribeBaselineDetectOverview返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HostCount: 检测服务器数
        :type HostCount: int
        :param _ItemCount: 检测项
        :type ItemCount: int
        :param _PolicyCount: 检测策略项
        :type PolicyCount: int
        :param _PassRate: 通过率*100%
        :type PassRate: int
        :param _LatestPassCount: 最近一次检测通过个数
注意：此字段可能返回 null，表示取不到有效值。
        :type LatestPassCount: int
        :param _LatestNotPassCount: 最近一次检测未通过个数
注意：此字段可能返回 null，表示取不到有效值。
        :type LatestNotPassCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostCount = None
        self._ItemCount = None
        self._PolicyCount = None
        self._PassRate = None
        self._LatestPassCount = None
        self._LatestNotPassCount = None
        self._RequestId = None

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ItemCount(self):
        return self._ItemCount

    @ItemCount.setter
    def ItemCount(self, ItemCount):
        self._ItemCount = ItemCount

    @property
    def PolicyCount(self):
        return self._PolicyCount

    @PolicyCount.setter
    def PolicyCount(self, PolicyCount):
        self._PolicyCount = PolicyCount

    @property
    def PassRate(self):
        return self._PassRate

    @PassRate.setter
    def PassRate(self, PassRate):
        self._PassRate = PassRate

    @property
    def LatestPassCount(self):
        return self._LatestPassCount

    @LatestPassCount.setter
    def LatestPassCount(self, LatestPassCount):
        self._LatestPassCount = LatestPassCount

    @property
    def LatestNotPassCount(self):
        return self._LatestNotPassCount

    @LatestNotPassCount.setter
    def LatestNotPassCount(self, LatestNotPassCount):
        self._LatestNotPassCount = LatestNotPassCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._HostCount = params.get("HostCount")
        self._ItemCount = params.get("ItemCount")
        self._PolicyCount = params.get("PolicyCount")
        self._PassRate = params.get("PassRate")
        self._LatestPassCount = params.get("LatestPassCount")
        self._LatestNotPassCount = params.get("LatestNotPassCount")
        self._RequestId = params.get("RequestId")


class DescribeBaselineDownloadListRequest(AbstractModel):
    """DescribeBaselineDownloadList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>Status - int - 是否必填：否 - 0:导出中 1:已完成</li>
<li>StartTime - string - 是否必填：否 - 开始时间</li>
<li>EndTime - string - 是否必填：否 - 结束时间</li>
<li>TaskName - string - 是否必填：否 - 任务名称</li>
        :type Filters: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [StartTime|EndTime]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineDownloadListResponse(AbstractModel):
    """DescribeBaselineDownloadList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineDownload
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineDownload()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineEffectHostListRequest(AbstractModel):
    """DescribeBaselineEffectHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _BaselineId: 基线id
        :type BaselineId: int
        :param _Filters: 过滤条件。
<li>AliasName- String- 主机别名</li>
<li>Status- Uint- 1已通过  0未通过 5检测中</li>
        :type Filters: list of Filters
        :param _StrategyId: 策略id
        :type StrategyId: int
        :param _UuidList: 主机uuid数组
        :type UuidList: list of str
        """
        self._Limit = None
        self._Offset = None
        self._BaselineId = None
        self._Filters = None
        self._StrategyId = None
        self._UuidList = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def BaselineId(self):
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def UuidList(self):
        return self._UuidList

    @UuidList.setter
    def UuidList(self, UuidList):
        self._UuidList = UuidList


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._BaselineId = params.get("BaselineId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._StrategyId = params.get("StrategyId")
        self._UuidList = params.get("UuidList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineEffectHostListResponse(AbstractModel):
    """DescribeBaselineEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _EffectHostList: 影响服务器列表
注意：此字段可能返回 null，表示取不到有效值。
        :type EffectHostList: list of BaselineEffectHost
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._EffectHostList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def EffectHostList(self):
        return self._EffectHostList

    @EffectHostList.setter
    def EffectHostList(self, EffectHostList):
        self._EffectHostList = EffectHostList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("EffectHostList") is not None:
            self._EffectHostList = []
            for item in params.get("EffectHostList"):
                obj = BaselineEffectHost()
                obj._deserialize(item)
                self._EffectHostList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineFixListRequest(AbstractModel):
    """DescribeBaselineFixList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>ItemName- string - 是否必填：否 - 项名称</li>
        :type Filters: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [CreateTime|MoifyTime|FixTime]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineFixListResponse(AbstractModel):
    """DescribeBaselineFixList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineFix
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineFix()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineHostDetectListRequest(AbstractModel):
    """DescribeBaselineHostDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [LastTime|ItemCount|PassedItemCount|NotPassedItemCount|FirstTime]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineHostDetectListResponse(AbstractModel):
    """DescribeBaselineHostDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineHostDetect
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineHostDetect()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineHostIgnoreListRequest(AbstractModel):
    """DescribeBaselineHostIgnoreList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleID: 请求的规则
        :type RuleID: int
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        """
        self._RuleID = None
        self._Limit = None
        self._Offset = None

    @property
    def RuleID(self):
        return self._RuleID

    @RuleID.setter
    def RuleID(self, RuleID):
        self._RuleID = RuleID

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._RuleID = params.get("RuleID")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineHostIgnoreListResponse(AbstractModel):
    """DescribeBaselineHostIgnoreList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _List: 无
        :type List: list of BaselineHost
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineHost()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineHostRiskTopRequest(AbstractModel):
    """DescribeBaselineHostRiskTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略ID
        :type PolicyId: int
        """
        self._PolicyId = None

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId


    def _deserialize(self, params):
        self._PolicyId = params.get("PolicyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineHostRiskTopResponse(AbstractModel):
    """DescribeBaselineHostRiskTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HostRiskTop5: 风险主机top5
        :type HostRiskTop5: list of HostRiskLevelCount
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostRiskTop5 = None
        self._RequestId = None

    @property
    def HostRiskTop5(self):
        return self._HostRiskTop5

    @HostRiskTop5.setter
    def HostRiskTop5(self, HostRiskTop5):
        self._HostRiskTop5 = HostRiskTop5

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("HostRiskTop5") is not None:
            self._HostRiskTop5 = []
            for item in params.get("HostRiskTop5"):
                obj = HostRiskLevelCount()
                obj._deserialize(item)
                self._HostRiskTop5.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineHostTopRequest(AbstractModel):
    """DescribeBaselineHostTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Top: 动态top值
        :type Top: int
        :param _StrategyId: 策略id
        :type StrategyId: int
        """
        self._Top = None
        self._StrategyId = None

    @property
    def Top(self):
        return self._Top

    @Top.setter
    def Top(self, Top):
        self._Top = Top

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId


    def _deserialize(self, params):
        self._Top = params.get("Top")
        self._StrategyId = params.get("StrategyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineHostTopResponse(AbstractModel):
    """DescribeBaselineHostTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineHostTopList: 主机基线策略事件Top
注意：此字段可能返回 null，表示取不到有效值。
        :type BaselineHostTopList: list of BaselineHostTopList
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BaselineHostTopList = None
        self._RequestId = None

    @property
    def BaselineHostTopList(self):
        return self._BaselineHostTopList

    @BaselineHostTopList.setter
    def BaselineHostTopList(self, BaselineHostTopList):
        self._BaselineHostTopList = BaselineHostTopList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("BaselineHostTopList") is not None:
            self._BaselineHostTopList = []
            for item in params.get("BaselineHostTopList"):
                obj = BaselineHostTopList()
                obj._deserialize(item)
                self._BaselineHostTopList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineItemDetectListRequest(AbstractModel):
    """DescribeBaselineItemDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [HostCount|FirstTime|LastTime]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineItemDetectListResponse(AbstractModel):
    """DescribeBaselineItemDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _List: 无
        :type List: list of BaselineItemDetect
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineItemDetect()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineItemIgnoreListRequest(AbstractModel):
    """DescribeBaselineItemIgnoreList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleID: 忽略规则ID
        :type RuleID: int
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 请求偏移默认0
        :type Offset: int
        :param _Filters: <li>CatgoryId - int64 - 是否必填：否 - 规则Id</li>
        :type Filters: list of Filter
        :param _Order: 排序方式 [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列 [ID]
        :type By: str
        """
        self._RuleID = None
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def RuleID(self):
        return self._RuleID

    @RuleID.setter
    def RuleID(self, RuleID):
        self._RuleID = RuleID

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._RuleID = params.get("RuleID")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineItemIgnoreListResponse(AbstractModel):
    """DescribeBaselineItemIgnoreList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineItemInfo
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineItemInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineItemInfoRequest(AbstractModel):
    """DescribeBaselineItemInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>ItemId - int64 - 是否必填：否 - 项Id</i>
<li>PolicyId - int64 - 是否必填：否 - 项Id</i>
<li>Level - int - 是否必填：否 - 风险等级</li>
<li>ItemName - string - 是否必填：否 - 检测项名字</li>
<li>RuleId - int - 是否必填：否 - 规则Id</li>
        :type Filters: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineItemInfoResponse(AbstractModel):
    """DescribeBaselineItemInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 结果列表
        :type List: list of BaselineItemInfo
        :param _Total: 总条目数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineItemInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineItemListRequest(AbstractModel):
    """DescribeBaselineItemList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineItemListResponse(AbstractModel):
    """DescribeBaselineItemList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineItem
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineItem()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineItemRiskTopRequest(AbstractModel):
    """DescribeBaselineItemRiskTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略ID
        :type PolicyId: int
        """
        self._PolicyId = None

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId


    def _deserialize(self, params):
        self._PolicyId = params.get("PolicyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineItemRiskTopResponse(AbstractModel):
    """DescribeBaselineItemRiskTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RiskItemTop5: 结果数组
        :type RiskItemTop5: list of BaselineRiskItem
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RiskItemTop5 = None
        self._RequestId = None

    @property
    def RiskItemTop5(self):
        return self._RiskItemTop5

    @RiskItemTop5.setter
    def RiskItemTop5(self, RiskItemTop5):
        self._RiskItemTop5 = RiskItemTop5

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RiskItemTop5") is not None:
            self._RiskItemTop5 = []
            for item in params.get("RiskItemTop5"):
                obj = BaselineRiskItem()
                obj._deserialize(item)
                self._RiskItemTop5.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineListRequest(AbstractModel):
    """DescribeBaselineList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :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: list of Filters
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineListResponse(AbstractModel):
    """DescribeBaselineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineList: 基线信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type BaselineList: list of BaselineInfo
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BaselineList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def BaselineList(self):
        return self._BaselineList

    @BaselineList.setter
    def BaselineList(self, BaselineList):
        self._BaselineList = BaselineList

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("BaselineList") is not None:
            self._BaselineList = []
            for item in params.get("BaselineList"):
                obj = BaselineInfo()
                obj._deserialize(item)
                self._BaselineList.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeBaselinePolicyListRequest(AbstractModel):
    """DescribeBaselinePolicyList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>PolicyName - String - 是否必填：否 - 策略名称</li>
        :type Filters: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [RuleCount|ItemCount|HostCount]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselinePolicyListResponse(AbstractModel):
    """DescribeBaselinePolicyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselinePolicy
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselinePolicy()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineRuleCategoryListRequest(AbstractModel):
    """DescribeBaselineRuleCategoryList请求参数结构体

    """


class DescribeBaselineRuleCategoryListResponse(AbstractModel):
    """DescribeBaselineRuleCategoryList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineCategory
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineCategory()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineRuleDetectListRequest(AbstractModel):
    """DescribeBaselineRuleDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [HostCount|FirstTime|LastTime]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineRuleDetectListResponse(AbstractModel):
    """DescribeBaselineRuleDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineRuleDetect
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineRuleDetect()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineRuleIgnoreListRequest(AbstractModel):
    """DescribeBaselineRuleIgnoreList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>RuleName - String - 是否必填：否 - 规则名称</li>
<li>ItemId- int - 是否必填：否 - 检测项Id</li>
        :type Filters: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [HostCount]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineRuleIgnoreListResponse(AbstractModel):
    """DescribeBaselineRuleIgnoreList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _List: 列表
        :type List: list of BaselineRule
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineRule()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineRuleListRequest(AbstractModel):
    """DescribeBaselineRuleList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>RuleName - String - 是否必填：否 - 规则名称</li>
<li>CategoryId - int64 - 是否必填：否 自定义筛选为-1 - 规则分类</li>
<li>RuleType - int - 是否必填：否 0:系统 1:自定义 - 规则类型</li>
        :type Filters: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineRuleListResponse(AbstractModel):
    """DescribeBaselineRuleList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 无
        :type List: list of BaselineRule
        :param _Total: 总数
        :type Total: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._Total = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineRule()
                obj._deserialize(item)
                self._List.append(obj)
        self._Total = params.get("Total")
        self._RequestId = params.get("RequestId")


class DescribeBaselineRuleRequest(AbstractModel):
    """DescribeBaselineRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineId: 基线id
        :type BaselineId: int
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _Level: 危害等级
        :type Level: list of int non-negative
        :param _Status: 状态
        :type Status: int
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        """
        self._BaselineId = None
        self._Limit = None
        self._Offset = None
        self._Level = None
        self._Status = None
        self._Quuid = None
        self._Uuid = None

    @property
    def BaselineId(self):
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._BaselineId = params.get("BaselineId")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Level = params.get("Level")
        self._Status = params.get("Status")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineRuleResponse(AbstractModel):
    """DescribeBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _BaselineRuleList: 基线检测项列表
注意：此字段可能返回 null，表示取不到有效值。
        :type BaselineRuleList: list of BaselineRuleInfo
        :param _ShowRuleRemark: 是否显示说明列：true-是，false-否
注意：此字段可能返回 null，表示取不到有效值。
        :type ShowRuleRemark: bool
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._BaselineRuleList = None
        self._ShowRuleRemark = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def BaselineRuleList(self):
        return self._BaselineRuleList

    @BaselineRuleList.setter
    def BaselineRuleList(self, BaselineRuleList):
        self._BaselineRuleList = BaselineRuleList

    @property
    def ShowRuleRemark(self):
        return self._ShowRuleRemark

    @ShowRuleRemark.setter
    def ShowRuleRemark(self, ShowRuleRemark):
        self._ShowRuleRemark = ShowRuleRemark

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("BaselineRuleList") is not None:
            self._BaselineRuleList = []
            for item in params.get("BaselineRuleList"):
                obj = BaselineRuleInfo()
                obj._deserialize(item)
                self._BaselineRuleList.append(obj)
        self._ShowRuleRemark = params.get("ShowRuleRemark")
        self._RequestId = params.get("RequestId")


class DescribeBaselineScanScheduleRequest(AbstractModel):
    """DescribeBaselineScanSchedule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: int
        """
        self._TaskId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineScanScheduleResponse(AbstractModel):
    """DescribeBaselineScanSchedule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Schedule: 检测进度(百分比)
注意：此字段可能返回 null，表示取不到有效值。
        :type Schedule: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Schedule = None
        self._RequestId = None

    @property
    def Schedule(self):
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Schedule = params.get("Schedule")
        self._RequestId = params.get("RequestId")


class DescribeBaselineStrategyDetailRequest(AbstractModel):
    """DescribeBaselineStrategyDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyId: 用户基线策略id
        :type StrategyId: int
        """
        self._StrategyId = None

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId


    def _deserialize(self, params):
        self._StrategyId = params.get("StrategyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineStrategyDetailResponse(AbstractModel):
    """DescribeBaselineStrategyDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PassRate: 策略扫描通过率
注意：此字段可能返回 null，表示取不到有效值。
        :type PassRate: int
        :param _StrategyName: 策略名
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyName: str
        :param _ScanCycle: 策略扫描周期(天)
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanCycle: str
        :param _ScanAt: 定期检测时间, 该时间下发扫描
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanAt: str
        :param _IsGlobal: 扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
注意：此字段可能返回 null，表示取不到有效值。
        :type IsGlobal: int
        :param _MachineType: 云服务器类型：
cvm：腾讯云服务器
bm：裸金属
ecm：边缘计算主机
lh: 轻量应用服务器
ohter: 混合云机器
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineType: str
        :param _Region: 主机地域
注意：此字段可能返回 null，表示取不到有效值。
        :type Region: str
        :param _Quuids: 用户该策略下的所有主机id
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuids: list of str
        :param _CategoryIds: 用户该策略下所有的基线id
注意：此字段可能返回 null，表示取不到有效值。
        :type CategoryIds: list of str
        :param _IfScanned: 1 表示扫描过, 0没扫描过
注意：此字段可能返回 null，表示取不到有效值。
        :type IfScanned: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._PassRate = None
        self._StrategyName = None
        self._ScanCycle = None
        self._ScanAt = None
        self._IsGlobal = None
        self._MachineType = None
        self._Region = None
        self._Quuids = None
        self._CategoryIds = None
        self._IfScanned = None
        self._RequestId = None

    @property
    def PassRate(self):
        return self._PassRate

    @PassRate.setter
    def PassRate(self, PassRate):
        self._PassRate = PassRate

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def ScanCycle(self):
        return self._ScanCycle

    @ScanCycle.setter
    def ScanCycle(self, ScanCycle):
        self._ScanCycle = ScanCycle

    @property
    def ScanAt(self):
        return self._ScanAt

    @ScanAt.setter
    def ScanAt(self, ScanAt):
        self._ScanAt = ScanAt

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def Region(self):
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def CategoryIds(self):
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds

    @property
    def IfScanned(self):
        return self._IfScanned

    @IfScanned.setter
    def IfScanned(self, IfScanned):
        self._IfScanned = IfScanned

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._PassRate = params.get("PassRate")
        self._StrategyName = params.get("StrategyName")
        self._ScanCycle = params.get("ScanCycle")
        self._ScanAt = params.get("ScanAt")
        self._IsGlobal = params.get("IsGlobal")
        self._MachineType = params.get("MachineType")
        self._Region = params.get("Region")
        self._Quuids = params.get("Quuids")
        self._CategoryIds = params.get("CategoryIds")
        self._IfScanned = params.get("IfScanned")
        self._RequestId = params.get("RequestId")


class DescribeBaselineStrategyListRequest(AbstractModel):
    """DescribeBaselineStrategyList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _Enabled: 规则开关，1：打开 0：关闭  2:全部
        :type Enabled: int
        """
        self._Limit = None
        self._Offset = None
        self._Enabled = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Enabled(self):
        return self._Enabled

    @Enabled.setter
    def Enabled(self, Enabled):
        self._Enabled = Enabled


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Enabled = params.get("Enabled")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineStrategyListResponse(AbstractModel):
    """DescribeBaselineStrategyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 分页查询记录的总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _StrategyList: 用户策略信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyList: list of Strategy
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._StrategyList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def StrategyList(self):
        return self._StrategyList

    @StrategyList.setter
    def StrategyList(self, StrategyList):
        self._StrategyList = StrategyList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("StrategyList") is not None:
            self._StrategyList = []
            for item in params.get("StrategyList"):
                obj = Strategy()
                obj._deserialize(item)
                self._StrategyList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineTopRequest(AbstractModel):
    """DescribeBaselineTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Top: 动态top值
        :type Top: int
        :param _StrategyId: 策略id
        :type StrategyId: int
        """
        self._Top = None
        self._StrategyId = None

    @property
    def Top(self):
        return self._Top

    @Top.setter
    def Top(self, Top):
        self._Top = Top

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId


    def _deserialize(self, params):
        self._Top = params.get("Top")
        self._StrategyId = params.get("StrategyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineTopResponse(AbstractModel):
    """DescribeBaselineTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleTopList: 检测项Top列表
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleTopList: list of BaselineRuleTopInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RuleTopList = None
        self._RequestId = None

    @property
    def RuleTopList(self):
        return self._RuleTopList

    @RuleTopList.setter
    def RuleTopList(self, RuleTopList):
        self._RuleTopList = RuleTopList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RuleTopList") is not None:
            self._RuleTopList = []
            for item in params.get("RuleTopList"):
                obj = BaselineRuleTopInfo()
                obj._deserialize(item)
                self._RuleTopList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBaselineWeakPasswordListRequest(AbstractModel):
    """DescribeBaselineWeakPasswordList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>WeakPassword - string - 是否必填：否 - 弱口令</li>
        :type Filters: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式 [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列 [CreateTime|ModifyTime]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBaselineWeakPasswordListResponse(AbstractModel):
    """DescribeBaselineWeakPasswordList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Total: 总数
        :type Total: int
        :param _List: 无
        :type List: list of BaselineWeakPassword
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Total = None
        self._List = None
        self._RequestId = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BaselineWeakPassword()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBashEventsInfoNewRequest(AbstractModel):
    """DescribeBashEventsInfoNew请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBashEventsInfoNewResponse(AbstractModel):
    """DescribeBashEventsInfoNew返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BashEventsInfo: 事件详情
注意：此字段可能返回 null，表示取不到有效值。
        :type BashEventsInfo: :class:`tencentcloud.cwp.v20180228.models.BashEventsInfoNew`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BashEventsInfo = None
        self._RequestId = None

    @property
    def BashEventsInfo(self):
        return self._BashEventsInfo

    @BashEventsInfo.setter
    def BashEventsInfo(self, BashEventsInfo):
        self._BashEventsInfo = BashEventsInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("BashEventsInfo") is not None:
            self._BashEventsInfo = BashEventsInfoNew()
            self._BashEventsInfo._deserialize(params.get("BashEventsInfo"))
        self._RequestId = params.get("RequestId")


class DescribeBashEventsInfoRequest(AbstractModel):
    """DescribeBashEventsInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBashEventsInfoResponse(AbstractModel):
    """DescribeBashEventsInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BashEventsInfo: 事件详情
注意：此字段可能返回 null，表示取不到有效值。
        :type BashEventsInfo: :class:`tencentcloud.cwp.v20180228.models.BashEventsInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BashEventsInfo = None
        self._RequestId = None

    @property
    def BashEventsInfo(self):
        return self._BashEventsInfo

    @BashEventsInfo.setter
    def BashEventsInfo(self, BashEventsInfo):
        self._BashEventsInfo = BashEventsInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("BashEventsInfo") is not None:
            self._BashEventsInfo = BashEventsInfo()
            self._BashEventsInfo._deserialize(params.get("BashEventsInfo"))
        self._RequestId = params.get("RequestId")


class DescribeBashEventsNewRequest(AbstractModel):
    """DescribeBashEventsNew请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :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: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式：根据请求次数排序：asc-升序/desc-降序
        :type Order: str
        :param _By: 排序字段：CreateTime-发生时间。ModifyTime-处理时间
        :type By: str
        """
        self._Limit = None
        self._Filters = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBashEventsNewResponse(AbstractModel):
    """DescribeBashEventsNew返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 高危命令事件列表
        :type List: list of BashEventNew
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BashEventNew()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBashEventsRequest(AbstractModel):
    """DescribeBashEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :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: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式：根据请求次数排序：asc-升序/desc-降序
        :type Order: str
        :param _By: 排序字段：CreateTime-发生时间。ModifyTime-处理时间
        :type By: str
        """
        self._Limit = None
        self._Filters = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBashEventsResponse(AbstractModel):
    """DescribeBashEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 高危命令事件列表
        :type List: list of BashEvent
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BashEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBashPoliciesRequest(AbstractModel):
    """DescribeBashPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBashPoliciesResponse(AbstractModel):
    """DescribeBashPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of BashPolicy
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BashPolicy()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeBashRulesRequest(AbstractModel):
    """DescribeBashRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Type: 0-系统规则; 1-用户规则
        :type Type: int
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(规则名称)</li>
        :type Filters: list of Filter
        """
        self._Type = None
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBashRulesResponse(AbstractModel):
    """DescribeBashRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of BashRule
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = BashRule()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeBruteAttackListRequest(AbstractModel):
    """DescribeBruteAttackList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 需要返回的数量，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        :param _Order: 排序方式：根据请求次数排序：asc-升序/desc-降序
        :type Order: str
        :param _By: 排序字段：CreateTime-首次攻击时间
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeBruteAttackListResponse(AbstractModel):
    """DescribeBruteAttackList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _BruteAttackList: 密码破解列表
注意：此字段可能返回 null，表示取不到有效值。
        :type BruteAttackList: list of BruteAttackInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._BruteAttackList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def BruteAttackList(self):
        return self._BruteAttackList

    @BruteAttackList.setter
    def BruteAttackList(self, BruteAttackList):
        self._BruteAttackList = BruteAttackList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("BruteAttackList") is not None:
            self._BruteAttackList = []
            for item in params.get("BruteAttackList"):
                obj = BruteAttackInfo()
                obj._deserialize(item)
                self._BruteAttackList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeBruteAttackRulesRequest(AbstractModel):
    """DescribeBruteAttackRules请求参数结构体

    """


class DescribeBruteAttackRulesResponse(AbstractModel):
    """DescribeBruteAttackRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Rules: 爆破阻断规则列表
        :type Rules: list of BruteAttackRuleList
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Rules = None
        self._RequestId = None

    @property
    def Rules(self):
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Rules") is not None:
            self._Rules = []
            for item in params.get("Rules"):
                obj = BruteAttackRuleList()
                obj._deserialize(item)
                self._Rules.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCanFixVulMachineRequest(AbstractModel):
    """DescribeCanFixVulMachine请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulIds: 漏洞id 支持多个漏洞
        :type VulIds: list of int non-negative
        :param _Quuids: 需要修复的主机，和VulIds是and 的关系
        :type Quuids: list of str
        """
        self._VulIds = None
        self._Quuids = None

    @property
    def VulIds(self):
        return self._VulIds

    @VulIds.setter
    def VulIds(self, VulIds):
        self._VulIds = VulIds

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._VulIds = params.get("VulIds")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCanFixVulMachineResponse(AbstractModel):
    """DescribeCanFixVulMachine返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulInfo: 主机漏洞修护信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type VulInfo: list of CanFixVulInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulInfo = None
        self._RequestId = None

    @property
    def VulInfo(self):
        return self._VulInfo

    @VulInfo.setter
    def VulInfo(self, VulInfo):
        self._VulInfo = VulInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VulInfo") is not None:
            self._VulInfo = []
            for item in params.get("VulInfo"):
                obj = CanFixVulInfo()
                obj._deserialize(item)
                self._VulInfo.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCanNotSeparateMachineRequest(AbstractModel):
    """DescribeCanNotSeparateMachine请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 需要修改的事件id 数组，支持批量
        :type Ids: list of int non-negative
        :param _UpdateAll: 是否更新全部，即是否对所有的事件进行操作，当ids 不为空时，此参数无效
        :type UpdateAll: bool
        :param _ExcludeId: 排除的事件id,当操作全部事件时，需要排除这次id
        :type ExcludeId: list of int non-negative
        :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: list of Filters
        """
        self._Ids = None
        self._UpdateAll = None
        self._ExcludeId = None
        self._Filters = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def UpdateAll(self):
        return self._UpdateAll

    @UpdateAll.setter
    def UpdateAll(self, UpdateAll):
        self._UpdateAll = UpdateAll

    @property
    def ExcludeId(self):
        return self._ExcludeId

    @ExcludeId.setter
    def ExcludeId(self, ExcludeId):
        self._ExcludeId = ExcludeId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._UpdateAll = params.get("UpdateAll")
        self._ExcludeId = params.get("ExcludeId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCanNotSeparateMachineResponse(AbstractModel):
    """DescribeCanNotSeparateMachine返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 不可隔离主机列表
        :type List: list of CanNotSeparateInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = CanNotSeparateInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeClientExceptionRequest(AbstractModel):
    """DescribeClientException请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ExceptionType: 客户端异常类型 1:客户端离线，2:客户端卸载
        :type ExceptionType: int
        :param _Offset: 分页的偏移量
        :type Offset: int
        :param _Limit: 分页单页限制数目，不为0，最大值100
        :type Limit: int
        :param _StartTime: 起始时间 `2006-01-02 15:04:05` 格式
        :type StartTime: str
        :param _EndTime: 结束时间 `2006-01-02 15:04:05` 格式
        :type EndTime: str
        """
        self._ExceptionType = None
        self._Offset = None
        self._Limit = None
        self._StartTime = None
        self._EndTime = None

    @property
    def ExceptionType(self):
        return self._ExceptionType

    @ExceptionType.setter
    def ExceptionType(self, ExceptionType):
        self._ExceptionType = ExceptionType

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        self._ExceptionType = params.get("ExceptionType")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeClientExceptionResponse(AbstractModel):
    """DescribeClientException返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 事件总数量
        :type TotalCount: int
        :param _Records: 事件详情
        :type Records: list of RecordInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._Records = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Records(self):
        return self._Records

    @Records.setter
    def Records(self, Records):
        self._Records = Records

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("Records") is not None:
            self._Records = []
            for item in params.get("Records"):
                obj = RecordInfo()
                obj._deserialize(item)
                self._Records.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeCloudProtectServiceOrderListRequest(AbstractModel):
    """DescribeCloudProtectServiceOrderList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Order: 排序字段,当前支持: BeginTime
        :type Order: str
        :param _By: 排序方式,当前支持:
ASC 正序,DESC 倒序
        :type By: str
        """
        self._Order = None
        self._By = None

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeCloudProtectServiceOrderListResponse(AbstractModel):
    """DescribeCloudProtectServiceOrderList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 云护航订单列表信息
        :type Data: list of CloudProtectService
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = []
            for item in params.get("Data"):
                obj = CloudProtectService()
                obj._deserialize(item)
                self._Data.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeComponentStatisticsRequest(AbstractModel):
    """DescribeComponentStatistics请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
ComponentName - String - 是否必填：否 - 组件名称
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeComponentStatisticsResponse(AbstractModel):
    """DescribeComponentStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 组件统计列表记录总数。
        :type TotalCount: int
        :param _ComponentStatistics: 组件统计列表数据数组。
        :type ComponentStatistics: list of ComponentStatistics
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._ComponentStatistics = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ComponentStatistics(self):
        return self._ComponentStatistics

    @ComponentStatistics.setter
    def ComponentStatistics(self, ComponentStatistics):
        self._ComponentStatistics = ComponentStatistics

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("ComponentStatistics") is not None:
            self._ComponentStatistics = []
            for item in params.get("ComponentStatistics"):
                obj = ComponentStatistics()
                obj._deserialize(item)
                self._ComponentStatistics.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeDefenceEventDetailRequest(AbstractModel):
    """DescribeDefenceEventDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 漏洞事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeDefenceEventDetailResponse(AbstractModel):
    """DescribeDefenceEventDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 漏洞事件详细信息
        :type Data: :class:`tencentcloud.cwp.v20180228.models.VulDefenceEventDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = VulDefenceEventDetail()
            self._Data._deserialize(params.get("Data"))
        self._RequestId = params.get("RequestId")


class DescribeDirectConnectInstallCommandRequest(AbstractModel):
    """DescribeDirectConnectInstallCommand请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RegionCode: 地域标示
        :type RegionCode: str
        :param _VpcId: Vpc的ID
        :type VpcId: str
        :param _ExpireDate: 命令过期时间
        :type ExpireDate: str
        """
        self._RegionCode = None
        self._VpcId = None
        self._ExpireDate = None

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def ExpireDate(self):
        return self._ExpireDate

    @ExpireDate.setter
    def ExpireDate(self, ExpireDate):
        self._ExpireDate = ExpireDate


    def _deserialize(self, params):
        self._RegionCode = params.get("RegionCode")
        self._VpcId = params.get("VpcId")
        self._ExpireDate = params.get("ExpireDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeDirectConnectInstallCommandResponse(AbstractModel):
    """DescribeDirectConnectInstallCommand返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip: 安装命令的ip
        :type Ip: str
        :param _Token: 安装命令的token
        :type Token: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Ip = None
        self._Token = None
        self._RequestId = None

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def Token(self):
        return self._Token

    @Token.setter
    def Token(self, Token):
        self._Token = Token

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Ip = params.get("Ip")
        self._Token = params.get("Token")
        self._RequestId = params.get("RequestId")


class DescribeESAggregationsRequest(AbstractModel):
    """DescribeESAggregations请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Query: ES聚合条件JSON
        :type Query: str
        """
        self._Query = None

    @property
    def Query(self):
        return self._Query

    @Query.setter
    def Query(self, Query):
        self._Query = Query


    def _deserialize(self, params):
        self._Query = params.get("Query")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeESAggregationsResponse(AbstractModel):
    """DescribeESAggregations返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: ES聚合结果JSON
        :type Data: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Data = params.get("Data")
        self._RequestId = params.get("RequestId")


class DescribeEmergencyResponseListRequest(AbstractModel):
    """DescribeEmergencyResponseList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Keyword- String - 是否必填：否 - 关键词过滤，</li>
<li>Uuids - String - 是否必填：否 - 主机id过滤</li>
        :type Filters: list of Filters
        :param _Limit: 需要返回的数量，最大值为100
        :type Limit: int
        :param _Offset: 排序步长
        :type Offset: int
        :param _Order: 排序方法
        :type Order: str
        :param _By: 排序字段 StartTime，EndTime
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeEmergencyResponseListResponse(AbstractModel):
    """DescribeEmergencyResponseList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 应急响应列表
        :type List: list of EmergencyResponseInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = EmergencyResponseInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeEmergencyVulListRequest(AbstractModel):
    """DescribeEmergencyVulList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filters
        :param _Order: 排序方式 desc , asc
        :type Order: str
        :param _By: 排序字段 PublishDate  LastScanTime HostCount
        :type By: str
        :param _HotspotAttack: 是否热点漏洞
        :type HotspotAttack: bool
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None
        self._HotspotAttack = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def HotspotAttack(self):
        return self._HotspotAttack

    @HotspotAttack.setter
    def HotspotAttack(self, HotspotAttack):
        self._HotspotAttack = HotspotAttack


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        self._HotspotAttack = params.get("HotspotAttack")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeEmergencyVulListResponse(AbstractModel):
    """DescribeEmergencyVulList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 漏洞列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of EmergencyVul
        :param _TotalCount: 漏洞总条数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _ExistsRisk: 是否存在风险
注意：此字段可能返回 null，表示取不到有效值。
        :type ExistsRisk: bool
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._ExistsRisk = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ExistsRisk(self):
        return self._ExistsRisk

    @ExistsRisk.setter
    def ExistsRisk(self, ExistsRisk):
        self._ExistsRisk = ExistsRisk

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = EmergencyVul()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._ExistsRisk = params.get("ExistsRisk")
        self._RequestId = params.get("RequestId")


class DescribeEventByTableRequest(AbstractModel):
    """DescribeEventByTable请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TableName: 事件表名
        :type TableName: str
        :param _Ids: 事件表id号
        :type Ids: list of int
        """
        self._TableName = None
        self._Ids = None

    @property
    def TableName(self):
        return self._TableName

    @TableName.setter
    def TableName(self, TableName):
        self._TableName = TableName

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._TableName = params.get("TableName")
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeEventByTableResponse(AbstractModel):
    """DescribeEventByTable返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Type: 告警类型，爆破bruteattack，高危命令bash，恶意文件malware，恶意请求risk_dns，本地提权privilege_escalation，反弹shell reverse_shell，内存马java_shell
        :type Type: str
        :param _Value: 事件内容的json编码字符串，字段结构对齐事件表
        :type Value: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Type = None
        self._Value = None
        self._RequestId = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Value = params.get("Value")
        self._RequestId = params.get("RequestId")


class DescribeExpertServiceListRequest(AbstractModel):
    """DescribeExpertServiceList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Keyword- String - 是否必填：否 - 关键词过滤，</li>
<li>Uuids - String - 是否必填：否 - 主机id过滤</li>
        :type Filters: list of Filters
        :param _Limit: 需要返回的数量，最大值为100
        :type Limit: int
        :param _Offset: 排序步长
        :type Offset: int
        :param _Order: 排序方法
        :type Order: str
        :param _By: 排序字段 StartTime，EndTime
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeExpertServiceListResponse(AbstractModel):
    """DescribeExpertServiceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 安全管家数据
        :type List: list of SecurityButlerInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = SecurityButlerInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeExpertServiceOrderListRequest(AbstractModel):
    """DescribeExpertServiceOrderList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>InquireType- String - 是否必填：否 - 订单类型过滤，</li>
        :type Filters: list of Filters
        :param _Limit: 分页条数 最大100条
        :type Limit: int
        :param _Offset: 分页步长
        :type Offset: int
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeExpertServiceOrderListResponse(AbstractModel):
    """DescribeExpertServiceOrderList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 订单列表
        :type List: list of ExpertServiceOrderInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ExpertServiceOrderInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeExportMachinesRequest(AbstractModel):
    """DescribeExportMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineType: 云主机类型。
<li>CVM：表示虚拟主机</li>
<li>BM:  表示黑石物理机</li>
        :type MachineType: str
        :param _MachineRegion: 机器所属地域。如：ap-guangzhou，ap-shanghai
        :type MachineRegion: str
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 查询关键字 </li>
<li>Status - String - 是否必填：否 - 客户端在线状态（OFFLINE: 离线 | ONLINE: 在线 | UNINSTALLED：未安装）</li>
<li>Version - String  是否必填：否 - 当前防护版本（ PRO_VERSION：专业版 | BASIC_VERSION：基础版）</li>
每个过滤条件只支持一个值，暂不支持多个值“或”关系查询
        :type Filters: list of Filter
        :param _ProjectIds: 机器所属业务ID列表
        :type ProjectIds: list of int non-negative
        """
        self._MachineType = None
        self._MachineRegion = None
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._ProjectIds = None

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ProjectIds(self):
        return self._ProjectIds

    @ProjectIds.setter
    def ProjectIds(self, ProjectIds):
        self._ProjectIds = ProjectIds


    def _deserialize(self, params):
        self._MachineType = params.get("MachineType")
        self._MachineRegion = params.get("MachineRegion")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ProjectIds = params.get("ProjectIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeExportMachinesResponse(AbstractModel):
    """DescribeExportMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class DescribeFastAnalysisRequest(AbstractModel):
    """DescribeFastAnalysis请求参数结构体

    """

    def __init__(self):
        r"""
        :param _From: 起始时间，单位ms
        :type From: int
        :param _To: 结束时间，单位ms
        :type To: int
        :param _Query: 查询语句，语句长度最大为4096
        :type Query: str
        :param _FieldName: 日志字段名称
        :type FieldName: str
        """
        self._From = None
        self._To = None
        self._Query = None
        self._FieldName = None

    @property
    def From(self):
        return self._From

    @From.setter
    def From(self, From):
        self._From = From

    @property
    def To(self):
        return self._To

    @To.setter
    def To(self, To):
        self._To = To

    @property
    def Query(self):
        return self._Query

    @Query.setter
    def Query(self, Query):
        self._Query = Query

    @property
    def FieldName(self):
        return self._FieldName

    @FieldName.setter
    def FieldName(self, FieldName):
        self._FieldName = FieldName


    def _deserialize(self, params):
        self._From = params.get("From")
        self._To = params.get("To")
        self._Query = params.get("Query")
        self._FieldName = params.get("FieldName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeFastAnalysisResponse(AbstractModel):
    """DescribeFastAnalysis返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FieldValueRatioInfos: 分析统计信息
注意：此字段可能返回 null，表示取不到有效值。
        :type FieldValueRatioInfos: list of FieldValueRatioInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FieldValueRatioInfos = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def FieldValueRatioInfos(self):
        return self._FieldValueRatioInfos

    @FieldValueRatioInfos.setter
    def FieldValueRatioInfos(self, FieldValueRatioInfos):
        self._FieldValueRatioInfos = FieldValueRatioInfos

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FieldValueRatioInfos") is not None:
            self._FieldValueRatioInfos = []
            for item in params.get("FieldValueRatioInfos"):
                obj = FieldValueRatioInfo()
                obj._deserialize(item)
                self._FieldValueRatioInfos.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeFileTamperEventRuleInfoRequest(AbstractModel):
    """DescribeFileTamperEventRuleInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        :param _Limit: 一页多少个 控制返回的uuids条数
        :type Limit: int
        :param _Offset: 控制返回的uuids条数
        :type Offset: int
        """
        self._Id = None
        self._Limit = None
        self._Offset = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeFileTamperEventRuleInfoResponse(AbstractModel):
    """DescribeFileTamperEventRuleInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileTamperRuleDetail: 规则详情信息
        :type FileTamperRuleDetail: :class:`tencentcloud.cwp.v20180228.models.FileTamperRuleDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileTamperRuleDetail = None
        self._RequestId = None

    @property
    def FileTamperRuleDetail(self):
        return self._FileTamperRuleDetail

    @FileTamperRuleDetail.setter
    def FileTamperRuleDetail(self, FileTamperRuleDetail):
        self._FileTamperRuleDetail = FileTamperRuleDetail

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FileTamperRuleDetail") is not None:
            self._FileTamperRuleDetail = FileTamperRuleDetail()
            self._FileTamperRuleDetail._deserialize(params.get("FileTamperRuleDetail"))
        self._RequestId = params.get("RequestId")


class DescribeFileTamperEventsRequest(AbstractModel):
    """DescribeFileTamperEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式 ASC,DESC
        :type Order: str
        :param _By: 排序字段 CreateTime、ModifyTime
        :type By: str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeFileTamperEventsResponse(AbstractModel):
    """DescribeFileTamperEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 核心文件事件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of FileTamperEvent
        :param _TotalCount: 数据总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = FileTamperEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeFileTamperRuleCountRequest(AbstractModel):
    """DescribeFileTamperRuleCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuids: 查询的主机uuids 一次性最多只能查100个
        :type Uuids: list of str
        """
        self._Uuids = None

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids


    def _deserialize(self, params):
        self._Uuids = params.get("Uuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeFileTamperRuleCountResponse(AbstractModel):
    """DescribeFileTamperRuleCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机关联核心文件规则数量信息
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of FileTamperRuleCount
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = FileTamperRuleCount()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeFileTamperRuleInfoRequest(AbstractModel):
    """DescribeFileTamperRuleInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则id
        :type Id: int
        :param _Limit: 控制返回的uuids 数量
        :type Limit: int
        :param _Offset: 控制返回的uuids 数量，起始位置
        :type Offset: int
        """
        self._Id = None
        self._Limit = None
        self._Offset = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeFileTamperRuleInfoResponse(AbstractModel):
    """DescribeFileTamperRuleInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileTamperRuleDetail: 规则详情信息
        :type FileTamperRuleDetail: :class:`tencentcloud.cwp.v20180228.models.FileTamperRuleDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileTamperRuleDetail = None
        self._RequestId = None

    @property
    def FileTamperRuleDetail(self):
        return self._FileTamperRuleDetail

    @FileTamperRuleDetail.setter
    def FileTamperRuleDetail(self, FileTamperRuleDetail):
        self._FileTamperRuleDetail = FileTamperRuleDetail

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FileTamperRuleDetail") is not None:
            self._FileTamperRuleDetail = FileTamperRuleDetail()
            self._FileTamperRuleDetail._deserialize(params.get("FileTamperRuleDetail"))
        self._RequestId = params.get("RequestId")


class DescribeFileTamperRulesRequest(AbstractModel):
    """DescribeFileTamperRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>RuleCategory- string- 规则类别  0=系统规则，1=用户规则</li>
<li>Name- String - 规则名称/li>
        :type Filters: list of Filters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式 ASC,DESC
        :type Order: str
        :param _By: 排序字段 CreateTime、ModifyTime、HostCount
        :type By: str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeFileTamperRulesResponse(AbstractModel):
    """DescribeFileTamperRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 规则列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of FileTamperRuleInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = FileTamperRuleInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeGeneralStatRequest(AbstractModel):
    """DescribeGeneralStat请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineType: 云主机类型。
<li>CVM：表示腾讯云服务器</li>
<li>BM:  表示黑石物理机</li>
<li>ECM:  表示边缘计算服务器</li>
<li>LH:  表示轻量应用服务器</li>
<li>Other:  表示混合云机器</li>
        :type MachineType: str
        :param _MachineRegion: 机器所属地域。如：ap-guangzhou，ap-shanghai
        :type MachineRegion: str
        """
        self._MachineType = None
        self._MachineRegion = None

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion


    def _deserialize(self, params):
        self._MachineType = params.get("MachineType")
        self._MachineRegion = params.get("MachineRegion")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeGeneralStatResponse(AbstractModel):
    """DescribeGeneralStat返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachinesAll: 云主机总数
        :type MachinesAll: int
        :param _MachinesUninstalled: 云主机没有安装主机安全客户端的总数
        :type MachinesUninstalled: int
        :param _AgentsAll: 主机安全客户端总数的总数
        :type AgentsAll: int
        :param _AgentsOnline: 主机安全客户端在线的总数
        :type AgentsOnline: int
        :param _AgentsOffline: 主机安全客户端 离线+关机 的总数
        :type AgentsOffline: int
        :param _AgentsPro: 主机安全客户端专业版的总数
        :type AgentsPro: int
        :param _AgentsBasic: 主机安全客户端基础版的总数
        :type AgentsBasic: int
        :param _AgentsProExpireWithInSevenDays: 7天内到期的预付费专业版总数
        :type AgentsProExpireWithInSevenDays: int
        :param _RiskMachine: 风险主机总数
        :type RiskMachine: int
        :param _Shutdown: 已关机总数
        :type Shutdown: int
        :param _Offline: 已离线总数
        :type Offline: int
        :param _FlagshipMachineCnt: 旗舰版主机数
注意：此字段可能返回 null，表示取不到有效值。
        :type FlagshipMachineCnt: int
        :param _ProtectDays: 保护天数
注意：此字段可能返回 null，表示取不到有效值。
        :type ProtectDays: int
        :param _AddedOnTheFifteen: 15天内新增的主机数
注意：此字段可能返回 null，表示取不到有效值。
        :type AddedOnTheFifteen: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MachinesAll = None
        self._MachinesUninstalled = None
        self._AgentsAll = None
        self._AgentsOnline = None
        self._AgentsOffline = None
        self._AgentsPro = None
        self._AgentsBasic = None
        self._AgentsProExpireWithInSevenDays = None
        self._RiskMachine = None
        self._Shutdown = None
        self._Offline = None
        self._FlagshipMachineCnt = None
        self._ProtectDays = None
        self._AddedOnTheFifteen = None
        self._RequestId = None

    @property
    def MachinesAll(self):
        return self._MachinesAll

    @MachinesAll.setter
    def MachinesAll(self, MachinesAll):
        self._MachinesAll = MachinesAll

    @property
    def MachinesUninstalled(self):
        return self._MachinesUninstalled

    @MachinesUninstalled.setter
    def MachinesUninstalled(self, MachinesUninstalled):
        self._MachinesUninstalled = MachinesUninstalled

    @property
    def AgentsAll(self):
        return self._AgentsAll

    @AgentsAll.setter
    def AgentsAll(self, AgentsAll):
        self._AgentsAll = AgentsAll

    @property
    def AgentsOnline(self):
        return self._AgentsOnline

    @AgentsOnline.setter
    def AgentsOnline(self, AgentsOnline):
        self._AgentsOnline = AgentsOnline

    @property
    def AgentsOffline(self):
        return self._AgentsOffline

    @AgentsOffline.setter
    def AgentsOffline(self, AgentsOffline):
        self._AgentsOffline = AgentsOffline

    @property
    def AgentsPro(self):
        return self._AgentsPro

    @AgentsPro.setter
    def AgentsPro(self, AgentsPro):
        self._AgentsPro = AgentsPro

    @property
    def AgentsBasic(self):
        return self._AgentsBasic

    @AgentsBasic.setter
    def AgentsBasic(self, AgentsBasic):
        self._AgentsBasic = AgentsBasic

    @property
    def AgentsProExpireWithInSevenDays(self):
        return self._AgentsProExpireWithInSevenDays

    @AgentsProExpireWithInSevenDays.setter
    def AgentsProExpireWithInSevenDays(self, AgentsProExpireWithInSevenDays):
        self._AgentsProExpireWithInSevenDays = AgentsProExpireWithInSevenDays

    @property
    def RiskMachine(self):
        return self._RiskMachine

    @RiskMachine.setter
    def RiskMachine(self, RiskMachine):
        self._RiskMachine = RiskMachine

    @property
    def Shutdown(self):
        return self._Shutdown

    @Shutdown.setter
    def Shutdown(self, Shutdown):
        self._Shutdown = Shutdown

    @property
    def Offline(self):
        return self._Offline

    @Offline.setter
    def Offline(self, Offline):
        self._Offline = Offline

    @property
    def FlagshipMachineCnt(self):
        return self._FlagshipMachineCnt

    @FlagshipMachineCnt.setter
    def FlagshipMachineCnt(self, FlagshipMachineCnt):
        self._FlagshipMachineCnt = FlagshipMachineCnt

    @property
    def ProtectDays(self):
        return self._ProtectDays

    @ProtectDays.setter
    def ProtectDays(self, ProtectDays):
        self._ProtectDays = ProtectDays

    @property
    def AddedOnTheFifteen(self):
        return self._AddedOnTheFifteen

    @AddedOnTheFifteen.setter
    def AddedOnTheFifteen(self, AddedOnTheFifteen):
        self._AddedOnTheFifteen = AddedOnTheFifteen

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MachinesAll = params.get("MachinesAll")
        self._MachinesUninstalled = params.get("MachinesUninstalled")
        self._AgentsAll = params.get("AgentsAll")
        self._AgentsOnline = params.get("AgentsOnline")
        self._AgentsOffline = params.get("AgentsOffline")
        self._AgentsPro = params.get("AgentsPro")
        self._AgentsBasic = params.get("AgentsBasic")
        self._AgentsProExpireWithInSevenDays = params.get("AgentsProExpireWithInSevenDays")
        self._RiskMachine = params.get("RiskMachine")
        self._Shutdown = params.get("Shutdown")
        self._Offline = params.get("Offline")
        self._FlagshipMachineCnt = params.get("FlagshipMachineCnt")
        self._ProtectDays = params.get("ProtectDays")
        self._AddedOnTheFifteen = params.get("AddedOnTheFifteen")
        self._RequestId = params.get("RequestId")


class DescribeHistoryAccountsRequest(AbstractModel):
    """DescribeHistoryAccounts请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 云镜客户端唯一Uuid。
        :type Uuid: str
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Username - String - 是否必填：否 - 帐号名</li>
        :type Filters: list of Filter
        """
        self._Uuid = None
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeHistoryAccountsResponse(AbstractModel):
    """DescribeHistoryAccounts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 帐号变更历史列表记录总数。
        :type TotalCount: int
        :param _HistoryAccounts: 帐号变更历史数据数组。
        :type HistoryAccounts: list of HistoryAccount
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._HistoryAccounts = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def HistoryAccounts(self):
        return self._HistoryAccounts

    @HistoryAccounts.setter
    def HistoryAccounts(self, HistoryAccounts):
        self._HistoryAccounts = HistoryAccounts

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("HistoryAccounts") is not None:
            self._HistoryAccounts = []
            for item in params.get("HistoryAccounts"):
                obj = HistoryAccount()
                obj._deserialize(item)
                self._HistoryAccounts.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeHistoryServiceRequest(AbstractModel):
    """DescribeHistoryService请求参数结构体

    """


class DescribeHistoryServiceResponse(AbstractModel):
    """DescribeHistoryService返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BuyStatus: 1 可购买 2 只能升降配 3 只能跳到续费管理页
        :type BuyStatus: int
        :param _InquireNum: 用户已购容量 单位 G
        :type InquireNum: int
        :param _EndTime: 到期时间
        :type EndTime: str
        :param _IsAutoOpenRenew: 是否自动续费,0 初始值, 1 开通 2 没开通
        :type IsAutoOpenRenew: int
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _Status: 0 没开通 1 正常 2隔离 3销毁
        :type Status: int
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BuyStatus = None
        self._InquireNum = None
        self._EndTime = None
        self._IsAutoOpenRenew = None
        self._ResourceId = None
        self._Status = None
        self._StartTime = None
        self._RequestId = None

    @property
    def BuyStatus(self):
        return self._BuyStatus

    @BuyStatus.setter
    def BuyStatus(self, BuyStatus):
        self._BuyStatus = BuyStatus

    @property
    def InquireNum(self):
        return self._InquireNum

    @InquireNum.setter
    def InquireNum(self, InquireNum):
        self._InquireNum = InquireNum

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def IsAutoOpenRenew(self):
        return self._IsAutoOpenRenew

    @IsAutoOpenRenew.setter
    def IsAutoOpenRenew(self, IsAutoOpenRenew):
        self._IsAutoOpenRenew = IsAutoOpenRenew

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._BuyStatus = params.get("BuyStatus")
        self._InquireNum = params.get("InquireNum")
        self._EndTime = params.get("EndTime")
        self._IsAutoOpenRenew = params.get("IsAutoOpenRenew")
        self._ResourceId = params.get("ResourceId")
        self._Status = params.get("Status")
        self._StartTime = params.get("StartTime")
        self._RequestId = params.get("RequestId")


class DescribeHostInfoRequest(AbstractModel):
    """DescribeHostInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _QuuidList: 主机Quuid数组
        :type QuuidList: list of str
        :param _Uuids: Uuids 查询，Quuid查询时填空
        :type Uuids: list of str
        """
        self._QuuidList = None
        self._Uuids = None

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids


    def _deserialize(self, params):
        self._QuuidList = params.get("QuuidList")
        self._Uuids = params.get("Uuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeHostInfoResponse(AbstractModel):
    """DescribeHostInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HostInfoList: 主机信息与标签信息
注意：此字段可能返回 null，表示取不到有效值。
        :type HostInfoList: list of HostTagInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostInfoList = None
        self._RequestId = None

    @property
    def HostInfoList(self):
        return self._HostInfoList

    @HostInfoList.setter
    def HostInfoList(self, HostInfoList):
        self._HostInfoList = HostInfoList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("HostInfoList") is not None:
            self._HostInfoList = []
            for item in params.get("HostInfoList"):
                obj = HostTagInfo()
                obj._deserialize(item)
                self._HostInfoList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeHostLoginListRequest(AbstractModel):
    """DescribeHostLoginList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 需要返回的数量，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        :param _Order: 排序方式：根据请求次数排序：asc-升序/desc-降序
        :type Order: str
        :param _By: 排序字段：LoginTime-发生时间
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeHostLoginListResponse(AbstractModel):
    """DescribeHostLoginList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _HostLoginList: 登录审计列表
注意：此字段可能返回 null，表示取不到有效值。
        :type HostLoginList: list of HostLoginList
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._HostLoginList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def HostLoginList(self):
        return self._HostLoginList

    @HostLoginList.setter
    def HostLoginList(self, HostLoginList):
        self._HostLoginList = HostLoginList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("HostLoginList") is not None:
            self._HostLoginList = []
            for item in params.get("HostLoginList"):
                obj = HostLoginList()
                obj._deserialize(item)
                self._HostLoginList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeHotVulTopRequest(AbstractModel):
    """DescribeHotVulTop请求参数结构体

    """


class DescribeHotVulTopResponse(AbstractModel):
    """DescribeHotVulTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 漏洞信息
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of VulStoreListInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = VulStoreListInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeIgnoreBaselineRuleRequest(AbstractModel):
    """DescribeIgnoreBaselineRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _RuleName: 检测项名称
        :type RuleName: str
        """
        self._Limit = None
        self._Offset = None
        self._RuleName = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._RuleName = params.get("RuleName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeIgnoreBaselineRuleResponse(AbstractModel):
    """DescribeIgnoreBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IgnoreBaselineRuleList: 忽略基线检测项列表信息
注意：此字段可能返回 null，表示取不到有效值。
        :type IgnoreBaselineRuleList: list of IgnoreBaselineRule
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IgnoreBaselineRuleList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def IgnoreBaselineRuleList(self):
        return self._IgnoreBaselineRuleList

    @IgnoreBaselineRuleList.setter
    def IgnoreBaselineRuleList(self, IgnoreBaselineRuleList):
        self._IgnoreBaselineRuleList = IgnoreBaselineRuleList

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("IgnoreBaselineRuleList") is not None:
            self._IgnoreBaselineRuleList = []
            for item in params.get("IgnoreBaselineRuleList"):
                obj = IgnoreBaselineRule()
                obj._deserialize(item)
                self._IgnoreBaselineRuleList.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeIgnoreHostAndItemConfigRequest(AbstractModel):
    """DescribeIgnoreHostAndItemConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>ItemId - int64 - 是否必填：否 - 项Id</i>
<li>RuleId - int64 - 是否必填：否 - 规则Id</li>
<li>HostId - string - 是否必填：否 - 主机Id</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeIgnoreHostAndItemConfigResponse(AbstractModel):
    """DescribeIgnoreHostAndItemConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ItemSet: 受影响检测项
注意：此字段可能返回 null，表示取不到有效值。
        :type ItemSet: list of BaselineItemInfo
        :param _HostSet: 受影响主机
注意：此字段可能返回 null，表示取不到有效值。
        :type HostSet: list of BaselineHost
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ItemSet = None
        self._HostSet = None
        self._RequestId = None

    @property
    def ItemSet(self):
        return self._ItemSet

    @ItemSet.setter
    def ItemSet(self, ItemSet):
        self._ItemSet = ItemSet

    @property
    def HostSet(self):
        return self._HostSet

    @HostSet.setter
    def HostSet(self, HostSet):
        self._HostSet = HostSet

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ItemSet") is not None:
            self._ItemSet = []
            for item in params.get("ItemSet"):
                obj = BaselineItemInfo()
                obj._deserialize(item)
                self._ItemSet.append(obj)
        if params.get("HostSet") is not None:
            self._HostSet = []
            for item in params.get("HostSet"):
                obj = BaselineHost()
                obj._deserialize(item)
                self._HostSet.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeIgnoreRuleEffectHostListRequest(AbstractModel):
    """DescribeIgnoreRuleEffectHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _RuleId: 检测项id
        :type RuleId: int
        :param _Filters: 过滤条件。
<li>AliasName- String- 主机别名</li>
        :type Filters: list of Filters
        :param _TagNames: 主机标签名
        :type TagNames: list of str
        """
        self._Limit = None
        self._Offset = None
        self._RuleId = None
        self._Filters = None
        self._TagNames = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def TagNames(self):
        return self._TagNames

    @TagNames.setter
    def TagNames(self, TagNames):
        self._TagNames = TagNames


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._RuleId = params.get("RuleId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._TagNames = params.get("TagNames")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeIgnoreRuleEffectHostListResponse(AbstractModel):
    """DescribeIgnoreRuleEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IgnoreRuleEffectHostList: 忽略检测项影响主机列表
注意：此字段可能返回 null，表示取不到有效值。
        :type IgnoreRuleEffectHostList: list of IgnoreRuleEffectHostInfo
        :param _TotalCount: 分页查询记录总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IgnoreRuleEffectHostList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def IgnoreRuleEffectHostList(self):
        return self._IgnoreRuleEffectHostList

    @IgnoreRuleEffectHostList.setter
    def IgnoreRuleEffectHostList(self, IgnoreRuleEffectHostList):
        self._IgnoreRuleEffectHostList = IgnoreRuleEffectHostList

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("IgnoreRuleEffectHostList") is not None:
            self._IgnoreRuleEffectHostList = []
            for item in params.get("IgnoreRuleEffectHostList"):
                obj = IgnoreRuleEffectHostInfo()
                obj._deserialize(item)
                self._IgnoreRuleEffectHostList.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeImportMachineInfoRequest(AbstractModel):
    """DescribeImportMachineInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineList: 服务器内网IP（默认）/ 服务器名称 / 服务器ID 数组 (最大 1000条)
        :type MachineList: list of str
        :param _ImportType: 批量导入的数据类型：Ip、Name、Id 三选一
        :type ImportType: str
        :param _IsQueryProMachine: 该参数已作废.
        :type IsQueryProMachine: bool
        :param _Filters: 过滤条件：
<li>Version - String  是否必填：否 - 当前防护版本（ PRO_VERSION：专业版 | BASIC_VERSION：基础版 | Flagship：旗舰版 | ProtectedMachines：专业版+旗舰版） | BASIC_PROPOST_GENERAL_DISCOUNT：普惠版+专业版按量计费+基础版主机 | UnFlagship：专业版预付费+专业版后付费+基础版+普惠版</li>
        :type Filters: list of Filters
        """
        self._MachineList = None
        self._ImportType = None
        self._IsQueryProMachine = None
        self._Filters = None

    @property
    def MachineList(self):
        return self._MachineList

    @MachineList.setter
    def MachineList(self, MachineList):
        self._MachineList = MachineList

    @property
    def ImportType(self):
        return self._ImportType

    @ImportType.setter
    def ImportType(self, ImportType):
        self._ImportType = ImportType

    @property
    def IsQueryProMachine(self):
        return self._IsQueryProMachine

    @IsQueryProMachine.setter
    def IsQueryProMachine(self, IsQueryProMachine):
        self._IsQueryProMachine = IsQueryProMachine

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._MachineList = params.get("MachineList")
        self._ImportType = params.get("ImportType")
        self._IsQueryProMachine = params.get("IsQueryProMachine")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeImportMachineInfoResponse(AbstractModel):
    """DescribeImportMachineInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EffectiveMachineInfoList: 有效的机器信息列表：机器名称、机器公网/内网ip、机器标签
注意：此字段可能返回 null，表示取不到有效值。
        :type EffectiveMachineInfoList: list of EffectiveMachineInfo
        :param _InvalidMachineList: 用户批量导入失败的机器列表（例如机器不存在等...）
注意：此字段可能返回 null，表示取不到有效值。
        :type InvalidMachineList: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EffectiveMachineInfoList = None
        self._InvalidMachineList = None
        self._RequestId = None

    @property
    def EffectiveMachineInfoList(self):
        return self._EffectiveMachineInfoList

    @EffectiveMachineInfoList.setter
    def EffectiveMachineInfoList(self, EffectiveMachineInfoList):
        self._EffectiveMachineInfoList = EffectiveMachineInfoList

    @property
    def InvalidMachineList(self):
        return self._InvalidMachineList

    @InvalidMachineList.setter
    def InvalidMachineList(self, InvalidMachineList):
        self._InvalidMachineList = InvalidMachineList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("EffectiveMachineInfoList") is not None:
            self._EffectiveMachineInfoList = []
            for item in params.get("EffectiveMachineInfoList"):
                obj = EffectiveMachineInfo()
                obj._deserialize(item)
                self._EffectiveMachineInfoList.append(obj)
        self._InvalidMachineList = params.get("InvalidMachineList")
        self._RequestId = params.get("RequestId")


class DescribeIndexListRequest(AbstractModel):
    """DescribeIndexList请求参数结构体

    """


class DescribeIndexListResponse(AbstractModel):
    """DescribeIndexList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: ES 索引信息
        :type Data: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Data = params.get("Data")
        self._RequestId = params.get("RequestId")


class DescribeJavaMemShellInfoRequest(AbstractModel):
    """DescribeJavaMemShellInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件Id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeJavaMemShellInfoResponse(AbstractModel):
    """DescribeJavaMemShellInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Info: java内存马事件详细信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Info: :class:`tencentcloud.cwp.v20180228.models.JavaMemShellDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Info = None
        self._RequestId = None

    @property
    def Info(self):
        return self._Info

    @Info.setter
    def Info(self, Info):
        self._Info = Info

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Info") is not None:
            self._Info = JavaMemShellDetail()
            self._Info._deserialize(params.get("Info"))
        self._RequestId = params.get("RequestId")


class DescribeJavaMemShellListRequest(AbstractModel):
    """DescribeJavaMemShellList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: ip或者主机名模糊查询, Type，Status精确匹配，CreateBeginTime，CreateEndTime时间段
        :type Filters: list of Filters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeJavaMemShellListResponse(AbstractModel):
    """DescribeJavaMemShellList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 事件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of JavaMemShellInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = JavaMemShellInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeJavaMemShellPluginInfoRequest(AbstractModel):
    """DescribeJavaMemShellPluginInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _Filters: 过滤条件：Pid精确匹配，MainClass模糊匹配
        :type Filters: list of Filters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeJavaMemShellPluginInfoResponse(AbstractModel):
    """DescribeJavaMemShellPluginInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: java内存马插件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of JavaMemShellPluginInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = JavaMemShellPluginInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeJavaMemShellPluginListRequest(AbstractModel):
    """DescribeJavaMemShellPluginList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: ip或者主机名模糊查询, JavaShellStatus，Exception精确匹配
        :type Filters: list of Filters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeJavaMemShellPluginListResponse(AbstractModel):
    """DescribeJavaMemShellPluginList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: java内存马插件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of JavaMemShellPluginSetting
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = JavaMemShellPluginSetting()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeLicenseBindListRequest(AbstractModel):
    """DescribeLicenseBindList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LicenseId: 授权ID
        :type LicenseId: int
        :param _LicenseType: 授权类型
        :type LicenseType: int
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _Filters: <li>InstanceID、IP、

MachineName 模糊查询</li>
        :type Filters: list of Filters
        :param _Limit: 限制条数,默认10.
        :type Limit: int
        :param _Offset: 偏移量,默认0.
        :type Offset: int
        """
        self._LicenseId = None
        self._LicenseType = None
        self._ResourceId = None
        self._Filters = None
        self._Limit = None
        self._Offset = None

    @property
    def LicenseId(self):
        return self._LicenseId

    @LicenseId.setter
    def LicenseId(self, LicenseId):
        self._LicenseId = LicenseId

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._LicenseId = params.get("LicenseId")
        self._LicenseType = params.get("LicenseType")
        self._ResourceId = params.get("ResourceId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLicenseBindListResponse(AbstractModel):
    """DescribeLicenseBindList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 绑定机器列表信息
        :type List: list of LicenseBindDetail
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = LicenseBindDetail()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLicenseBindScheduleRequest(AbstractModel):
    """DescribeLicenseBindSchedule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID
        :type TaskId: int
        :param _Limit: 限制条数,默认10.
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Filters: 过滤参数
Status 绑定进度状态 0 进行中 1 已完成 2 失败
        :type Filters: list of Filter
        """
        self._TaskId = None
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLicenseBindScheduleResponse(AbstractModel):
    """DescribeLicenseBindSchedule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Schedule: 进度
        :type Schedule: int
        :param _List: 绑定任务详情
        :type List: list of LicenseBindTaskDetail
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Schedule = None
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Schedule(self):
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Schedule = params.get("Schedule")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = LicenseBindTaskDetail()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeLicenseGeneralRequest(AbstractModel):
    """DescribeLicenseGeneral请求参数结构体

    """


class DescribeLicenseGeneralResponse(AbstractModel):
    """DescribeLicenseGeneral返回参数结构体

    """

    def __init__(self):
        r"""
        :param _LicenseCnt: 总授权数 (包含隔离,过期等不可用状态)
        :type LicenseCnt: int
        :param _AvailableLicenseCnt: 可用授权数
        :type AvailableLicenseCnt: int
        :param _AvailableProVersionLicenseCnt: 可用专业版授权数(包含后付费).
        :type AvailableProVersionLicenseCnt: int
        :param _AvailableFlagshipVersionLicenseCnt: 可用旗舰版授权数
        :type AvailableFlagshipVersionLicenseCnt: int
        :param _NearExpiryLicenseCnt: 即将到期授权数 (15天内到期的)
        :type NearExpiryLicenseCnt: int
        :param _ExpireLicenseCnt: 已到期授权数(不包含已删除的记录)
        :type ExpireLicenseCnt: int
        :param _AutoOpenStatus: 自动升级开关状态,默认 false,  true 开启, false 关闭
        :type AutoOpenStatus: bool
        :param _ProtectType: PROVERSION_POSTPAY 专业版-后付费, PROVERSION_PREPAY 专业版-预付费, FLAGSHIP_PREPAY 旗舰版-预付费
        :type ProtectType: str
        :param _IsOpenStatusHistory: 历史是否开通过自动升级开关
        :type IsOpenStatusHistory: bool
        :param _UsedLicenseCnt: 已使用授权数
        :type UsedLicenseCnt: int
        :param _NotExpiredLicenseCnt: 未到期授权数
        :type NotExpiredLicenseCnt: int
        :param _FlagshipVersionLicenseCnt: 旗舰版总授权数(有效订单)
        :type FlagshipVersionLicenseCnt: int
        :param _ProVersionLicenseCnt: 专业版总授权数(有效订单)
        :type ProVersionLicenseCnt: int
        :param _CwpVersionLicenseCnt: 普惠版总授权数(有效订单的授权数)
        :type CwpVersionLicenseCnt: int
        :param _AvailableLHLicenseCnt: 可用惠普版授权数
        :type AvailableLHLicenseCnt: int
        :param _AutoRepurchaseSwitch: 自动加购开关, true 开启, false 关闭
        :type AutoRepurchaseSwitch: bool
        :param _AutoRepurchaseRenewSwitch: 自动加购订单是否自动续费 ,true 开启, false 关闭
        :type AutoRepurchaseRenewSwitch: bool
        :param _DestroyOrderNum: 已销毁订单数
        :type DestroyOrderNum: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._LicenseCnt = None
        self._AvailableLicenseCnt = None
        self._AvailableProVersionLicenseCnt = None
        self._AvailableFlagshipVersionLicenseCnt = None
        self._NearExpiryLicenseCnt = None
        self._ExpireLicenseCnt = None
        self._AutoOpenStatus = None
        self._ProtectType = None
        self._IsOpenStatusHistory = None
        self._UsedLicenseCnt = None
        self._NotExpiredLicenseCnt = None
        self._FlagshipVersionLicenseCnt = None
        self._ProVersionLicenseCnt = None
        self._CwpVersionLicenseCnt = None
        self._AvailableLHLicenseCnt = None
        self._AutoRepurchaseSwitch = None
        self._AutoRepurchaseRenewSwitch = None
        self._DestroyOrderNum = None
        self._RequestId = None

    @property
    def LicenseCnt(self):
        return self._LicenseCnt

    @LicenseCnt.setter
    def LicenseCnt(self, LicenseCnt):
        self._LicenseCnt = LicenseCnt

    @property
    def AvailableLicenseCnt(self):
        return self._AvailableLicenseCnt

    @AvailableLicenseCnt.setter
    def AvailableLicenseCnt(self, AvailableLicenseCnt):
        self._AvailableLicenseCnt = AvailableLicenseCnt

    @property
    def AvailableProVersionLicenseCnt(self):
        return self._AvailableProVersionLicenseCnt

    @AvailableProVersionLicenseCnt.setter
    def AvailableProVersionLicenseCnt(self, AvailableProVersionLicenseCnt):
        self._AvailableProVersionLicenseCnt = AvailableProVersionLicenseCnt

    @property
    def AvailableFlagshipVersionLicenseCnt(self):
        return self._AvailableFlagshipVersionLicenseCnt

    @AvailableFlagshipVersionLicenseCnt.setter
    def AvailableFlagshipVersionLicenseCnt(self, AvailableFlagshipVersionLicenseCnt):
        self._AvailableFlagshipVersionLicenseCnt = AvailableFlagshipVersionLicenseCnt

    @property
    def NearExpiryLicenseCnt(self):
        return self._NearExpiryLicenseCnt

    @NearExpiryLicenseCnt.setter
    def NearExpiryLicenseCnt(self, NearExpiryLicenseCnt):
        self._NearExpiryLicenseCnt = NearExpiryLicenseCnt

    @property
    def ExpireLicenseCnt(self):
        return self._ExpireLicenseCnt

    @ExpireLicenseCnt.setter
    def ExpireLicenseCnt(self, ExpireLicenseCnt):
        self._ExpireLicenseCnt = ExpireLicenseCnt

    @property
    def AutoOpenStatus(self):
        return self._AutoOpenStatus

    @AutoOpenStatus.setter
    def AutoOpenStatus(self, AutoOpenStatus):
        self._AutoOpenStatus = AutoOpenStatus

    @property
    def ProtectType(self):
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def IsOpenStatusHistory(self):
        return self._IsOpenStatusHistory

    @IsOpenStatusHistory.setter
    def IsOpenStatusHistory(self, IsOpenStatusHistory):
        self._IsOpenStatusHistory = IsOpenStatusHistory

    @property
    def UsedLicenseCnt(self):
        return self._UsedLicenseCnt

    @UsedLicenseCnt.setter
    def UsedLicenseCnt(self, UsedLicenseCnt):
        self._UsedLicenseCnt = UsedLicenseCnt

    @property
    def NotExpiredLicenseCnt(self):
        return self._NotExpiredLicenseCnt

    @NotExpiredLicenseCnt.setter
    def NotExpiredLicenseCnt(self, NotExpiredLicenseCnt):
        self._NotExpiredLicenseCnt = NotExpiredLicenseCnt

    @property
    def FlagshipVersionLicenseCnt(self):
        return self._FlagshipVersionLicenseCnt

    @FlagshipVersionLicenseCnt.setter
    def FlagshipVersionLicenseCnt(self, FlagshipVersionLicenseCnt):
        self._FlagshipVersionLicenseCnt = FlagshipVersionLicenseCnt

    @property
    def ProVersionLicenseCnt(self):
        return self._ProVersionLicenseCnt

    @ProVersionLicenseCnt.setter
    def ProVersionLicenseCnt(self, ProVersionLicenseCnt):
        self._ProVersionLicenseCnt = ProVersionLicenseCnt

    @property
    def CwpVersionLicenseCnt(self):
        return self._CwpVersionLicenseCnt

    @CwpVersionLicenseCnt.setter
    def CwpVersionLicenseCnt(self, CwpVersionLicenseCnt):
        self._CwpVersionLicenseCnt = CwpVersionLicenseCnt

    @property
    def AvailableLHLicenseCnt(self):
        return self._AvailableLHLicenseCnt

    @AvailableLHLicenseCnt.setter
    def AvailableLHLicenseCnt(self, AvailableLHLicenseCnt):
        self._AvailableLHLicenseCnt = AvailableLHLicenseCnt

    @property
    def AutoRepurchaseSwitch(self):
        return self._AutoRepurchaseSwitch

    @AutoRepurchaseSwitch.setter
    def AutoRepurchaseSwitch(self, AutoRepurchaseSwitch):
        self._AutoRepurchaseSwitch = AutoRepurchaseSwitch

    @property
    def AutoRepurchaseRenewSwitch(self):
        return self._AutoRepurchaseRenewSwitch

    @AutoRepurchaseRenewSwitch.setter
    def AutoRepurchaseRenewSwitch(self, AutoRepurchaseRenewSwitch):
        self._AutoRepurchaseRenewSwitch = AutoRepurchaseRenewSwitch

    @property
    def DestroyOrderNum(self):
        return self._DestroyOrderNum

    @DestroyOrderNum.setter
    def DestroyOrderNum(self, DestroyOrderNum):
        self._DestroyOrderNum = DestroyOrderNum

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._LicenseCnt = params.get("LicenseCnt")
        self._AvailableLicenseCnt = params.get("AvailableLicenseCnt")
        self._AvailableProVersionLicenseCnt = params.get("AvailableProVersionLicenseCnt")
        self._AvailableFlagshipVersionLicenseCnt = params.get("AvailableFlagshipVersionLicenseCnt")
        self._NearExpiryLicenseCnt = params.get("NearExpiryLicenseCnt")
        self._ExpireLicenseCnt = params.get("ExpireLicenseCnt")
        self._AutoOpenStatus = params.get("AutoOpenStatus")
        self._ProtectType = params.get("ProtectType")
        self._IsOpenStatusHistory = params.get("IsOpenStatusHistory")
        self._UsedLicenseCnt = params.get("UsedLicenseCnt")
        self._NotExpiredLicenseCnt = params.get("NotExpiredLicenseCnt")
        self._FlagshipVersionLicenseCnt = params.get("FlagshipVersionLicenseCnt")
        self._ProVersionLicenseCnt = params.get("ProVersionLicenseCnt")
        self._CwpVersionLicenseCnt = params.get("CwpVersionLicenseCnt")
        self._AvailableLHLicenseCnt = params.get("AvailableLHLicenseCnt")
        self._AutoRepurchaseSwitch = params.get("AutoRepurchaseSwitch")
        self._AutoRepurchaseRenewSwitch = params.get("AutoRepurchaseRenewSwitch")
        self._DestroyOrderNum = params.get("DestroyOrderNum")
        self._RequestId = params.get("RequestId")


class DescribeLicenseListRequest(AbstractModel):
    """DescribeLicenseList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _Limit: 限制条数,默认10.
        :type Limit: int
        :param _Offset: 偏移量,默认0.
        :type Offset: int
        :param _Tags: 标签筛选,平台标签能力,这里传入 标签键,标签值作为一个对象
        :type Tags: list of Tags
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Tags = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tags()
                obj._deserialize(item)
                self._Tags.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLicenseListResponse(AbstractModel):
    """DescribeLicenseList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 授权数列表信息
        :type List: list of LicenseDetail
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = LicenseDetail()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLicenseRequest(AbstractModel):
    """DescribeLicense请求参数结构体

    """


class DescribeLicenseResponse(AbstractModel):
    """DescribeLicense返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeLicenseWhiteConfigRequest(AbstractModel):
    """DescribeLicenseWhiteConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleName: 规则名称,例如: cwp
        :type RuleName: str
        """
        self._RuleName = None

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName


    def _deserialize(self, params):
        self._RuleName = params.get("RuleName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLicenseWhiteConfigResponse(AbstractModel):
    """DescribeLicenseWhiteConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :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: str
        """
        self._FlagShip = None
        self._Professional = None
        self._PrattWhitney = None
        self._RequestId = None

    @property
    def FlagShip(self):
        return self._FlagShip

    @FlagShip.setter
    def FlagShip(self, FlagShip):
        self._FlagShip = FlagShip

    @property
    def Professional(self):
        return self._Professional

    @Professional.setter
    def Professional(self, Professional):
        self._Professional = Professional

    @property
    def PrattWhitney(self):
        return self._PrattWhitney

    @PrattWhitney.setter
    def PrattWhitney(self, PrattWhitney):
        self._PrattWhitney = PrattWhitney

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FlagShip") is not None:
            self._FlagShip = VersionWhiteConfig()
            self._FlagShip._deserialize(params.get("FlagShip"))
        if params.get("Professional") is not None:
            self._Professional = VersionWhiteConfig()
            self._Professional._deserialize(params.get("Professional"))
        if params.get("PrattWhitney") is not None:
            self._PrattWhitney = VersionWhiteConfig()
            self._PrattWhitney._deserialize(params.get("PrattWhitney"))
        self._RequestId = params.get("RequestId")


class DescribeLogDeliveryKafkaOptionsRequest(AbstractModel):
    """DescribeLogDeliveryKafkaOptions请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceID: kafka实例id
        :type InstanceID: str
        """
        self._InstanceID = None

    @property
    def InstanceID(self):
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID


    def _deserialize(self, params):
        self._InstanceID = params.get("InstanceID")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLogDeliveryKafkaOptionsResponse(AbstractModel):
    """DescribeLogDeliveryKafkaOptions返回参数结构体

    """

    def __init__(self):
        r"""
        :param _InstanceList: 实例列表
        :type InstanceList: list of CKafkaInstanceInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._InstanceList = None
        self._RequestId = None

    @property
    def InstanceList(self):
        return self._InstanceList

    @InstanceList.setter
    def InstanceList(self, InstanceList):
        self._InstanceList = InstanceList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("InstanceList") is not None:
            self._InstanceList = []
            for item in params.get("InstanceList"):
                obj = CKafkaInstanceInfo()
                obj._deserialize(item)
                self._InstanceList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLogExportsRequest(AbstractModel):
    """DescribeLogExports请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 分页的偏移量，默认值为0
        :type Offset: int
        :param _Limit: 分页单页限制数目，默认值为20，最大值100
        :type Limit: int
        """
        self._Offset = None
        self._Limit = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLogExportsResponse(AbstractModel):
    """DescribeLogExports返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数目
        :type TotalCount: int
        :param _Exports: 日志导出列表
        :type Exports: list of ExportInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._Exports = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Exports(self):
        return self._Exports

    @Exports.setter
    def Exports(self, Exports):
        self._Exports = Exports

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("Exports") is not None:
            self._Exports = []
            for item in params.get("Exports"):
                obj = ExportInfo()
                obj._deserialize(item)
                self._Exports.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLogHistogramRequest(AbstractModel):
    """DescribeLogHistogram请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StartTime: 要查询的日志的起始时间，Unix时间戳，单位ms
        :type StartTime: int
        :param _EndTime: 要查询的日志的结束时间，Unix时间戳，单位ms
        :type EndTime: int
        :param _QueryString: 查询语句
        :type QueryString: str
        :param _Interval: 时间间隔: 单位ms
        :type Interval: int
        """
        self._StartTime = None
        self._EndTime = None
        self._QueryString = None
        self._Interval = None

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def QueryString(self):
        return self._QueryString

    @QueryString.setter
    def QueryString(self, QueryString):
        self._QueryString = QueryString

    @property
    def Interval(self):
        return self._Interval

    @Interval.setter
    def Interval(self, Interval):
        self._Interval = Interval


    def _deserialize(self, params):
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._QueryString = params.get("QueryString")
        self._Interval = params.get("Interval")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLogHistogramResponse(AbstractModel):
    """DescribeLogHistogram返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 周期内统计结果详情
        :type Data: list of LogHistogram
        :param _Period: 统计周期： 单位ms
        :type Period: int
        :param _TotalCount: 命中关键字的日志总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._Period = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def Period(self):
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = []
            for item in params.get("Data"):
                obj = LogHistogram()
                obj._deserialize(item)
                self._Data.append(obj)
        self._Period = params.get("Period")
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeLogIndexRequest(AbstractModel):
    """DescribeLogIndex请求参数结构体

    """


class DescribeLogIndexResponse(AbstractModel):
    """DescribeLogIndex返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 是否生效
        :type Status: bool
        :param _Rule: 索引规则
        :type Rule: :class:`tencentcloud.cwp.v20180228.models.RuleInfo`
        :param _ModifyTime: 索引修改时间，初始值为索引创建时间
        :type ModifyTime: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._Rule = None
        self._ModifyTime = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        if params.get("Rule") is not None:
            self._Rule = RuleInfo()
            self._Rule._deserialize(params.get("Rule"))
        self._ModifyTime = params.get("ModifyTime")
        self._RequestId = params.get("RequestId")


class DescribeLogKafkaDeliverInfoRequest(AbstractModel):
    """DescribeLogKafkaDeliverInfo请求参数结构体

    """


class DescribeLogKafkaDeliverInfoResponse(AbstractModel):
    """DescribeLogKafkaDeliverInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _KafkaEnvName: 实例环境
        :type KafkaEnvName: str
        :param _KafkaId: 实例id
        :type KafkaId: str
        :param _Zone: 地域
        :type Zone: str
        :param _Az: 可用区
        :type Az: str
        :param _VpcId: 所属网络
        :type VpcId: str
        :param _SubnetId: 所在子网
        :type SubnetId: str
        :param _AccessType: 接入方式，1公网域名接入，2支撑环境接入
        :type AccessType: int
        :param _AccessAddr: 接入地址
        :type AccessAddr: str
        :param _DeliverStatus: 投递状态，1：健康，2：告警，3：异常
        :type DeliverStatus: int
        :param _InsVersion: kafka版本
        :type InsVersion: str
        :param _BandWidth: 峰值带宽
        :type BandWidth: int
        :param _DiskSize: 磁盘容量
        :type DiskSize: int
        :param _Username: 用户名
        :type Username: str
        :param _DeliverTypeDetails: xx
        :type DeliverTypeDetails: list of DeliverTypeDetails
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._KafkaEnvName = None
        self._KafkaId = None
        self._Zone = None
        self._Az = None
        self._VpcId = None
        self._SubnetId = None
        self._AccessType = None
        self._AccessAddr = None
        self._DeliverStatus = None
        self._InsVersion = None
        self._BandWidth = None
        self._DiskSize = None
        self._Username = None
        self._DeliverTypeDetails = None
        self._RequestId = None

    @property
    def KafkaEnvName(self):
        return self._KafkaEnvName

    @KafkaEnvName.setter
    def KafkaEnvName(self, KafkaEnvName):
        self._KafkaEnvName = KafkaEnvName

    @property
    def KafkaId(self):
        return self._KafkaId

    @KafkaId.setter
    def KafkaId(self, KafkaId):
        self._KafkaId = KafkaId

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Az(self):
        return self._Az

    @Az.setter
    def Az(self, Az):
        self._Az = Az

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def AccessType(self):
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType

    @property
    def AccessAddr(self):
        return self._AccessAddr

    @AccessAddr.setter
    def AccessAddr(self, AccessAddr):
        self._AccessAddr = AccessAddr

    @property
    def DeliverStatus(self):
        return self._DeliverStatus

    @DeliverStatus.setter
    def DeliverStatus(self, DeliverStatus):
        self._DeliverStatus = DeliverStatus

    @property
    def InsVersion(self):
        return self._InsVersion

    @InsVersion.setter
    def InsVersion(self, InsVersion):
        self._InsVersion = InsVersion

    @property
    def BandWidth(self):
        return self._BandWidth

    @BandWidth.setter
    def BandWidth(self, BandWidth):
        self._BandWidth = BandWidth

    @property
    def DiskSize(self):
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize

    @property
    def Username(self):
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def DeliverTypeDetails(self):
        return self._DeliverTypeDetails

    @DeliverTypeDetails.setter
    def DeliverTypeDetails(self, DeliverTypeDetails):
        self._DeliverTypeDetails = DeliverTypeDetails

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._KafkaEnvName = params.get("KafkaEnvName")
        self._KafkaId = params.get("KafkaId")
        self._Zone = params.get("Zone")
        self._Az = params.get("Az")
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._AccessType = params.get("AccessType")
        self._AccessAddr = params.get("AccessAddr")
        self._DeliverStatus = params.get("DeliverStatus")
        self._InsVersion = params.get("InsVersion")
        self._BandWidth = params.get("BandWidth")
        self._DiskSize = params.get("DiskSize")
        self._Username = params.get("Username")
        if params.get("DeliverTypeDetails") is not None:
            self._DeliverTypeDetails = []
            for item in params.get("DeliverTypeDetails"):
                obj = DeliverTypeDetails()
                obj._deserialize(item)
                self._DeliverTypeDetails.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLogStorageConfigRequest(AbstractModel):
    """DescribeLogStorageConfig请求参数结构体

    """


class DescribeLogStorageConfigResponse(AbstractModel):
    """DescribeLogStorageConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Type: 存储类型，string数组
注意：此字段可能返回 null，表示取不到有效值。
        :type Type: list of str
        :param _Period: 日志存储天数，3640表示不限
注意：此字段可能返回 null，表示取不到有效值。
        :type Period: int
        :param _PeriodModifyCount: 本月Period的修改次数
注意：此字段可能返回 null，表示取不到有效值。
        :type PeriodModifyCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Type = None
        self._Period = None
        self._PeriodModifyCount = None
        self._RequestId = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Period(self):
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period

    @property
    def PeriodModifyCount(self):
        return self._PeriodModifyCount

    @PeriodModifyCount.setter
    def PeriodModifyCount(self, PeriodModifyCount):
        self._PeriodModifyCount = PeriodModifyCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Period = params.get("Period")
        self._PeriodModifyCount = params.get("PeriodModifyCount")
        self._RequestId = params.get("RequestId")


class DescribeLogStorageRecordRequest(AbstractModel):
    """DescribeLogStorageRecord请求参数结构体

    """


class DescribeLogStorageRecordResponse(AbstractModel):
    """DescribeLogStorageRecord返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Records: 存储量记录
注意：此字段可能返回 null，表示取不到有效值。
        :type Records: list of LogStorageRecord
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Records = None
        self._RequestId = None

    @property
    def Records(self):
        return self._Records

    @Records.setter
    def Records(self, Records):
        self._Records = Records

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Records") is not None:
            self._Records = []
            for item in params.get("Records"):
                obj = LogStorageRecord()
                obj._deserialize(item)
                self._Records.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLogStorageStatisticRequest(AbstractModel):
    """DescribeLogStorageStatistic请求参数结构体

    """


class DescribeLogStorageStatisticResponse(AbstractModel):
    """DescribeLogStorageStatistic返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalSize: 总容量（单位：GB）
        :type TotalSize: int
        :param _UsedSize: 已使用容量（单位：GB）
        :type UsedSize: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalSize = None
        self._UsedSize = None
        self._RequestId = None

    @property
    def TotalSize(self):
        return self._TotalSize

    @TotalSize.setter
    def TotalSize(self, TotalSize):
        self._TotalSize = TotalSize

    @property
    def UsedSize(self):
        return self._UsedSize

    @UsedSize.setter
    def UsedSize(self, UsedSize):
        self._UsedSize = UsedSize

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalSize = params.get("TotalSize")
        self._UsedSize = params.get("UsedSize")
        self._RequestId = params.get("RequestId")


class DescribeLogTypeRequest(AbstractModel):
    """DescribeLogType请求参数结构体

    """


class DescribeLogTypeResponse(AbstractModel):
    """DescribeLogType返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: cls日志类型信息
        :type Data: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Data = params.get("Data")
        self._RequestId = params.get("RequestId")


class DescribeLoginWhiteCombinedListRequest(AbstractModel):
    """DescribeLoginWhiteCombinedList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>UserName - String - 是否必填：否 - 用户名筛选</li>
<li>ModifyBeginTime - String - 是否必填：否 - 按照修改时间段筛选，开始时间</li>
<li>ModifyEndTime - String - 是否必填：否 - 按照修改时间段筛选，结束时间</li>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLoginWhiteCombinedListResponse(AbstractModel):
    """DescribeLoginWhiteCombinedList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数量
        :type TotalCount: int
        :param _LoginWhiteCombinedInfos: 合并后的白名单列表
注意：此字段可能返回 null，表示取不到有效值。
        :type LoginWhiteCombinedInfos: list of LoginWhiteCombinedInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._LoginWhiteCombinedInfos = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def LoginWhiteCombinedInfos(self):
        return self._LoginWhiteCombinedInfos

    @LoginWhiteCombinedInfos.setter
    def LoginWhiteCombinedInfos(self, LoginWhiteCombinedInfos):
        self._LoginWhiteCombinedInfos = LoginWhiteCombinedInfos

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("LoginWhiteCombinedInfos") is not None:
            self._LoginWhiteCombinedInfos = []
            for item in params.get("LoginWhiteCombinedInfos"):
                obj = LoginWhiteCombinedInfo()
                obj._deserialize(item)
                self._LoginWhiteCombinedInfos.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLoginWhiteHostListRequest(AbstractModel):
    """DescribeLoginWhiteHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 白名单ID
        :type Id: int
        :param _Limit: 需要返回的数量，最大值为1000
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件 <li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
        :type Filters: list of AssetFilters
        """
        self._Id = None
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLoginWhiteHostListResponse(AbstractModel):
    """DescribeLoginWhiteHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _Hosts: 服务器列表
        :type Hosts: list of HostDesc
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._Hosts = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Hosts(self):
        return self._Hosts

    @Hosts.setter
    def Hosts(self, Hosts):
        self._Hosts = Hosts

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("Hosts") is not None:
            self._Hosts = []
            for item in params.get("Hosts"):
                obj = HostDesc()
                obj._deserialize(item)
                self._Hosts.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeLoginWhiteListRequest(AbstractModel):
    """DescribeLoginWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>IpOrAlias - String - 是否必填：否 - 查询关键字 </li>
<li>UserName - String - 是否必填：否 - 用户名筛选 </li>
<li>ModifyBeginTime - String - 是否必填：否 - 按照修改时间段筛选，开始时间 </li>
<li>ModifyEndTime - String - 是否必填：否 - 按照修改时间段筛选，结束时间 </li>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeLoginWhiteListResponse(AbstractModel):
    """DescribeLoginWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 记录总数
        :type TotalCount: int
        :param _LoginWhiteLists: 异地登录白名单数组
        :type LoginWhiteLists: list of LoginWhiteLists
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._LoginWhiteLists = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def LoginWhiteLists(self):
        return self._LoginWhiteLists

    @LoginWhiteLists.setter
    def LoginWhiteLists(self, LoginWhiteLists):
        self._LoginWhiteLists = LoginWhiteLists

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("LoginWhiteLists") is not None:
            self._LoginWhiteLists = []
            for item in params.get("LoginWhiteLists"):
                obj = LoginWhiteLists()
                obj._deserialize(item)
                self._LoginWhiteLists.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMachineClearHistoryRequest(AbstractModel):
    """DescribeMachineClearHistory请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 筛选条件
多个条件筛选时 Keywords,TimeBetween,取交集
<li> Keywords 实例名称/内网/公网IP</li>
<li> TimeBetween 时间区间</li>
        :type Filters: list of Filters
        :param _Limit: 限制条数,默认10 ,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 正序, ASC , 倒序 DESC , 默认ASC
        :type Order: str
        :param _By: AgentLastOfflineTime 客户端最后离线时间
AutoClearTime 清理时间
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachineClearHistoryResponse(AbstractModel):
    """DescribeMachineClearHistory返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 列表数据
        :type List: list of MachineClearHistory
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = MachineClearHistory()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMachineDefenseCntRequest(AbstractModel):
    """DescribeMachineDefenseCnt请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Uuids- String - 是否必填：否 - 主机uuid</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachineDefenseCntResponse(AbstractModel):
    """DescribeMachineDefenseCnt返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AttackLogs: 攻击检测统计
        :type AttackLogs: int
        :param _FileTamper: 核心文件监控统计
        :type FileTamper: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AttackLogs = None
        self._FileTamper = None
        self._RequestId = None

    @property
    def AttackLogs(self):
        return self._AttackLogs

    @AttackLogs.setter
    def AttackLogs(self, AttackLogs):
        self._AttackLogs = AttackLogs

    @property
    def FileTamper(self):
        return self._FileTamper

    @FileTamper.setter
    def FileTamper(self, FileTamper):
        self._FileTamper = FileTamper

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AttackLogs = params.get("AttackLogs")
        self._FileTamper = params.get("FileTamper")
        self._RequestId = params.get("RequestId")


class DescribeMachineFileTamperRulesRequest(AbstractModel):
    """DescribeMachineFileTamperRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        """
        self._Uuid = None
        self._Offset = None
        self._Limit = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachineFileTamperRulesResponse(AbstractModel):
    """DescribeMachineFileTamperRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 查询主机相关核心文件监控规则详情
        :type List: list of MachineFileTamperRule
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = MachineFileTamperRule()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMachineGeneralRequest(AbstractModel):
    """DescribeMachineGeneral请求参数结构体

    """


class DescribeMachineGeneralResponse(AbstractModel):
    """DescribeMachineGeneral返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineCnt: 资产总数
        :type MachineCnt: int
        :param _TencentCloudMachineCnt: 腾讯云服务商机器数
        :type TencentCloudMachineCnt: int
        :param _AliCloudMachineCnt: 阿里云服务商机器数
        :type AliCloudMachineCnt: int
        :param _BaiduCloudMachineCnt: 百度云服务商机器数
        :type BaiduCloudMachineCnt: int
        :param _IDCMachineCnt: IDC机器数
        :type IDCMachineCnt: int
        :param _OtherCloudMachineCnt: 其他云服务商机器数
        :type OtherCloudMachineCnt: int
        :param _ProtectMachineCnt: 已防护机器数
        :type ProtectMachineCnt: int
        :param _BaseMachineCnt: 已防护基础版机器数
        :type BaseMachineCnt: int
        :param _SpecialtyMachineCnt: 已防护专业版机器数
        :type SpecialtyMachineCnt: int
        :param _FlagshipMachineCnt: 已防护旗舰版机器数
        :type FlagshipMachineCnt: int
        :param _RiskMachineCnt: 存在风险的机器数
        :type RiskMachineCnt: int
        :param _CompareYesterdayRiskMachineCnt: 比较昨日风险机器数
        :type CompareYesterdayRiskMachineCnt: int
        :param _CompareYesterdayNotProtectMachineCnt: 比较昨日未防护机器数
        :type CompareYesterdayNotProtectMachineCnt: int
        :param _CompareYesterdayDeadlineMachineCnt: 比较昨日即将到期的机器数
        :type CompareYesterdayDeadlineMachineCnt: int
        :param _DeadlineMachineCnt: 即将到期的机器数
        :type DeadlineMachineCnt: int
        :param _NotProtectMachineCnt: 未防护机器数
        :type NotProtectMachineCnt: int
        :param _LHGeneralDiscountCnt: 已防护普惠版机器数（Lighthouse机器）
        :type LHGeneralDiscountCnt: int
        :param _CompareYesterdayMachineCnt: 比较昨日新增的主机数
        :type CompareYesterdayMachineCnt: int
        :param _MachineDestroyAfterOfflineHours: 自动清理时间,最大720小时,最小0, 默认0 ,0=关闭
        :type MachineDestroyAfterOfflineHours: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MachineCnt = None
        self._TencentCloudMachineCnt = None
        self._AliCloudMachineCnt = None
        self._BaiduCloudMachineCnt = None
        self._IDCMachineCnt = None
        self._OtherCloudMachineCnt = None
        self._ProtectMachineCnt = None
        self._BaseMachineCnt = None
        self._SpecialtyMachineCnt = None
        self._FlagshipMachineCnt = None
        self._RiskMachineCnt = None
        self._CompareYesterdayRiskMachineCnt = None
        self._CompareYesterdayNotProtectMachineCnt = None
        self._CompareYesterdayDeadlineMachineCnt = None
        self._DeadlineMachineCnt = None
        self._NotProtectMachineCnt = None
        self._LHGeneralDiscountCnt = None
        self._CompareYesterdayMachineCnt = None
        self._MachineDestroyAfterOfflineHours = None
        self._RequestId = None

    @property
    def MachineCnt(self):
        return self._MachineCnt

    @MachineCnt.setter
    def MachineCnt(self, MachineCnt):
        self._MachineCnt = MachineCnt

    @property
    def TencentCloudMachineCnt(self):
        return self._TencentCloudMachineCnt

    @TencentCloudMachineCnt.setter
    def TencentCloudMachineCnt(self, TencentCloudMachineCnt):
        self._TencentCloudMachineCnt = TencentCloudMachineCnt

    @property
    def AliCloudMachineCnt(self):
        return self._AliCloudMachineCnt

    @AliCloudMachineCnt.setter
    def AliCloudMachineCnt(self, AliCloudMachineCnt):
        self._AliCloudMachineCnt = AliCloudMachineCnt

    @property
    def BaiduCloudMachineCnt(self):
        return self._BaiduCloudMachineCnt

    @BaiduCloudMachineCnt.setter
    def BaiduCloudMachineCnt(self, BaiduCloudMachineCnt):
        self._BaiduCloudMachineCnt = BaiduCloudMachineCnt

    @property
    def IDCMachineCnt(self):
        return self._IDCMachineCnt

    @IDCMachineCnt.setter
    def IDCMachineCnt(self, IDCMachineCnt):
        self._IDCMachineCnt = IDCMachineCnt

    @property
    def OtherCloudMachineCnt(self):
        return self._OtherCloudMachineCnt

    @OtherCloudMachineCnt.setter
    def OtherCloudMachineCnt(self, OtherCloudMachineCnt):
        self._OtherCloudMachineCnt = OtherCloudMachineCnt

    @property
    def ProtectMachineCnt(self):
        return self._ProtectMachineCnt

    @ProtectMachineCnt.setter
    def ProtectMachineCnt(self, ProtectMachineCnt):
        self._ProtectMachineCnt = ProtectMachineCnt

    @property
    def BaseMachineCnt(self):
        return self._BaseMachineCnt

    @BaseMachineCnt.setter
    def BaseMachineCnt(self, BaseMachineCnt):
        self._BaseMachineCnt = BaseMachineCnt

    @property
    def SpecialtyMachineCnt(self):
        return self._SpecialtyMachineCnt

    @SpecialtyMachineCnt.setter
    def SpecialtyMachineCnt(self, SpecialtyMachineCnt):
        self._SpecialtyMachineCnt = SpecialtyMachineCnt

    @property
    def FlagshipMachineCnt(self):
        return self._FlagshipMachineCnt

    @FlagshipMachineCnt.setter
    def FlagshipMachineCnt(self, FlagshipMachineCnt):
        self._FlagshipMachineCnt = FlagshipMachineCnt

    @property
    def RiskMachineCnt(self):
        return self._RiskMachineCnt

    @RiskMachineCnt.setter
    def RiskMachineCnt(self, RiskMachineCnt):
        self._RiskMachineCnt = RiskMachineCnt

    @property
    def CompareYesterdayRiskMachineCnt(self):
        return self._CompareYesterdayRiskMachineCnt

    @CompareYesterdayRiskMachineCnt.setter
    def CompareYesterdayRiskMachineCnt(self, CompareYesterdayRiskMachineCnt):
        self._CompareYesterdayRiskMachineCnt = CompareYesterdayRiskMachineCnt

    @property
    def CompareYesterdayNotProtectMachineCnt(self):
        return self._CompareYesterdayNotProtectMachineCnt

    @CompareYesterdayNotProtectMachineCnt.setter
    def CompareYesterdayNotProtectMachineCnt(self, CompareYesterdayNotProtectMachineCnt):
        self._CompareYesterdayNotProtectMachineCnt = CompareYesterdayNotProtectMachineCnt

    @property
    def CompareYesterdayDeadlineMachineCnt(self):
        return self._CompareYesterdayDeadlineMachineCnt

    @CompareYesterdayDeadlineMachineCnt.setter
    def CompareYesterdayDeadlineMachineCnt(self, CompareYesterdayDeadlineMachineCnt):
        self._CompareYesterdayDeadlineMachineCnt = CompareYesterdayDeadlineMachineCnt

    @property
    def DeadlineMachineCnt(self):
        return self._DeadlineMachineCnt

    @DeadlineMachineCnt.setter
    def DeadlineMachineCnt(self, DeadlineMachineCnt):
        self._DeadlineMachineCnt = DeadlineMachineCnt

    @property
    def NotProtectMachineCnt(self):
        return self._NotProtectMachineCnt

    @NotProtectMachineCnt.setter
    def NotProtectMachineCnt(self, NotProtectMachineCnt):
        self._NotProtectMachineCnt = NotProtectMachineCnt

    @property
    def LHGeneralDiscountCnt(self):
        return self._LHGeneralDiscountCnt

    @LHGeneralDiscountCnt.setter
    def LHGeneralDiscountCnt(self, LHGeneralDiscountCnt):
        self._LHGeneralDiscountCnt = LHGeneralDiscountCnt

    @property
    def CompareYesterdayMachineCnt(self):
        return self._CompareYesterdayMachineCnt

    @CompareYesterdayMachineCnt.setter
    def CompareYesterdayMachineCnt(self, CompareYesterdayMachineCnt):
        self._CompareYesterdayMachineCnt = CompareYesterdayMachineCnt

    @property
    def MachineDestroyAfterOfflineHours(self):
        return self._MachineDestroyAfterOfflineHours

    @MachineDestroyAfterOfflineHours.setter
    def MachineDestroyAfterOfflineHours(self, MachineDestroyAfterOfflineHours):
        self._MachineDestroyAfterOfflineHours = MachineDestroyAfterOfflineHours

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MachineCnt = params.get("MachineCnt")
        self._TencentCloudMachineCnt = params.get("TencentCloudMachineCnt")
        self._AliCloudMachineCnt = params.get("AliCloudMachineCnt")
        self._BaiduCloudMachineCnt = params.get("BaiduCloudMachineCnt")
        self._IDCMachineCnt = params.get("IDCMachineCnt")
        self._OtherCloudMachineCnt = params.get("OtherCloudMachineCnt")
        self._ProtectMachineCnt = params.get("ProtectMachineCnt")
        self._BaseMachineCnt = params.get("BaseMachineCnt")
        self._SpecialtyMachineCnt = params.get("SpecialtyMachineCnt")
        self._FlagshipMachineCnt = params.get("FlagshipMachineCnt")
        self._RiskMachineCnt = params.get("RiskMachineCnt")
        self._CompareYesterdayRiskMachineCnt = params.get("CompareYesterdayRiskMachineCnt")
        self._CompareYesterdayNotProtectMachineCnt = params.get("CompareYesterdayNotProtectMachineCnt")
        self._CompareYesterdayDeadlineMachineCnt = params.get("CompareYesterdayDeadlineMachineCnt")
        self._DeadlineMachineCnt = params.get("DeadlineMachineCnt")
        self._NotProtectMachineCnt = params.get("NotProtectMachineCnt")
        self._LHGeneralDiscountCnt = params.get("LHGeneralDiscountCnt")
        self._CompareYesterdayMachineCnt = params.get("CompareYesterdayMachineCnt")
        self._MachineDestroyAfterOfflineHours = params.get("MachineDestroyAfterOfflineHours")
        self._RequestId = params.get("RequestId")


class DescribeMachineInfoRequest(AbstractModel):
    """DescribeMachineInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机安全客户端唯一Uuid。
        :type Uuid: str
        :param _Quuid: Quuid , Uuid 必填一项
        :type Quuid: str
        """
        self._Uuid = None
        self._Quuid = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachineInfoResponse(AbstractModel):
    """DescribeMachineInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineIp: 机器ip。
        :type MachineIp: str
        :param _ProtectDays: 受主机安全保护天数。
        :type ProtectDays: int
        :param _MachineOs: 操作系统。
        :type MachineOs: str
        :param _MachineName: 主机名称。
        :type MachineName: str
        :param _MachineStatus: 在线状态。
<li>ONLINE： 在线</li>
<li>OFFLINE：离线</li>
        :type MachineStatus: str
        :param _InstanceId: CVM或BM主机唯一标识。
        :type InstanceId: str
        :param _MachineWanIp: 主机外网IP。
        :type MachineWanIp: str
        :param _Quuid: CVM或BM主机唯一Uuid。
        :type Quuid: str
        :param _Uuid: 主机安全客户端唯一Uuid。
        :type Uuid: str
        :param _IsProVersion: 是否开通专业版。
<li>true：是</li>
<li>false：否</li>
        :type IsProVersion: bool
        :param _ProVersionOpenDate: 专业版开通时间。
        :type ProVersionOpenDate: str
        :param _MachineType: 云服务器类型。
<li>CVM: 腾讯云服务器</li>
<li>BM: 黑石物理机</li>
<li>ECM: 边缘计算服务器</li>
<li>LH: 轻量应用服务器</li>
<li>Other: 混合云机器</li>
        :type MachineType: str
        :param _MachineRegion: 机器所属地域。如：ap-guangzhou，ap-shanghai
        :type MachineRegion: str
        :param _PayMode: 主机状态。
<li>POSTPAY: 表示后付费，即按量计费  </li>
<li>PREPAY: 表示预付费，即包年包月</li>
        :type PayMode: str
        :param _FreeMalwaresLeft: 免费木马剩余检测数量。
        :type FreeMalwaresLeft: int
        :param _FreeVulsLeft: 免费漏洞剩余检测数量。
        :type FreeVulsLeft: int
        :param _AgentVersion: agent版本号
        :type AgentVersion: str
        :param _ProVersionDeadline: 专业版到期时间(仅预付费)
        :type ProVersionDeadline: str
        :param _HasAssetScan: 是否有资产扫描记录，0无，1有
        :type HasAssetScan: int
        :param _ProtectType: 防护版本：BASIC_VERSION 基础版，PRO_VERSION 专业版，Flagship 旗舰版，GENERAL_DISCOUNT 普惠版
        :type ProtectType: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MachineIp = None
        self._ProtectDays = None
        self._MachineOs = None
        self._MachineName = None
        self._MachineStatus = None
        self._InstanceId = None
        self._MachineWanIp = None
        self._Quuid = None
        self._Uuid = None
        self._IsProVersion = None
        self._ProVersionOpenDate = None
        self._MachineType = None
        self._MachineRegion = None
        self._PayMode = None
        self._FreeMalwaresLeft = None
        self._FreeVulsLeft = None
        self._AgentVersion = None
        self._ProVersionDeadline = None
        self._HasAssetScan = None
        self._ProtectType = None
        self._RequestId = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def ProtectDays(self):
        return self._ProtectDays

    @ProtectDays.setter
    def ProtectDays(self, ProtectDays):
        self._ProtectDays = ProtectDays

    @property
    def MachineOs(self):
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def IsProVersion(self):
        return self._IsProVersion

    @IsProVersion.setter
    def IsProVersion(self, IsProVersion):
        self._IsProVersion = IsProVersion

    @property
    def ProVersionOpenDate(self):
        return self._ProVersionOpenDate

    @ProVersionOpenDate.setter
    def ProVersionOpenDate(self, ProVersionOpenDate):
        self._ProVersionOpenDate = ProVersionOpenDate

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def PayMode(self):
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def FreeMalwaresLeft(self):
        return self._FreeMalwaresLeft

    @FreeMalwaresLeft.setter
    def FreeMalwaresLeft(self, FreeMalwaresLeft):
        self._FreeMalwaresLeft = FreeMalwaresLeft

    @property
    def FreeVulsLeft(self):
        return self._FreeVulsLeft

    @FreeVulsLeft.setter
    def FreeVulsLeft(self, FreeVulsLeft):
        self._FreeVulsLeft = FreeVulsLeft

    @property
    def AgentVersion(self):
        return self._AgentVersion

    @AgentVersion.setter
    def AgentVersion(self, AgentVersion):
        self._AgentVersion = AgentVersion

    @property
    def ProVersionDeadline(self):
        return self._ProVersionDeadline

    @ProVersionDeadline.setter
    def ProVersionDeadline(self, ProVersionDeadline):
        self._ProVersionDeadline = ProVersionDeadline

    @property
    def HasAssetScan(self):
        return self._HasAssetScan

    @HasAssetScan.setter
    def HasAssetScan(self, HasAssetScan):
        self._HasAssetScan = HasAssetScan

    @property
    def ProtectType(self):
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._ProtectDays = params.get("ProtectDays")
        self._MachineOs = params.get("MachineOs")
        self._MachineName = params.get("MachineName")
        self._MachineStatus = params.get("MachineStatus")
        self._InstanceId = params.get("InstanceId")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._IsProVersion = params.get("IsProVersion")
        self._ProVersionOpenDate = params.get("ProVersionOpenDate")
        self._MachineType = params.get("MachineType")
        self._MachineRegion = params.get("MachineRegion")
        self._PayMode = params.get("PayMode")
        self._FreeMalwaresLeft = params.get("FreeMalwaresLeft")
        self._FreeVulsLeft = params.get("FreeVulsLeft")
        self._AgentVersion = params.get("AgentVersion")
        self._ProVersionDeadline = params.get("ProVersionDeadline")
        self._HasAssetScan = params.get("HasAssetScan")
        self._ProtectType = params.get("ProtectType")
        self._RequestId = params.get("RequestId")


class DescribeMachineLicenseDetailRequest(AbstractModel):
    """DescribeMachineLicenseDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuids: 主机quuid
        :type Quuids: list of str
        """
        self._Quuids = None

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachineLicenseDetailResponse(AbstractModel):
    """DescribeMachineLicenseDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineLicense: 授权信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineLicense: list of MachineLicenseDetail
        :param _TotalCount: 总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MachineLicense = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def MachineLicense(self):
        return self._MachineLicense

    @MachineLicense.setter
    def MachineLicense(self, MachineLicense):
        self._MachineLicense = MachineLicense

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("MachineLicense") is not None:
            self._MachineLicense = []
            for item in params.get("MachineLicense"):
                obj = MachineLicenseDetail()
                obj._deserialize(item)
                self._MachineLicense.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeMachineListRequest(AbstractModel):
    """DescribeMachineList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineType: 云主机类型。
<li>CVM：表示虚拟主机</li>
<li>BM:  表示黑石物理机</li>
<li>ECM:  表示边缘计算服务器</li>
<li>LH:  表示轻量应用服务器</li>
<li>Other:  表示混合云机器</li>
        :type MachineType: str
        :param _MachineRegion: 机器所属地域。如：ap-guangzhou，ap-shanghai
        :type MachineRegion: str
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 查询关键字 </li>
<li>Status - String - 是否必填：否 - 客户端在线状态（OFFLINE: 离线 | ONLINE: 在线 | UNINSTALLED：未安装）</li>
<li>Version - String  是否必填：否 - 当前防护版本（ PRO_VERSION：专业版 | BASIC_VERSION：基础版）</li>
每个过滤条件只支持一个值，暂不支持多个值“或”关系查询
        :type Filters: list of AssetFilters
        """
        self._MachineType = None
        self._MachineRegion = None
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._MachineType = params.get("MachineType")
        self._MachineRegion = params.get("MachineRegion")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachineListResponse(AbstractModel):
    """DescribeMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Machines: 主机列表
        :type Machines: list of Machine
        :param _TotalCount: 主机数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Machines = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Machines(self):
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Machines") is not None:
            self._Machines = []
            for item in params.get("Machines"):
                obj = Machine()
                obj._deserialize(item)
                self._Machines.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeMachineOsListRequest(AbstractModel):
    """DescribeMachineOsList请求参数结构体

    """


class DescribeMachineOsListResponse(AbstractModel):
    """DescribeMachineOsList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 操作系统列表
        :type List: list of OsName
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = OsName()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMachineRegionListRequest(AbstractModel):
    """DescribeMachineRegionList请求参数结构体

    """


class DescribeMachineRegionListResponse(AbstractModel):
    """DescribeMachineRegionList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RegionList: 云服务器类型地域列表
        :type RegionList: list of RegionListDetail
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RegionList = None
        self._RequestId = None

    @property
    def RegionList(self):
        return self._RegionList

    @RegionList.setter
    def RegionList(self, RegionList):
        self._RegionList = RegionList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RegionList") is not None:
            self._RegionList = []
            for item in params.get("RegionList"):
                obj = RegionListDetail()
                obj._deserialize(item)
                self._RegionList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMachineRegionsRequest(AbstractModel):
    """DescribeMachineRegions请求参数结构体

    """


class DescribeMachineRegionsResponse(AbstractModel):
    """DescribeMachineRegions返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CVM: CVM 云服务器地域列表
        :type CVM: list of RegionInfo
        :param _BM: BM 黑石机器地域列表
        :type BM: list of RegionInfo
        :param _LH: LH 轻量应用服务器地域列表
        :type LH: list of RegionInfo
        :param _ECM: ECM 边缘计算服务器地域列表
        :type ECM: list of RegionInfo
        :param _Other: Other 混合云地域列表
        :type Other: list of RegionInfo
        :param _ALL: 所有地域列表(包含以上所有地域)
        :type ALL: list of RegionInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CVM = None
        self._BM = None
        self._LH = None
        self._ECM = None
        self._Other = None
        self._ALL = None
        self._RequestId = None

    @property
    def CVM(self):
        return self._CVM

    @CVM.setter
    def CVM(self, CVM):
        self._CVM = CVM

    @property
    def BM(self):
        return self._BM

    @BM.setter
    def BM(self, BM):
        self._BM = BM

    @property
    def LH(self):
        return self._LH

    @LH.setter
    def LH(self, LH):
        self._LH = LH

    @property
    def ECM(self):
        return self._ECM

    @ECM.setter
    def ECM(self, ECM):
        self._ECM = ECM

    @property
    def Other(self):
        return self._Other

    @Other.setter
    def Other(self, Other):
        self._Other = Other

    @property
    def ALL(self):
        return self._ALL

    @ALL.setter
    def ALL(self, ALL):
        self._ALL = ALL

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("CVM") is not None:
            self._CVM = []
            for item in params.get("CVM"):
                obj = RegionInfo()
                obj._deserialize(item)
                self._CVM.append(obj)
        if params.get("BM") is not None:
            self._BM = []
            for item in params.get("BM"):
                obj = RegionInfo()
                obj._deserialize(item)
                self._BM.append(obj)
        if params.get("LH") is not None:
            self._LH = []
            for item in params.get("LH"):
                obj = RegionInfo()
                obj._deserialize(item)
                self._LH.append(obj)
        if params.get("ECM") is not None:
            self._ECM = []
            for item in params.get("ECM"):
                obj = RegionInfo()
                obj._deserialize(item)
                self._ECM.append(obj)
        if params.get("Other") is not None:
            self._Other = []
            for item in params.get("Other"):
                obj = RegionInfo()
                obj._deserialize(item)
                self._Other.append(obj)
        if params.get("ALL") is not None:
            self._ALL = []
            for item in params.get("ALL"):
                obj = RegionInfo()
                obj._deserialize(item)
                self._ALL.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMachineRiskCntRequest(AbstractModel):
    """DescribeMachineRiskCnt请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Uuids- String - 是否必填：否 - 主机uuid</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachineRiskCntResponse(AbstractModel):
    """DescribeMachineRiskCnt返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HostLogin: 异地登录
        :type HostLogin: int
        :param _BruteAttack: 密码破解
        :type BruteAttack: int
        :param _MaliciousRequest: 恶意请求
        :type MaliciousRequest: int
        :param _ReverseShell: 反弹shell
        :type ReverseShell: int
        :param _Bash: 高危命令
        :type Bash: int
        :param _PrivilegeEscalation: 本地提权
        :type PrivilegeEscalation: int
        :param _Malware: 木马
        :type Malware: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostLogin = None
        self._BruteAttack = None
        self._MaliciousRequest = None
        self._ReverseShell = None
        self._Bash = None
        self._PrivilegeEscalation = None
        self._Malware = None
        self._RequestId = None

    @property
    def HostLogin(self):
        return self._HostLogin

    @HostLogin.setter
    def HostLogin(self, HostLogin):
        self._HostLogin = HostLogin

    @property
    def BruteAttack(self):
        return self._BruteAttack

    @BruteAttack.setter
    def BruteAttack(self, BruteAttack):
        self._BruteAttack = BruteAttack

    @property
    def MaliciousRequest(self):
        return self._MaliciousRequest

    @MaliciousRequest.setter
    def MaliciousRequest(self, MaliciousRequest):
        self._MaliciousRequest = MaliciousRequest

    @property
    def ReverseShell(self):
        return self._ReverseShell

    @ReverseShell.setter
    def ReverseShell(self, ReverseShell):
        self._ReverseShell = ReverseShell

    @property
    def Bash(self):
        return self._Bash

    @Bash.setter
    def Bash(self, Bash):
        self._Bash = Bash

    @property
    def PrivilegeEscalation(self):
        return self._PrivilegeEscalation

    @PrivilegeEscalation.setter
    def PrivilegeEscalation(self, PrivilegeEscalation):
        self._PrivilegeEscalation = PrivilegeEscalation

    @property
    def Malware(self):
        return self._Malware

    @Malware.setter
    def Malware(self, Malware):
        self._Malware = Malware

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._HostLogin = params.get("HostLogin")
        self._BruteAttack = params.get("BruteAttack")
        self._MaliciousRequest = params.get("MaliciousRequest")
        self._ReverseShell = params.get("ReverseShell")
        self._Bash = params.get("Bash")
        self._PrivilegeEscalation = params.get("PrivilegeEscalation")
        self._Malware = params.get("Malware")
        self._RequestId = params.get("RequestId")


class DescribeMachineSnapshotRequest(AbstractModel):
    """DescribeMachineSnapshot请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuids: cvm id 集合
        :type Quuids: list of str
        :param _Type: 查询快照类型0 最近一个 1所有
        :type Type: int
        :param _Limit: 分页个数
        :type Limit: int
        :param _Offset: 分页步长
        :type Offset: int
        """
        self._Quuids = None
        self._Type = None
        self._Limit = None
        self._Offset = None

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._Quuids = params.get("Quuids")
        self._Type = params.get("Type")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachineSnapshotResponse(AbstractModel):
    """DescribeMachineSnapshot返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机快照列表
        :type List: list of MachineSnapshotInfo
        :param _TotalCount: 总个数
        :type TotalCount: int
        :param _SnapshotCheck: 是否都有24小时内创建的快照
        :type SnapshotCheck: bool
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._SnapshotCheck = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def SnapshotCheck(self):
        return self._SnapshotCheck

    @SnapshotCheck.setter
    def SnapshotCheck(self, SnapshotCheck):
        self._SnapshotCheck = SnapshotCheck

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = MachineSnapshotInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._SnapshotCheck = params.get("SnapshotCheck")
        self._RequestId = params.get("RequestId")


class DescribeMachinesRequest(AbstractModel):
    """DescribeMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineType: 机器所属专区类型 
CVM 云服务器
BM 黑石
ECM 边缘计算
LH 轻量应用服务器
Other 混合云专区
        :type MachineType: str
        :param _MachineRegion: 机器所属地域。如：ap-guangzhou，ap-shanghai
        :type MachineRegion: str
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        :param _ProjectIds: 机器所属业务ID列表
        :type ProjectIds: list of int non-negative
        """
        self._MachineType = None
        self._MachineRegion = None
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._ProjectIds = None

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ProjectIds(self):
        return self._ProjectIds

    @ProjectIds.setter
    def ProjectIds(self, ProjectIds):
        self._ProjectIds = ProjectIds


    def _deserialize(self, params):
        self._MachineType = params.get("MachineType")
        self._MachineRegion = params.get("MachineRegion")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ProjectIds = params.get("ProjectIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachinesResponse(AbstractModel):
    """DescribeMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Machines: 主机列表
        :type Machines: list of Machine
        :param _TotalCount: 主机数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Machines = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Machines(self):
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Machines") is not None:
            self._Machines = []
            for item in params.get("Machines"):
                obj = Machine()
                obj._deserialize(item)
                self._Machines.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeMachinesSimpleRequest(AbstractModel):
    """DescribeMachinesSimple请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineType: 机器所属专区类型 
CVM 云服务器
BM 黑石
ECM 边缘计算
LH 轻量应用服务器
Other 混合云专区
        :type MachineType: str
        :param _MachineRegion: 机器所属地域。如：ap-guangzhou，ap-shanghai
        :type MachineRegion: str
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        :param _ProjectIds: 机器所属业务ID列表
        :type ProjectIds: list of int non-negative
        """
        self._MachineType = None
        self._MachineRegion = None
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._ProjectIds = None

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ProjectIds(self):
        return self._ProjectIds

    @ProjectIds.setter
    def ProjectIds(self, ProjectIds):
        self._ProjectIds = ProjectIds


    def _deserialize(self, params):
        self._MachineType = params.get("MachineType")
        self._MachineRegion = params.get("MachineRegion")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ProjectIds = params.get("ProjectIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMachinesSimpleResponse(AbstractModel):
    """DescribeMachinesSimple返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Machines: 主机列表
        :type Machines: list of MachineSimple
        :param _TotalCount: 主机数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Machines = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def Machines(self):
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Machines") is not None:
            self._Machines = []
            for item in params.get("Machines"):
                obj = MachineSimple()
                obj._deserialize(item)
                self._Machines.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeMalWareListRequest(AbstractModel):
    """DescribeMalWareList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        :param _By: 检测排序 CreateTime
        :type By: str
        :param _Order: 排序方式 ASC,DESC
        :type Order: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._By = None
        self._Order = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._By = params.get("By")
        self._Order = params.get("Order")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMalWareListResponse(AbstractModel):
    """DescribeMalWareList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MalWareList: 木马列表
注意：此字段可能返回 null，表示取不到有效值。
        :type MalWareList: list of MalWareList
        :param _TotalCount: 总数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MalWareList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def MalWareList(self):
        return self._MalWareList

    @MalWareList.setter
    def MalWareList(self, MalWareList):
        self._MalWareList = MalWareList

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("MalWareList") is not None:
            self._MalWareList = []
            for item in params.get("MalWareList"):
                obj = MalWareList()
                obj._deserialize(item)
                self._MalWareList.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeMaliciousRequestWhiteListRequest(AbstractModel):
    """DescribeMaliciousRequestWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。

<li>Domain  - String - 基线名称</li>
        :type Filters: list of Filters
        :param _Order: 排序方式 [asc:升序|desc:降序]
        :type Order: str
        :param _By: 排序字段
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMaliciousRequestWhiteListResponse(AbstractModel):
    """DescribeMaliciousRequestWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 白名单信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of MaliciousRequestWhiteListInfo
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = MaliciousRequestWhiteListInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeMalwareFileRequest(AbstractModel):
    """DescribeMalwareFile请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 木马记录ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMalwareFileResponse(AbstractModel):
    """DescribeMalwareFile返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileUrl: 木马文件下载地址
        :type FileUrl: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileUrl = None
        self._RequestId = None

    @property
    def FileUrl(self):
        return self._FileUrl

    @FileUrl.setter
    def FileUrl(self, FileUrl):
        self._FileUrl = FileUrl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FileUrl = params.get("FileUrl")
        self._RequestId = params.get("RequestId")


class DescribeMalwareInfoRequest(AbstractModel):
    """DescribeMalwareInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMalwareInfoResponse(AbstractModel):
    """DescribeMalwareInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MalwareInfo: 恶意文件详情信息
        :type MalwareInfo: :class:`tencentcloud.cwp.v20180228.models.MalwareInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MalwareInfo = None
        self._RequestId = None

    @property
    def MalwareInfo(self):
        return self._MalwareInfo

    @MalwareInfo.setter
    def MalwareInfo(self, MalwareInfo):
        self._MalwareInfo = MalwareInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("MalwareInfo") is not None:
            self._MalwareInfo = MalwareInfo()
            self._MalwareInfo._deserialize(params.get("MalwareInfo"))
        self._RequestId = params.get("RequestId")


class DescribeMalwareRiskOverviewRequest(AbstractModel):
    """DescribeMalwareRiskOverview请求参数结构体

    """


class DescribeMalwareRiskOverviewResponse(AbstractModel):
    """DescribeMalwareRiskOverview返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 无
        :type Data: :class:`tencentcloud.cwp.v20180228.models.MalwareRiskOverview`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = MalwareRiskOverview()
            self._Data._deserialize(params.get("Data"))
        self._RequestId = params.get("RequestId")


class DescribeMalwareRiskWarningRequest(AbstractModel):
    """DescribeMalwareRiskWarning请求参数结构体

    """


class DescribeMalwareRiskWarningResponse(AbstractModel):
    """DescribeMalwareRiskWarning返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsCheckRisk: 是否开启自动扫描：true-开启，false-未开启
        :type IsCheckRisk: bool
        :param _List: 风险文件列表信息
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of MalwareRisk
        :param _IsPop: 是否弹出提示 true 弹出, false不弹
        :type IsPop: bool
        :param _ProcessList: 异常进程列表信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ProcessList: list of MalwareRisk
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsCheckRisk = None
        self._List = None
        self._IsPop = None
        self._ProcessList = None
        self._RequestId = None

    @property
    def IsCheckRisk(self):
        return self._IsCheckRisk

    @IsCheckRisk.setter
    def IsCheckRisk(self, IsCheckRisk):
        self._IsCheckRisk = IsCheckRisk

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def IsPop(self):
        return self._IsPop

    @IsPop.setter
    def IsPop(self, IsPop):
        self._IsPop = IsPop

    @property
    def ProcessList(self):
        return self._ProcessList

    @ProcessList.setter
    def ProcessList(self, ProcessList):
        self._ProcessList = ProcessList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._IsCheckRisk = params.get("IsCheckRisk")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = MalwareRisk()
                obj._deserialize(item)
                self._List.append(obj)
        self._IsPop = params.get("IsPop")
        if params.get("ProcessList") is not None:
            self._ProcessList = []
            for item in params.get("ProcessList"):
                obj = MalwareRisk()
                obj._deserialize(item)
                self._ProcessList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMalwareTimingScanSettingRequest(AbstractModel):
    """DescribeMalwareTimingScanSetting请求参数结构体

    """


class DescribeMalwareTimingScanSettingResponse(AbstractModel):
    """DescribeMalwareTimingScanSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CheckPattern: 检测模式 0 全盘检测  1快速检测
        :type CheckPattern: int
        :param _StartTime: 检测周期 开始时间
        :type StartTime: str
        :param _EndTime: 检测周期 超时结束时间
        :type EndTime: str
        :param _IsGlobal: 是否全部服务器 1 全部 2 自选
        :type IsGlobal: int
        :param _QuuidList: 自选服务器时必须 主机quuid的string数组
注意：此字段可能返回 null，表示取不到有效值。
        :type QuuidList: list of str
        :param _MonitoringPattern: 监控模式 0 标准 1深度
        :type MonitoringPattern: int
        :param _Cycle: 周期 1每天
        :type Cycle: int
        :param _EnableScan: 定时检测开关 0 关闭1 开启
        :type EnableScan: int
        :param _Id: 唯一ID
        :type Id: int
        :param _RealTimeMonitoring: 实时监控0 关闭 1开启
        :type RealTimeMonitoring: int
        :param _AutoIsolation: 是否自动隔离：1-是，0-否
        :type AutoIsolation: int
        :param _ClickTimeout: 一键扫描超时时长，如：1800秒（s）
        :type ClickTimeout: int
        :param _KillProcess: 是否杀掉进程 1杀掉 0不杀掉 只有开启自动隔离才生效
        :type KillProcess: int
        :param _EngineType: 1标准模式（只报严重、高危）、2增强模式（报严重、高危、中危）、3严格模式（报严重、高、中、低、提示）
        :type EngineType: int
        :param _EnableInspiredEngine: 启发引擎 0 关闭 1开启
        :type EnableInspiredEngine: int
        :param _EnableMemShellScan: 是否开启恶意进程查杀[0:未开启,1:开启]
        :type EnableMemShellScan: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CheckPattern = None
        self._StartTime = None
        self._EndTime = None
        self._IsGlobal = None
        self._QuuidList = None
        self._MonitoringPattern = None
        self._Cycle = None
        self._EnableScan = None
        self._Id = None
        self._RealTimeMonitoring = None
        self._AutoIsolation = None
        self._ClickTimeout = None
        self._KillProcess = None
        self._EngineType = None
        self._EnableInspiredEngine = None
        self._EnableMemShellScan = None
        self._RequestId = None

    @property
    def CheckPattern(self):
        return self._CheckPattern

    @CheckPattern.setter
    def CheckPattern(self, CheckPattern):
        self._CheckPattern = CheckPattern

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def MonitoringPattern(self):
        return self._MonitoringPattern

    @MonitoringPattern.setter
    def MonitoringPattern(self, MonitoringPattern):
        self._MonitoringPattern = MonitoringPattern

    @property
    def Cycle(self):
        return self._Cycle

    @Cycle.setter
    def Cycle(self, Cycle):
        self._Cycle = Cycle

    @property
    def EnableScan(self):
        return self._EnableScan

    @EnableScan.setter
    def EnableScan(self, EnableScan):
        self._EnableScan = EnableScan

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def RealTimeMonitoring(self):
        return self._RealTimeMonitoring

    @RealTimeMonitoring.setter
    def RealTimeMonitoring(self, RealTimeMonitoring):
        self._RealTimeMonitoring = RealTimeMonitoring

    @property
    def AutoIsolation(self):
        return self._AutoIsolation

    @AutoIsolation.setter
    def AutoIsolation(self, AutoIsolation):
        self._AutoIsolation = AutoIsolation

    @property
    def ClickTimeout(self):
        return self._ClickTimeout

    @ClickTimeout.setter
    def ClickTimeout(self, ClickTimeout):
        self._ClickTimeout = ClickTimeout

    @property
    def KillProcess(self):
        return self._KillProcess

    @KillProcess.setter
    def KillProcess(self, KillProcess):
        self._KillProcess = KillProcess

    @property
    def EngineType(self):
        return self._EngineType

    @EngineType.setter
    def EngineType(self, EngineType):
        self._EngineType = EngineType

    @property
    def EnableInspiredEngine(self):
        return self._EnableInspiredEngine

    @EnableInspiredEngine.setter
    def EnableInspiredEngine(self, EnableInspiredEngine):
        self._EnableInspiredEngine = EnableInspiredEngine

    @property
    def EnableMemShellScan(self):
        return self._EnableMemShellScan

    @EnableMemShellScan.setter
    def EnableMemShellScan(self, EnableMemShellScan):
        self._EnableMemShellScan = EnableMemShellScan

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._CheckPattern = params.get("CheckPattern")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._IsGlobal = params.get("IsGlobal")
        self._QuuidList = params.get("QuuidList")
        self._MonitoringPattern = params.get("MonitoringPattern")
        self._Cycle = params.get("Cycle")
        self._EnableScan = params.get("EnableScan")
        self._Id = params.get("Id")
        self._RealTimeMonitoring = params.get("RealTimeMonitoring")
        self._AutoIsolation = params.get("AutoIsolation")
        self._ClickTimeout = params.get("ClickTimeout")
        self._KillProcess = params.get("KillProcess")
        self._EngineType = params.get("EngineType")
        self._EnableInspiredEngine = params.get("EnableInspiredEngine")
        self._EnableMemShellScan = params.get("EnableMemShellScan")
        self._RequestId = params.get("RequestId")


class DescribeMalwareWhiteListAffectListRequest(AbstractModel):
    """DescribeMalwareWhiteListAffectList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _WhiteListId: 白名单规则id
        :type WhiteListId: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :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: list of Filter
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [CreateTime]
        :type By: str
        """
        self._WhiteListId = None
        self._Offset = None
        self._Limit = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def WhiteListId(self):
        return self._WhiteListId

    @WhiteListId.setter
    def WhiteListId(self, WhiteListId):
        self._WhiteListId = WhiteListId

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._WhiteListId = params.get("WhiteListId")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMalwareWhiteListAffectListResponse(AbstractModel):
    """DescribeMalwareWhiteListAffectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总记录数
        :type TotalCount: int
        :param _AffectList: 白名单规则影响事件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type AffectList: list of MalwareWhiteListAffectEvent
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._AffectList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def AffectList(self):
        return self._AffectList

    @AffectList.setter
    def AffectList(self, AffectList):
        self._AffectList = AffectList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("AffectList") is not None:
            self._AffectList = []
            for item in params.get("AffectList"):
                obj = MalwareWhiteListAffectEvent()
                obj._deserialize(item)
                self._AffectList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMalwareWhiteListRequest(AbstractModel):
    """DescribeMalwareWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :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: list of Filter
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [EventsCount]
        :type By: str
        """
        self._Offset = None
        self._Limit = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMalwareWhiteListResponse(AbstractModel):
    """DescribeMalwareWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总记录数
        :type TotalCount: int
        :param _WhiteList: 白名单列表
        :type WhiteList: list of MalwareWhiteListInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._WhiteList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def WhiteList(self):
        return self._WhiteList

    @WhiteList.setter
    def WhiteList(self, WhiteList):
        self._WhiteList = WhiteList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("WhiteList") is not None:
            self._WhiteList = []
            for item in params.get("WhiteList"):
                obj = MalwareWhiteListInfo()
                obj._deserialize(item)
                self._WhiteList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeMonthInspectionReportRequest(AbstractModel):
    """DescribeMonthInspectionReport请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页大小
        :type Limit: int
        :param _Offset: 分页步长
        :type Offset: int
        """
        self._Limit = None
        self._Offset = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeMonthInspectionReportResponse(AbstractModel):
    """DescribeMonthInspectionReport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 巡检报告列表
        :type List: list of MonthInspectionReport
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = MonthInspectionReport()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeNetAttackSettingRequest(AbstractModel):
    """DescribeNetAttackSetting请求参数结构体

    """


class DescribeNetAttackSettingResponse(AbstractModel):
    """DescribeNetAttackSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackEnable: 0 关闭网络攻击检测，1开启网络攻击检测
        :type NetAttackEnable: int
        :param _NetAttackAlarmStatus: 0 新增告警事件默认待处理，1新增告警事件默认已处理，3新增告警事件默认忽略
        :type NetAttackAlarmStatus: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NetAttackEnable = None
        self._NetAttackAlarmStatus = None
        self._RequestId = None

    @property
    def NetAttackEnable(self):
        return self._NetAttackEnable

    @NetAttackEnable.setter
    def NetAttackEnable(self, NetAttackEnable):
        self._NetAttackEnable = NetAttackEnable

    @property
    def NetAttackAlarmStatus(self):
        return self._NetAttackAlarmStatus

    @NetAttackAlarmStatus.setter
    def NetAttackAlarmStatus(self, NetAttackAlarmStatus):
        self._NetAttackAlarmStatus = NetAttackAlarmStatus

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._NetAttackEnable = params.get("NetAttackEnable")
        self._NetAttackAlarmStatus = params.get("NetAttackAlarmStatus")
        self._RequestId = params.get("RequestId")


class DescribeNetAttackWhiteListRequest(AbstractModel):
    """DescribeNetAttackWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Filters: 过滤条件。
<li>IP - String - 是否必填：否 - 主机ip查询 </li>
<li>SrcIP- String - 是否必填：否 - 白名单ip查询 </li>
        :type Filters: list of Filter
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [CreateTime]
        :type By: str
        """
        self._Offset = None
        self._Limit = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeNetAttackWhiteListResponse(AbstractModel):
    """DescribeNetAttackWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总记录数
        :type TotalCount: int
        :param _WhiteList: 白名单列表
        :type WhiteList: list of NetAttackWhiteRule
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._WhiteList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def WhiteList(self):
        return self._WhiteList

    @WhiteList.setter
    def WhiteList(self, WhiteList):
        self._WhiteList = WhiteList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("WhiteList") is not None:
            self._WhiteList = []
            for item in params.get("WhiteList"):
                obj = NetAttackWhiteRule()
                obj._deserialize(item)
                self._WhiteList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeOpenPortStatisticsRequest(AbstractModel):
    """DescribeOpenPortStatistics请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Port - Uint64 - 是否必填：否 - 端口号</li>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeOpenPortStatisticsResponse(AbstractModel):
    """DescribeOpenPortStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 端口统计列表总数
        :type TotalCount: int
        :param _OpenPortStatistics: 端口统计数据列表
        :type OpenPortStatistics: list of OpenPortStatistics
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._OpenPortStatistics = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def OpenPortStatistics(self):
        return self._OpenPortStatistics

    @OpenPortStatistics.setter
    def OpenPortStatistics(self, OpenPortStatistics):
        self._OpenPortStatistics = OpenPortStatistics

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("OpenPortStatistics") is not None:
            self._OpenPortStatistics = []
            for item in params.get("OpenPortStatistics"):
                obj = OpenPortStatistics()
                obj._deserialize(item)
                self._OpenPortStatistics.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeOverviewStatisticsRequest(AbstractModel):
    """DescribeOverviewStatistics请求参数结构体

    """


class DescribeOverviewStatisticsResponse(AbstractModel):
    """DescribeOverviewStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _OnlineMachineNum: 服务器在线数。
        :type OnlineMachineNum: int
        :param _ProVersionMachineNum: 专业服务器数。
        :type ProVersionMachineNum: int
        :param _MalwareNum: 木马文件数。
        :type MalwareNum: int
        :param _NonlocalLoginNum: 异地登录数。
        :type NonlocalLoginNum: int
        :param _BruteAttackSuccessNum: 暴力破解成功数。
        :type BruteAttackSuccessNum: int
        :param _VulNum: 漏洞数。
        :type VulNum: int
        :param _BaseLineNum: 安全基线数。
        :type BaseLineNum: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._OnlineMachineNum = None
        self._ProVersionMachineNum = None
        self._MalwareNum = None
        self._NonlocalLoginNum = None
        self._BruteAttackSuccessNum = None
        self._VulNum = None
        self._BaseLineNum = None
        self._RequestId = None

    @property
    def OnlineMachineNum(self):
        return self._OnlineMachineNum

    @OnlineMachineNum.setter
    def OnlineMachineNum(self, OnlineMachineNum):
        self._OnlineMachineNum = OnlineMachineNum

    @property
    def ProVersionMachineNum(self):
        return self._ProVersionMachineNum

    @ProVersionMachineNum.setter
    def ProVersionMachineNum(self, ProVersionMachineNum):
        self._ProVersionMachineNum = ProVersionMachineNum

    @property
    def MalwareNum(self):
        return self._MalwareNum

    @MalwareNum.setter
    def MalwareNum(self, MalwareNum):
        self._MalwareNum = MalwareNum

    @property
    def NonlocalLoginNum(self):
        return self._NonlocalLoginNum

    @NonlocalLoginNum.setter
    def NonlocalLoginNum(self, NonlocalLoginNum):
        self._NonlocalLoginNum = NonlocalLoginNum

    @property
    def BruteAttackSuccessNum(self):
        return self._BruteAttackSuccessNum

    @BruteAttackSuccessNum.setter
    def BruteAttackSuccessNum(self, BruteAttackSuccessNum):
        self._BruteAttackSuccessNum = BruteAttackSuccessNum

    @property
    def VulNum(self):
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def BaseLineNum(self):
        return self._BaseLineNum

    @BaseLineNum.setter
    def BaseLineNum(self, BaseLineNum):
        self._BaseLineNum = BaseLineNum

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._OnlineMachineNum = params.get("OnlineMachineNum")
        self._ProVersionMachineNum = params.get("ProVersionMachineNum")
        self._MalwareNum = params.get("MalwareNum")
        self._NonlocalLoginNum = params.get("NonlocalLoginNum")
        self._BruteAttackSuccessNum = params.get("BruteAttackSuccessNum")
        self._VulNum = params.get("VulNum")
        self._BaseLineNum = params.get("BaseLineNum")
        self._RequestId = params.get("RequestId")


class DescribePrivilegeEventInfoRequest(AbstractModel):
    """DescribePrivilegeEventInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribePrivilegeEventInfoResponse(AbstractModel):
    """DescribePrivilegeEventInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PrivilegeEventInfo: 本地提权详情
注意：此字段可能返回 null，表示取不到有效值。
        :type PrivilegeEventInfo: :class:`tencentcloud.cwp.v20180228.models.PrivilegeEventInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._PrivilegeEventInfo = None
        self._RequestId = None

    @property
    def PrivilegeEventInfo(self):
        return self._PrivilegeEventInfo

    @PrivilegeEventInfo.setter
    def PrivilegeEventInfo(self, PrivilegeEventInfo):
        self._PrivilegeEventInfo = PrivilegeEventInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("PrivilegeEventInfo") is not None:
            self._PrivilegeEventInfo = PrivilegeEventInfo()
            self._PrivilegeEventInfo._deserialize(params.get("PrivilegeEventInfo"))
        self._RequestId = params.get("RequestId")


class DescribePrivilegeEventsRequest(AbstractModel):
    """DescribePrivilegeEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 关键词(主机IP)</li>
        :type Filters: list of Filter
        :param _Order: 排序方式：根据请求次数排序：asc-升序/desc-降序
        :type Order: str
        :param _By: 排序字段：CreateTime-发现时间
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribePrivilegeEventsResponse(AbstractModel):
    """DescribePrivilegeEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 数据列表
        :type List: list of PrivilegeEscalationProcess
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = PrivilegeEscalationProcess()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribePrivilegeRulesRequest(AbstractModel):
    """DescribePrivilegeRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(进程名称)</li>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribePrivilegeRulesResponse(AbstractModel):
    """DescribePrivilegeRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of PrivilegeRule
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = PrivilegeRule()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeProVersionInfoRequest(AbstractModel):
    """DescribeProVersionInfo请求参数结构体

    """


class DescribeProVersionInfoResponse(AbstractModel):
    """DescribeProVersionInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _PostPayCost: 后付费昨日扣费
        :type PostPayCost: int
        :param _IsAutoOpenProVersion: 新增主机是否自动开通专业版
        :type IsAutoOpenProVersion: bool
        :param _ProVersionNum: 开通专业版主机数
        :type ProVersionNum: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._PostPayCost = None
        self._IsAutoOpenProVersion = None
        self._ProVersionNum = None
        self._RequestId = None

    @property
    def PostPayCost(self):
        return self._PostPayCost

    @PostPayCost.setter
    def PostPayCost(self, PostPayCost):
        self._PostPayCost = PostPayCost

    @property
    def IsAutoOpenProVersion(self):
        return self._IsAutoOpenProVersion

    @IsAutoOpenProVersion.setter
    def IsAutoOpenProVersion(self, IsAutoOpenProVersion):
        self._IsAutoOpenProVersion = IsAutoOpenProVersion

    @property
    def ProVersionNum(self):
        return self._ProVersionNum

    @ProVersionNum.setter
    def ProVersionNum(self, ProVersionNum):
        self._ProVersionNum = ProVersionNum

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._PostPayCost = params.get("PostPayCost")
        self._IsAutoOpenProVersion = params.get("IsAutoOpenProVersion")
        self._ProVersionNum = params.get("ProVersionNum")
        self._RequestId = params.get("RequestId")


class DescribeProVersionStatusRequest(AbstractModel):
    """DescribeProVersionStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机安全客户端UUID、填写"all"表示所有主机。
        :type Uuid: str
        """
        self._Uuid = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeProVersionStatusResponse(AbstractModel):
    """DescribeProVersionStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeProcessStatisticsRequest(AbstractModel):
    """DescribeProcessStatistics请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>ProcessName - String - 是否必填：否 - 进程名</li>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeProcessStatisticsResponse(AbstractModel):
    """DescribeProcessStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 进程统计列表记录总数。
        :type TotalCount: int
        :param _ProcessStatistics: 进程统计列表数据数组。
        :type ProcessStatistics: list of ProcessStatistics
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._ProcessStatistics = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ProcessStatistics(self):
        return self._ProcessStatistics

    @ProcessStatistics.setter
    def ProcessStatistics(self, ProcessStatistics):
        self._ProcessStatistics = ProcessStatistics

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("ProcessStatistics") is not None:
            self._ProcessStatistics = []
            for item in params.get("ProcessStatistics"):
                obj = ProcessStatistics()
                obj._deserialize(item)
                self._ProcessStatistics.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeProductStatusRequest(AbstractModel):
    """DescribeProductStatus请求参数结构体

    """


class DescribeProductStatusResponse(AbstractModel):
    """DescribeProductStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ReturnCode: 接口调用返回状态码
        :type ReturnCode: int
        :param _ReturnMsg: 接口调用返回信息
        :type ReturnMsg: str
        :param _Data: 防护状态及试用信息
        :type Data: :class:`tencentcloud.cwp.v20180228.models.ProductStatusInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ReturnCode = None
        self._ReturnMsg = None
        self._Data = None
        self._RequestId = None

    @property
    def ReturnCode(self):
        return self._ReturnCode

    @ReturnCode.setter
    def ReturnCode(self, ReturnCode):
        self._ReturnCode = ReturnCode

    @property
    def ReturnMsg(self):
        return self._ReturnMsg

    @ReturnMsg.setter
    def ReturnMsg(self, ReturnMsg):
        self._ReturnMsg = ReturnMsg

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ReturnCode = params.get("ReturnCode")
        self._ReturnMsg = params.get("ReturnMsg")
        if params.get("Data") is not None:
            self._Data = ProductStatusInfo()
            self._Data._deserialize(params.get("Data"))
        self._RequestId = params.get("RequestId")


class DescribeProtectDirListRequest(AbstractModel):
    """DescribeProtectDirList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页条数 最大100条
        :type Limit: int
        :param _Offset: 偏移量
        :type Offset: int
        :param _Filters: DirName 网站名称
DirPath 网站防护目录地址
        :type Filters: list of AssetFilters
        :param _Order: asc：升序/desc：降序
        :type Order: str
        :param _By: 排序字段
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeProtectDirListResponse(AbstractModel):
    """DescribeProtectDirList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 防护目录列表信息
        :type List: list of ProtectDirInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ProtectDirInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeProtectDirRelatedServerRequest(AbstractModel):
    """DescribeProtectDirRelatedServer请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID
        :type Id: str
        :param _Limit: 分页条数 最大100条
        :type Limit: int
        :param _Offset: 偏移量
        :type Offset: int
        :param _Filters: 过滤参数 ProtectStatus
        :type Filters: list of Filter
        :param _Order: 排序方式
        :type Order: str
        :param _By: 排序值
        :type By: str
        """
        self._Id = None
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeProtectDirRelatedServerResponse(AbstractModel):
    """DescribeProtectDirRelatedServer返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 网站关联服务器列表信息
        :type List: list of ProtectDirRelatedServer
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _ProtectServerCount: 已开启防护总数
        :type ProtectServerCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._ProtectServerCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ProtectServerCount(self):
        return self._ProtectServerCount

    @ProtectServerCount.setter
    def ProtectServerCount(self, ProtectServerCount):
        self._ProtectServerCount = ProtectServerCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ProtectDirRelatedServer()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._ProtectServerCount = params.get("ProtectServerCount")
        self._RequestId = params.get("RequestId")


class DescribeProtectNetListRequest(AbstractModel):
    """DescribeProtectNetList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Keyword- String - 是否必填：否 - 关键词过滤，</li>
<li>Uuids - String - 是否必填：否 - 主机id过滤</li>
        :type Filters: list of Filters
        :param _Limit: 需要返回的数量，最大值为100
        :type Limit: int
        :param _Offset: 排序步长
        :type Offset: int
        :param _Order: 排序方法
        :type Order: str
        :param _By: 排序字段 StartTime，EndTime
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeProtectNetListResponse(AbstractModel):
    """DescribeProtectNetList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _List: 安全管家数据
        :type List: list of ProtectNetInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ProtectNetInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribePublicProxyInstallCommandRequest(AbstractModel):
    """DescribePublicProxyInstallCommand请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ip: nginx主机ip列表，逗号分隔
        :type Ip: str
        """
        self._Ip = None

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip


    def _deserialize(self, params):
        self._Ip = params.get("Ip")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribePublicProxyInstallCommandResponse(AbstractModel):
    """DescribePublicProxyInstallCommand返回参数结构体

    """

    def __init__(self):
        r"""
        :param _NginxCommand: Nginx安装命令
        :type NginxCommand: str
        :param _KeepAliveCommand: Keepalived安装命令
注意：此字段可能返回 null，表示取不到有效值。
        :type KeepAliveCommand: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._NginxCommand = None
        self._KeepAliveCommand = None
        self._RequestId = None

    @property
    def NginxCommand(self):
        return self._NginxCommand

    @NginxCommand.setter
    def NginxCommand(self, NginxCommand):
        self._NginxCommand = NginxCommand

    @property
    def KeepAliveCommand(self):
        return self._KeepAliveCommand

    @KeepAliveCommand.setter
    def KeepAliveCommand(self, KeepAliveCommand):
        self._KeepAliveCommand = KeepAliveCommand

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._NginxCommand = params.get("NginxCommand")
        self._KeepAliveCommand = params.get("KeepAliveCommand")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseBackupListRequest(AbstractModel):
    """DescribeRansomDefenseBackupList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Filters: 过滤条件。
<li>Status - Int - 是否必填：否 - 通过勒索状态查询：0未勒索，1已勒索 </li>
<li>CreateTimeBegin - string - 是否必填：否 - 创建时间开始 </li>
<li>CreateTimeEnd - string - 是否必填：否 - 创建时间结束 </li>
        :type Filters: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRansomDefenseBackupListResponse(AbstractModel):
    """DescribeRansomDefenseBackupList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 备份列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RansomDefenseBackup
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RansomDefenseBackup()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseEventsListRequest(AbstractModel):
    """DescribeRansomDefenseEventsList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _Filters: 过滤条件。
<li>HostName- string- 主机名称</li>
<li>Status - Uint64 - 0待处理，1已处理，2已信任</li>
<li>HostIp- String - 主机ip</li>
        :type Filters: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRansomDefenseEventsListResponse(AbstractModel):
    """DescribeRansomDefenseEventsList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 事件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RansomDefenseEvent
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RansomDefenseEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseMachineListRequest(AbstractModel):
    """DescribeRansomDefenseMachineList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :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: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime、LastBackupTime、BackupCount
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRansomDefenseMachineListResponse(AbstractModel):
    """DescribeRansomDefenseMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RansomDefenseStrategyMachineBackupInfo
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RansomDefenseStrategyMachineBackupInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseMachineStrategyInfoRequest(AbstractModel):
    """DescribeRansomDefenseMachineStrategyInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuids: 主机Quuid列表
        :type Quuids: list of str
        """
        self._Quuids = None

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRansomDefenseMachineStrategyInfoResponse(AbstractModel):
    """DescribeRansomDefenseMachineStrategyInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyIds: 策略ID列表,0表示未绑定任何策略
        :type StrategyIds: list of int non-negative
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._StrategyIds = None
        self._RequestId = None

    @property
    def StrategyIds(self):
        return self._StrategyIds

    @StrategyIds.setter
    def StrategyIds(self, StrategyIds):
        self._StrategyIds = StrategyIds

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._StrategyIds = params.get("StrategyIds")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseRollBackTaskListRequest(AbstractModel):
    """DescribeRansomDefenseRollBackTaskList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Ips- string- 主机名称</li>
<li>Status - Uint64 - 0进行中，1成功，2失败</li>
<li>Names- String - 主机名称</li>
        :type Filters: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime、ModifyTime
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRansomDefenseRollBackTaskListResponse(AbstractModel):
    """DescribeRansomDefenseRollBackTaskList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 任务列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RansomDefenseRollbackTask
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RansomDefenseRollbackTask()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseStateRequest(AbstractModel):
    """DescribeRansomDefenseState请求参数结构体

    """


class DescribeRansomDefenseStateResponse(AbstractModel):
    """DescribeRansomDefenseState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyCount: 已开启防御策略数量
        :type StrategyCount: int
        :param _MachineCount: 已开启防御机器数
        :type MachineCount: int
        :param _SnapshotSize: 快照总容量
        :type SnapshotSize: int
        :param _RollBackTaskCount: 恢复备份任务数量
        :type RollBackTaskCount: int
        :param _ProgressingSnapshotTaskCount: 进行中的创建快照任务数
        :type ProgressingSnapshotTaskCount: int
        :param _ProgressingRollBackTaskCount: 进行中的恢复备份任务数
        :type ProgressingRollBackTaskCount: int
        :param _MachineTotal: 机器总数
        :type MachineTotal: int
        :param _StrategyTotal: 策略总数
        :type StrategyTotal: int
        :param _BalanceStatus: 账户状态：0未欠费，1已欠费
        :type BalanceStatus: int
        :param _BackupMachineCount: 已备份主机数
        :type BackupMachineCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._StrategyCount = None
        self._MachineCount = None
        self._SnapshotSize = None
        self._RollBackTaskCount = None
        self._ProgressingSnapshotTaskCount = None
        self._ProgressingRollBackTaskCount = None
        self._MachineTotal = None
        self._StrategyTotal = None
        self._BalanceStatus = None
        self._BackupMachineCount = None
        self._RequestId = None

    @property
    def StrategyCount(self):
        return self._StrategyCount

    @StrategyCount.setter
    def StrategyCount(self, StrategyCount):
        self._StrategyCount = StrategyCount

    @property
    def MachineCount(self):
        return self._MachineCount

    @MachineCount.setter
    def MachineCount(self, MachineCount):
        self._MachineCount = MachineCount

    @property
    def SnapshotSize(self):
        return self._SnapshotSize

    @SnapshotSize.setter
    def SnapshotSize(self, SnapshotSize):
        self._SnapshotSize = SnapshotSize

    @property
    def RollBackTaskCount(self):
        return self._RollBackTaskCount

    @RollBackTaskCount.setter
    def RollBackTaskCount(self, RollBackTaskCount):
        self._RollBackTaskCount = RollBackTaskCount

    @property
    def ProgressingSnapshotTaskCount(self):
        return self._ProgressingSnapshotTaskCount

    @ProgressingSnapshotTaskCount.setter
    def ProgressingSnapshotTaskCount(self, ProgressingSnapshotTaskCount):
        self._ProgressingSnapshotTaskCount = ProgressingSnapshotTaskCount

    @property
    def ProgressingRollBackTaskCount(self):
        return self._ProgressingRollBackTaskCount

    @ProgressingRollBackTaskCount.setter
    def ProgressingRollBackTaskCount(self, ProgressingRollBackTaskCount):
        self._ProgressingRollBackTaskCount = ProgressingRollBackTaskCount

    @property
    def MachineTotal(self):
        return self._MachineTotal

    @MachineTotal.setter
    def MachineTotal(self, MachineTotal):
        self._MachineTotal = MachineTotal

    @property
    def StrategyTotal(self):
        return self._StrategyTotal

    @StrategyTotal.setter
    def StrategyTotal(self, StrategyTotal):
        self._StrategyTotal = StrategyTotal

    @property
    def BalanceStatus(self):
        return self._BalanceStatus

    @BalanceStatus.setter
    def BalanceStatus(self, BalanceStatus):
        self._BalanceStatus = BalanceStatus

    @property
    def BackupMachineCount(self):
        return self._BackupMachineCount

    @BackupMachineCount.setter
    def BackupMachineCount(self, BackupMachineCount):
        self._BackupMachineCount = BackupMachineCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._StrategyCount = params.get("StrategyCount")
        self._MachineCount = params.get("MachineCount")
        self._SnapshotSize = params.get("SnapshotSize")
        self._RollBackTaskCount = params.get("RollBackTaskCount")
        self._ProgressingSnapshotTaskCount = params.get("ProgressingSnapshotTaskCount")
        self._ProgressingRollBackTaskCount = params.get("ProgressingRollBackTaskCount")
        self._MachineTotal = params.get("MachineTotal")
        self._StrategyTotal = params.get("StrategyTotal")
        self._BalanceStatus = params.get("BalanceStatus")
        self._BackupMachineCount = params.get("BackupMachineCount")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseStrategyDetailRequest(AbstractModel):
    """DescribeRansomDefenseStrategyDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 策略ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRansomDefenseStrategyDetailResponse(AbstractModel):
    """DescribeRansomDefenseStrategyDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Strategy: 策略详情
注意：此字段可能返回 null，表示取不到有效值。
        :type Strategy: :class:`tencentcloud.cwp.v20180228.models.RansomDefenseStrategyDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Strategy = None
        self._RequestId = None

    @property
    def Strategy(self):
        return self._Strategy

    @Strategy.setter
    def Strategy(self, Strategy):
        self._Strategy = Strategy

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Strategy") is not None:
            self._Strategy = RansomDefenseStrategyDetail()
            self._Strategy._deserialize(params.get("Strategy"))
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseStrategyListRequest(AbstractModel):
    """DescribeRansomDefenseStrategyList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :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: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime, MachineCount
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRansomDefenseStrategyListResponse(AbstractModel):
    """DescribeRansomDefenseStrategyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 策略列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RansomDefenseStrategy
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RansomDefenseStrategy()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseStrategyMachinesRequest(AbstractModel):
    """DescribeRansomDefenseStrategyMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页参数 最大100条
        :type Limit: int
        :param _Offset: 分页参数
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Ips- string- 主机名称</li>
<li>Status - Uint64 - 0未绑定，1已绑定</li>
<li>Names- String - 主机名称</li>
        :type Filters: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime
        :type By: str
        :param _Id: 防勒索策略ID
        :type Id: int
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None
        self._Id = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRansomDefenseStrategyMachinesResponse(AbstractModel):
    """DescribeRansomDefenseStrategyMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RansomDefenseStrategyMachineDetail
        :param _TotalCount: 分页查询记录总数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RansomDefenseStrategyMachineDetail()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRansomDefenseTrendRequest(AbstractModel):
    """DescribeRansomDefenseTrend请求参数结构体

    """


class DescribeRansomDefenseTrendResponse(AbstractModel):
    """DescribeRansomDefenseTrend返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EventCount: 勒索事件数量
        :type EventCount: int
        :param _IndustryCount: 影响行业数量
        :type IndustryCount: int
        :param _CompanyCount: 开通勒索的公司数量
        :type CompanyCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EventCount = None
        self._IndustryCount = None
        self._CompanyCount = None
        self._RequestId = None

    @property
    def EventCount(self):
        return self._EventCount

    @EventCount.setter
    def EventCount(self, EventCount):
        self._EventCount = EventCount

    @property
    def IndustryCount(self):
        return self._IndustryCount

    @IndustryCount.setter
    def IndustryCount(self, IndustryCount):
        self._IndustryCount = IndustryCount

    @property
    def CompanyCount(self):
        return self._CompanyCount

    @CompanyCount.setter
    def CompanyCount(self, CompanyCount):
        self._CompanyCount = CompanyCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._EventCount = params.get("EventCount")
        self._IndustryCount = params.get("IndustryCount")
        self._CompanyCount = params.get("CompanyCount")
        self._RequestId = params.get("RequestId")


class DescribeRecommendedProtectCpuRequest(AbstractModel):
    """DescribeRecommendedProtectCpu请求参数结构体

    """


class DescribeRecommendedProtectCpuResponse(AbstractModel):
    """DescribeRecommendedProtectCpu返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeReverseShellEventInfoRequest(AbstractModel):
    """DescribeReverseShellEventInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeReverseShellEventInfoResponse(AbstractModel):
    """DescribeReverseShellEventInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ReverseShellEventInfo: 反弹shell详情信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ReverseShellEventInfo: :class:`tencentcloud.cwp.v20180228.models.ReverseShellEventInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ReverseShellEventInfo = None
        self._RequestId = None

    @property
    def ReverseShellEventInfo(self):
        return self._ReverseShellEventInfo

    @ReverseShellEventInfo.setter
    def ReverseShellEventInfo(self, ReverseShellEventInfo):
        self._ReverseShellEventInfo = ReverseShellEventInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ReverseShellEventInfo") is not None:
            self._ReverseShellEventInfo = ReverseShellEventInfo()
            self._ReverseShellEventInfo._deserialize(params.get("ReverseShellEventInfo"))
        self._RequestId = params.get("RequestId")


class DescribeReverseShellEventsRequest(AbstractModel):
    """DescribeReverseShellEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(主机内网IP|进程名)</li>
        :type Filters: list of Filter
        :param _Order: 排序方式：根据请求次数排序：asc-升序/desc-降序
        :type Order: str
        :param _By: 排序字段：CreateTime-发生时间
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeReverseShellEventsResponse(AbstractModel):
    """DescribeReverseShellEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of ReverseShell
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ReverseShell()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeReverseShellRulesRequest(AbstractModel):
    """DescribeReverseShellRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 关键字(进程名称)</li>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeReverseShellRulesResponse(AbstractModel):
    """DescribeReverseShellRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表内容
        :type List: list of ReverseShellRule
        :param _TotalCount: 总条数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ReverseShellRule()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRiskBatchStatusRequest(AbstractModel):
    """DescribeRiskBatchStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RiskType: 操作事件类型，文件查杀：MALWARE，异常登录：HOST_LOGIN，密码破解：BRUTE_ATTACK，恶意请求：MALICIOUS_REQUEST，高危命令：BASH_EVENT，本地提权：PRIVILEGE_EVENT，反弹shell：REVERSE_SHELL
        :type RiskType: str
        """
        self._RiskType = None

    @property
    def RiskType(self):
        return self._RiskType

    @RiskType.setter
    def RiskType(self, RiskType):
        self._RiskType = RiskType


    def _deserialize(self, params):
        self._RiskType = params.get("RiskType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRiskBatchStatusResponse(AbstractModel):
    """DescribeRiskBatchStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: Handling:正在执行删除操作，
Pending：没有任务执行
        :type Status: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._RequestId = params.get("RequestId")


class DescribeRiskDnsEventInfoRequest(AbstractModel):
    """DescribeRiskDnsEventInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 恶意请求事件Id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRiskDnsEventInfoResponse(AbstractModel):
    """DescribeRiskDnsEventInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Info: 恶意请求事件详情
注意：此字段可能返回 null，表示取不到有效值。
        :type Info: :class:`tencentcloud.cwp.v20180228.models.RiskDnsEvent`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Info = None
        self._RequestId = None

    @property
    def Info(self):
        return self._Info

    @Info.setter
    def Info(self, Info):
        self._Info = Info

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Info") is not None:
            self._Info = RiskDnsEvent()
            self._Info._deserialize(params.get("Info"))
        self._RequestId = params.get("RequestId")


class DescribeRiskDnsEventListRequest(AbstractModel):
    """DescribeRiskDnsEventList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式：根据请求次数排序：[asc:升序|desc:降序]
        :type Order: str
        :param _By: 排序字段：[AccessCount:请求次数|LastTime:最近请求时间]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRiskDnsEventListResponse(AbstractModel):
    """DescribeRiskDnsEventList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 恶意请求事件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RiskDnsEvent
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RiskDnsEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRiskDnsInfoRequest(AbstractModel):
    """DescribeRiskDnsInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 恶意请求-事件Id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRiskDnsInfoResponse(AbstractModel):
    """DescribeRiskDnsInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RiskDnsInfo: 恶意请求事件详情
        :type RiskDnsInfo: :class:`tencentcloud.cwp.v20180228.models.RiskDnsList`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RiskDnsInfo = None
        self._RequestId = None

    @property
    def RiskDnsInfo(self):
        return self._RiskDnsInfo

    @RiskDnsInfo.setter
    def RiskDnsInfo(self, RiskDnsInfo):
        self._RiskDnsInfo = RiskDnsInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RiskDnsInfo") is not None:
            self._RiskDnsInfo = RiskDnsList()
            self._RiskDnsInfo._deserialize(params.get("RiskDnsInfo"))
        self._RequestId = params.get("RequestId")


class DescribeRiskDnsListRequest(AbstractModel):
    """DescribeRiskDnsList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filter
        :param _Order: 排序方式：根据请求次数排序：asc-升序/desc-降序
        :type Order: str
        :param _By: 排序字段：AccessCount-请求次数。MergeTime-最近请求时间
        :type By: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRiskDnsListResponse(AbstractModel):
    """DescribeRiskDnsList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RiskDnsList: 恶意请求列表数组
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskDnsList: list of RiskDnsList
        :param _TotalCount: 总数量
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RiskDnsList = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def RiskDnsList(self):
        return self._RiskDnsList

    @RiskDnsList.setter
    def RiskDnsList(self, RiskDnsList):
        self._RiskDnsList = RiskDnsList

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("RiskDnsList") is not None:
            self._RiskDnsList = []
            for item in params.get("RiskDnsList"):
                obj = RiskDnsList()
                obj._deserialize(item)
                self._RiskDnsList.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeRiskDnsPolicyListRequest(AbstractModel):
    """DescribeRiskDnsPolicyList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [HostScope|UpdateTime]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRiskDnsPolicyListResponse(AbstractModel):
    """DescribeRiskDnsPolicyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RiskDnsPolicy
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RiskDnsPolicy()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeRiskProcessEventsRequest(AbstractModel):
    """DescribeRiskProcessEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Order: 排序方式 [ASC|DESC]
        :type Order: str
        :param _By: [StartTime:进程启动时间|DetectTime:最后检测时间]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeRiskProcessEventsResponse(AbstractModel):
    """DescribeRiskProcessEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数量
        :type TotalCount: int
        :param _List: 异常进程列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of RiskProcessEvent
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = RiskProcessEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSafeInfoRequest(AbstractModel):
    """DescribeSafeInfo请求参数结构体

    """


class DescribeSafeInfoResponse(AbstractModel):
    """DescribeSafeInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeScanMalwareScheduleRequest(AbstractModel):
    """DescribeScanMalwareSchedule请求参数结构体

    """


class DescribeScanMalwareScheduleResponse(AbstractModel):
    """DescribeScanMalwareSchedule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Schedule: 扫描进度（单位：%）
        :type Schedule: int
        :param _RiskFileNumber: 风险文件数,当进度满了以后才有该值
        :type RiskFileNumber: int
        :param _IsSchedule: 是否正在扫描中
        :type IsSchedule: bool
        :param _ScanStatus: 0 从未扫描过、 1 扫描中、 2扫描完成、 3停止中、 4停止完成
        :type ScanStatus: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Schedule = None
        self._RiskFileNumber = None
        self._IsSchedule = None
        self._ScanStatus = None
        self._RequestId = None

    @property
    def Schedule(self):
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def RiskFileNumber(self):
        return self._RiskFileNumber

    @RiskFileNumber.setter
    def RiskFileNumber(self, RiskFileNumber):
        self._RiskFileNumber = RiskFileNumber

    @property
    def IsSchedule(self):
        return self._IsSchedule

    @IsSchedule.setter
    def IsSchedule(self, IsSchedule):
        self._IsSchedule = IsSchedule

    @property
    def ScanStatus(self):
        return self._ScanStatus

    @ScanStatus.setter
    def ScanStatus(self, ScanStatus):
        self._ScanStatus = ScanStatus

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Schedule = params.get("Schedule")
        self._RiskFileNumber = params.get("RiskFileNumber")
        self._IsSchedule = params.get("IsSchedule")
        self._ScanStatus = params.get("ScanStatus")
        self._RequestId = params.get("RequestId")


class DescribeScanScheduleRequest(AbstractModel):
    """DescribeScanSchedule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: int
        """
        self._TaskId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScanScheduleResponse(AbstractModel):
    """DescribeScanSchedule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Schedule: 检测进度
注意：此字段可能返回 null，表示取不到有效值。
        :type Schedule: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Schedule = None
        self._RequestId = None

    @property
    def Schedule(self):
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Schedule = params.get("Schedule")
        self._RequestId = params.get("RequestId")


class DescribeScanStateRequest(AbstractModel):
    """DescribeScanState请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :type ModuleType: str
        :param _Filters: 过滤参数;
<li>StrategyId 基线策略ID ,仅ModuleType 为 Baseline 时需要</li>
        :type Filters: list of Filters
        """
        self._ModuleType = None
        self._Filters = None

    @property
    def ModuleType(self):
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._ModuleType = params.get("ModuleType")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScanStateResponse(AbstractModel):
    """DescribeScanState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ScanState: 0 从未扫描过、 1 扫描中、 2扫描完成、 3停止中、 4停止完成
        :type ScanState: int
        :param _Schedule: 扫描进度
        :type Schedule: int
        :param _TaskId: 任务Id
        :type TaskId: int
        :param _VulId: 任务扫描的漏洞id
        :type VulId: list of int non-negative
        :param _Type: 0一键检测 1定时检测
        :type Type: int
        :param _ScanBeginTime: 开始扫描时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanBeginTime: str
        :param _RiskEventCount: 扫描漏洞数
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskEventCount: int
        :param _ScanEndTime: 扫描结束时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanEndTime: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ScanState = None
        self._Schedule = None
        self._TaskId = None
        self._VulId = None
        self._Type = None
        self._ScanBeginTime = None
        self._RiskEventCount = None
        self._ScanEndTime = None
        self._RequestId = None

    @property
    def ScanState(self):
        return self._ScanState

    @ScanState.setter
    def ScanState(self, ScanState):
        self._ScanState = ScanState

    @property
    def Schedule(self):
        return self._Schedule

    @Schedule.setter
    def Schedule(self, Schedule):
        self._Schedule = Schedule

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def ScanBeginTime(self):
        return self._ScanBeginTime

    @ScanBeginTime.setter
    def ScanBeginTime(self, ScanBeginTime):
        self._ScanBeginTime = ScanBeginTime

    @property
    def RiskEventCount(self):
        return self._RiskEventCount

    @RiskEventCount.setter
    def RiskEventCount(self, RiskEventCount):
        self._RiskEventCount = RiskEventCount

    @property
    def ScanEndTime(self):
        return self._ScanEndTime

    @ScanEndTime.setter
    def ScanEndTime(self, ScanEndTime):
        self._ScanEndTime = ScanEndTime

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ScanState = params.get("ScanState")
        self._Schedule = params.get("Schedule")
        self._TaskId = params.get("TaskId")
        self._VulId = params.get("VulId")
        self._Type = params.get("Type")
        self._ScanBeginTime = params.get("ScanBeginTime")
        self._RiskEventCount = params.get("RiskEventCount")
        self._ScanEndTime = params.get("ScanEndTime")
        self._RequestId = params.get("RequestId")


class DescribeScanTaskDetailsRequest(AbstractModel):
    """DescribeScanTaskDetails请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :type ModuleType: str
        :param _TaskId: 任务ID
        :type TaskId: int
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        :param _Limit: 需要返回的数量，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        """
        self._ModuleType = None
        self._TaskId = None
        self._Filters = None
        self._Limit = None
        self._Offset = None

    @property
    def ModuleType(self):
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._ModuleType = params.get("ModuleType")
        self._TaskId = params.get("TaskId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScanTaskDetailsResponse(AbstractModel):
    """DescribeScanTaskDetails返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ScanTaskDetailList: 扫描任务信息列表
        :type ScanTaskDetailList: list of ScanTaskDetails
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _ScanMachineCount: 扫描机器总数
        :type ScanMachineCount: int
        :param _RiskMachineCount: 发现风险机器数
        :type RiskMachineCount: int
        :param _ScanBeginTime: 扫描开始时间
        :type ScanBeginTime: str
        :param _ScanEndTime: 扫描结束时间
        :type ScanEndTime: str
        :param _ScanTime: 检测时间
        :type ScanTime: int
        :param _ScanProgress: 扫描进度
        :type ScanProgress: int
        :param _ScanLeftTime: 扫描剩余时间
        :type ScanLeftTime: int
        :param _ScanContent: 扫描内容
        :type ScanContent: list of str
        :param _VulInfo: 漏洞信息
注意：此字段可能返回 null，表示取不到有效值。
        :type VulInfo: list of VulDetailInfo
        :param _RiskEventCount: 风险事件个数
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskEventCount: int
        :param _Type: 0一键检测 1定时检测
注意：此字段可能返回 null，表示取不到有效值。
        :type Type: int
        :param _StoppingAll: 任务是否全部正在被停止 ture是
注意：此字段可能返回 null，表示取不到有效值。
        :type StoppingAll: bool
        :param _VulCount: 扫描出漏洞个数
注意：此字段可能返回 null，表示取不到有效值。
        :type VulCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ScanTaskDetailList = None
        self._TotalCount = None
        self._ScanMachineCount = None
        self._RiskMachineCount = None
        self._ScanBeginTime = None
        self._ScanEndTime = None
        self._ScanTime = None
        self._ScanProgress = None
        self._ScanLeftTime = None
        self._ScanContent = None
        self._VulInfo = None
        self._RiskEventCount = None
        self._Type = None
        self._StoppingAll = None
        self._VulCount = None
        self._RequestId = None

    @property
    def ScanTaskDetailList(self):
        return self._ScanTaskDetailList

    @ScanTaskDetailList.setter
    def ScanTaskDetailList(self, ScanTaskDetailList):
        self._ScanTaskDetailList = ScanTaskDetailList

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ScanMachineCount(self):
        return self._ScanMachineCount

    @ScanMachineCount.setter
    def ScanMachineCount(self, ScanMachineCount):
        self._ScanMachineCount = ScanMachineCount

    @property
    def RiskMachineCount(self):
        return self._RiskMachineCount

    @RiskMachineCount.setter
    def RiskMachineCount(self, RiskMachineCount):
        self._RiskMachineCount = RiskMachineCount

    @property
    def ScanBeginTime(self):
        return self._ScanBeginTime

    @ScanBeginTime.setter
    def ScanBeginTime(self, ScanBeginTime):
        self._ScanBeginTime = ScanBeginTime

    @property
    def ScanEndTime(self):
        return self._ScanEndTime

    @ScanEndTime.setter
    def ScanEndTime(self, ScanEndTime):
        self._ScanEndTime = ScanEndTime

    @property
    def ScanTime(self):
        return self._ScanTime

    @ScanTime.setter
    def ScanTime(self, ScanTime):
        self._ScanTime = ScanTime

    @property
    def ScanProgress(self):
        return self._ScanProgress

    @ScanProgress.setter
    def ScanProgress(self, ScanProgress):
        self._ScanProgress = ScanProgress

    @property
    def ScanLeftTime(self):
        return self._ScanLeftTime

    @ScanLeftTime.setter
    def ScanLeftTime(self, ScanLeftTime):
        self._ScanLeftTime = ScanLeftTime

    @property
    def ScanContent(self):
        return self._ScanContent

    @ScanContent.setter
    def ScanContent(self, ScanContent):
        self._ScanContent = ScanContent

    @property
    def VulInfo(self):
        return self._VulInfo

    @VulInfo.setter
    def VulInfo(self, VulInfo):
        self._VulInfo = VulInfo

    @property
    def RiskEventCount(self):
        return self._RiskEventCount

    @RiskEventCount.setter
    def RiskEventCount(self, RiskEventCount):
        self._RiskEventCount = RiskEventCount

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def StoppingAll(self):
        return self._StoppingAll

    @StoppingAll.setter
    def StoppingAll(self, StoppingAll):
        self._StoppingAll = StoppingAll

    @property
    def VulCount(self):
        return self._VulCount

    @VulCount.setter
    def VulCount(self, VulCount):
        self._VulCount = VulCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ScanTaskDetailList") is not None:
            self._ScanTaskDetailList = []
            for item in params.get("ScanTaskDetailList"):
                obj = ScanTaskDetails()
                obj._deserialize(item)
                self._ScanTaskDetailList.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._ScanMachineCount = params.get("ScanMachineCount")
        self._RiskMachineCount = params.get("RiskMachineCount")
        self._ScanBeginTime = params.get("ScanBeginTime")
        self._ScanEndTime = params.get("ScanEndTime")
        self._ScanTime = params.get("ScanTime")
        self._ScanProgress = params.get("ScanProgress")
        self._ScanLeftTime = params.get("ScanLeftTime")
        self._ScanContent = params.get("ScanContent")
        if params.get("VulInfo") is not None:
            self._VulInfo = []
            for item in params.get("VulInfo"):
                obj = VulDetailInfo()
                obj._deserialize(item)
                self._VulInfo.append(obj)
        self._RiskEventCount = params.get("RiskEventCount")
        self._Type = params.get("Type")
        self._StoppingAll = params.get("StoppingAll")
        self._VulCount = params.get("VulCount")
        self._RequestId = params.get("RequestId")


class DescribeScanTaskStatusRequest(AbstractModel):
    """DescribeScanTaskStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :type ModuleType: str
        """
        self._ModuleType = None

    @property
    def ModuleType(self):
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType


    def _deserialize(self, params):
        self._ModuleType = params.get("ModuleType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScanTaskStatusResponse(AbstractModel):
    """DescribeScanTaskStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _State: 任务扫描状态列表
        :type State: :class:`tencentcloud.cwp.v20180228.models.TaskStatus`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._State = None
        self._RequestId = None

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("State") is not None:
            self._State = TaskStatus()
            self._State._deserialize(params.get("State"))
        self._RequestId = params.get("RequestId")


class DescribeScanVulSettingRequest(AbstractModel):
    """DescribeScanVulSetting请求参数结构体

    """


class DescribeScanVulSettingResponse(AbstractModel):
    """DescribeScanVulSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulCategories: 漏洞类型：1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :type VulCategories: str
        :param _VulLevels: 危害等级：1-低危；2-中危；3-高危；4-严重 (多选英文逗号分隔)
        :type VulLevels: str
        :param _TimerInterval: 定期检测间隔时间（天）
        :type TimerInterval: int
        :param _TimerTime: 定期检测时间，如：00:00
        :type TimerTime: str
        :param _VulEmergency: 是否紧急漏洞：0-否 1-是
        :type VulEmergency: int
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EnableScan: 是否开启
        :type EnableScan: int
        :param _EndTime: 结束时间
        :type EndTime: str
        :param _ClickTimeout: 一键扫描超时时长，如：1800秒（s）
        :type ClickTimeout: int
        :param _Uuids: 为空默认扫描全部专业版、旗舰版、普惠版主机，不为空只扫描选中主机
        :type Uuids: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulCategories = None
        self._VulLevels = None
        self._TimerInterval = None
        self._TimerTime = None
        self._VulEmergency = None
        self._StartTime = None
        self._EnableScan = None
        self._EndTime = None
        self._ClickTimeout = None
        self._Uuids = None
        self._RequestId = None

    @property
    def VulCategories(self):
        return self._VulCategories

    @VulCategories.setter
    def VulCategories(self, VulCategories):
        self._VulCategories = VulCategories

    @property
    def VulLevels(self):
        return self._VulLevels

    @VulLevels.setter
    def VulLevels(self, VulLevels):
        self._VulLevels = VulLevels

    @property
    def TimerInterval(self):
        return self._TimerInterval

    @TimerInterval.setter
    def TimerInterval(self, TimerInterval):
        self._TimerInterval = TimerInterval

    @property
    def TimerTime(self):
        return self._TimerTime

    @TimerTime.setter
    def TimerTime(self, TimerTime):
        self._TimerTime = TimerTime

    @property
    def VulEmergency(self):
        return self._VulEmergency

    @VulEmergency.setter
    def VulEmergency(self, VulEmergency):
        self._VulEmergency = VulEmergency

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EnableScan(self):
        return self._EnableScan

    @EnableScan.setter
    def EnableScan(self, EnableScan):
        self._EnableScan = EnableScan

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def ClickTimeout(self):
        return self._ClickTimeout

    @ClickTimeout.setter
    def ClickTimeout(self, ClickTimeout):
        self._ClickTimeout = ClickTimeout

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._VulCategories = params.get("VulCategories")
        self._VulLevels = params.get("VulLevels")
        self._TimerInterval = params.get("TimerInterval")
        self._TimerTime = params.get("TimerTime")
        self._VulEmergency = params.get("VulEmergency")
        self._StartTime = params.get("StartTime")
        self._EnableScan = params.get("EnableScan")
        self._EndTime = params.get("EndTime")
        self._ClickTimeout = params.get("ClickTimeout")
        self._Uuids = params.get("Uuids")
        self._RequestId = params.get("RequestId")


class DescribeScreenAttackHotspotRequest(AbstractModel):
    """DescribeScreenAttackHotspot请求参数结构体

    """


class DescribeScreenAttackHotspotResponse(AbstractModel):
    """DescribeScreenAttackHotspot返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 攻击热点列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of ScreenAttackHotspot
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ScreenAttackHotspot()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenBroadcastsRequest(AbstractModel):
    """DescribeScreenBroadcasts请求参数结构体

    """


class DescribeScreenBroadcastsResponse(AbstractModel):
    """DescribeScreenBroadcasts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 播报文章列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of ScreenBroadcasts
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ScreenBroadcasts()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenDefenseTrendsRequest(AbstractModel):
    """DescribeScreenDefenseTrends请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        """
        self._StartTime = None
        self._EndTime = None

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScreenDefenseTrendsResponse(AbstractModel):
    """DescribeScreenDefenseTrends返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TrendsChart: 统计详情图标数据
注意：此字段可能返回 null，表示取不到有效值。
        :type TrendsChart: list of ScreenTrendsChart
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TrendsChart = None
        self._RequestId = None

    @property
    def TrendsChart(self):
        return self._TrendsChart

    @TrendsChart.setter
    def TrendsChart(self, TrendsChart):
        self._TrendsChart = TrendsChart

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("TrendsChart") is not None:
            self._TrendsChart = []
            for item in params.get("TrendsChart"):
                obj = ScreenTrendsChart()
                obj._deserialize(item)
                self._TrendsChart.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenEmergentMsgRequest(AbstractModel):
    """DescribeScreenEmergentMsg请求参数结构体

    """


class DescribeScreenEmergentMsgResponse(AbstractModel):
    """DescribeScreenEmergentMsg返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MessageInfo: 通知内容
        :type MessageInfo: list of ScreenEmergentMsg
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MessageInfo = None
        self._RequestId = None

    @property
    def MessageInfo(self):
        return self._MessageInfo

    @MessageInfo.setter
    def MessageInfo(self, MessageInfo):
        self._MessageInfo = MessageInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("MessageInfo") is not None:
            self._MessageInfo = []
            for item in params.get("MessageInfo"):
                obj = ScreenEmergentMsg()
                obj._deserialize(item)
                self._MessageInfo.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenEventsCntRequest(AbstractModel):
    """DescribeScreenEventsCnt请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BusinessType: 数据类型：0:待处理风险总数 1:影响资产总数，默认为0
        :type BusinessType: int
        """
        self._BusinessType = None

    @property
    def BusinessType(self):
        return self._BusinessType

    @BusinessType.setter
    def BusinessType(self, BusinessType):
        self._BusinessType = BusinessType


    def _deserialize(self, params):
        self._BusinessType = params.get("BusinessType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScreenEventsCntResponse(AbstractModel):
    """DescribeScreenEventsCnt返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Info: 事件统计详情
注意：此字段可能返回 null，表示取不到有效值。
        :type Info: list of ScreenEventsCnt
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Info = None
        self._RequestId = None

    @property
    def Info(self):
        return self._Info

    @Info.setter
    def Info(self, Info):
        self._Info = Info

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Info") is not None:
            self._Info = []
            for item in params.get("Info"):
                obj = ScreenEventsCnt()
                obj._deserialize(item)
                self._Info.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenGeneralStatRequest(AbstractModel):
    """DescribeScreenGeneralStat请求参数结构体

    """


class DescribeScreenGeneralStatResponse(AbstractModel):
    """DescribeScreenGeneralStat返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Machines: name 的值: 在线，关机/离线,未安装，
value : 表示对应的数量
        :type Machines: list of ScreenNameValue
        :param _Protection: name 的值: 旗舰版，专业版，基础版
value : 表示对应的数量
        :type Protection: list of ScreenNameValue
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Machines = None
        self._Protection = None
        self._RequestId = None

    @property
    def Machines(self):
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def Protection(self):
        return self._Protection

    @Protection.setter
    def Protection(self, Protection):
        self._Protection = Protection

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Machines") is not None:
            self._Machines = []
            for item in params.get("Machines"):
                obj = ScreenNameValue()
                obj._deserialize(item)
                self._Machines.append(obj)
        if params.get("Protection") is not None:
            self._Protection = []
            for item in params.get("Protection"):
                obj = ScreenNameValue()
                obj._deserialize(item)
                self._Protection.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenHostInvasionRequest(AbstractModel):
    """DescribeScreenHostInvasion请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机quuid
        :type Quuid: str
        """
        self._Quuid = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScreenHostInvasionResponse(AbstractModel):
    """DescribeScreenHostInvasion返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DefendAttackLog: 网络攻击事件列表
        :type DefendAttackLog: list of ScreenDefendAttackLog
        :param _InvasionEvents: 入侵检测事件列表
        :type InvasionEvents: list of ScreenInvasion
        :param _Vul: 漏洞事件列表
        :type Vul: list of ScreenVulInfo
        :param _Baseline: 基线事件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Baseline: list of ScreenBaselineInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DefendAttackLog = None
        self._InvasionEvents = None
        self._Vul = None
        self._Baseline = None
        self._RequestId = None

    @property
    def DefendAttackLog(self):
        return self._DefendAttackLog

    @DefendAttackLog.setter
    def DefendAttackLog(self, DefendAttackLog):
        self._DefendAttackLog = DefendAttackLog

    @property
    def InvasionEvents(self):
        return self._InvasionEvents

    @InvasionEvents.setter
    def InvasionEvents(self, InvasionEvents):
        self._InvasionEvents = InvasionEvents

    @property
    def Vul(self):
        return self._Vul

    @Vul.setter
    def Vul(self, Vul):
        self._Vul = Vul

    @property
    def Baseline(self):
        return self._Baseline

    @Baseline.setter
    def Baseline(self, Baseline):
        self._Baseline = Baseline

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("DefendAttackLog") is not None:
            self._DefendAttackLog = []
            for item in params.get("DefendAttackLog"):
                obj = ScreenDefendAttackLog()
                obj._deserialize(item)
                self._DefendAttackLog.append(obj)
        if params.get("InvasionEvents") is not None:
            self._InvasionEvents = []
            for item in params.get("InvasionEvents"):
                obj = ScreenInvasion()
                obj._deserialize(item)
                self._InvasionEvents.append(obj)
        if params.get("Vul") is not None:
            self._Vul = []
            for item in params.get("Vul"):
                obj = ScreenVulInfo()
                obj._deserialize(item)
                self._Vul.append(obj)
        if params.get("Baseline") is not None:
            self._Baseline = []
            for item in params.get("Baseline"):
                obj = ScreenBaselineInfo()
                obj._deserialize(item)
                self._Baseline.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenMachineRegionsRequest(AbstractModel):
    """DescribeScreenMachineRegions请求参数结构体

    """


class DescribeScreenMachineRegionsResponse(AbstractModel):
    """DescribeScreenMachineRegions返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表详情
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of ScreenRegionInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ScreenRegionInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenMachinesRequest(AbstractModel):
    """DescribeScreenMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineRegion: 主机区域
        :type MachineRegion: str
        :param _MachineIpOrAlias: IP 支持内网IP,主机别名
        :type MachineIpOrAlias: str
        :param _SecurityStatus: 风险状态类型：0：全部类型，1：风险主机，2：潜在风险主机 ， 3：已关机/离线主机，4：无风险主机
        :type SecurityStatus: int
        """
        self._MachineRegion = None
        self._MachineIpOrAlias = None
        self._SecurityStatus = None

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def MachineIpOrAlias(self):
        return self._MachineIpOrAlias

    @MachineIpOrAlias.setter
    def MachineIpOrAlias(self, MachineIpOrAlias):
        self._MachineIpOrAlias = MachineIpOrAlias

    @property
    def SecurityStatus(self):
        return self._SecurityStatus

    @SecurityStatus.setter
    def SecurityStatus(self, SecurityStatus):
        self._SecurityStatus = SecurityStatus


    def _deserialize(self, params):
        self._MachineRegion = params.get("MachineRegion")
        self._MachineIpOrAlias = params.get("MachineIpOrAlias")
        self._SecurityStatus = params.get("SecurityStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScreenMachinesResponse(AbstractModel):
    """DescribeScreenMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表详情
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of ScreenRegionMachines
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ScreenRegionMachines()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenProtectionCntRequest(AbstractModel):
    """DescribeScreenProtectionCnt请求参数结构体

    """


class DescribeScreenProtectionCntResponse(AbstractModel):
    """DescribeScreenProtectionCnt返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 主机安全防护引擎介绍 内容
        :type List: list of ScreenProtectionCnt
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ScreenProtectionCnt()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenProtectionStatRequest(AbstractModel):
    """DescribeScreenProtectionStat请求参数结构体

    """


class DescribeScreenProtectionStatResponse(AbstractModel):
    """DescribeScreenProtectionStat返回参数结构体

    """

    def __init__(self):
        r"""
        :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: list of ScreenProtection
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Info = None
        self._RequestId = None

    @property
    def Info(self):
        return self._Info

    @Info.setter
    def Info(self, Info):
        self._Info = Info

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Info") is not None:
            self._Info = []
            for item in params.get("Info"):
                obj = ScreenProtection()
                obj._deserialize(item)
                self._Info.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeScreenRiskAssetsTopRequest(AbstractModel):
    """DescribeScreenRiskAssetsTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BusinessType: 统计类型：0:潜在威胁 1:失陷 2:漏洞 3:基线
        :type BusinessType: int
        """
        self._BusinessType = None

    @property
    def BusinessType(self):
        return self._BusinessType

    @BusinessType.setter
    def BusinessType(self, BusinessType):
        self._BusinessType = BusinessType


    def _deserialize(self, params):
        self._BusinessType = params.get("BusinessType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeScreenRiskAssetsTopResponse(AbstractModel):
    """DescribeScreenRiskAssetsTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Chart: 统计详情图标数据 Name：展示主机ip 和地域， value：事件数量
注意：此字段可能返回 null，表示取不到有效值。
        :type Chart: list of ScreenNameValue
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Chart = None
        self._RequestId = None

    @property
    def Chart(self):
        return self._Chart

    @Chart.setter
    def Chart(self, Chart):
        self._Chart = Chart

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Chart") is not None:
            self._Chart = []
            for item in params.get("Chart"):
                obj = ScreenNameValue()
                obj._deserialize(item)
                self._Chart.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSearchLogsRequest(AbstractModel):
    """DescribeSearchLogs请求参数结构体

    """


class DescribeSearchLogsResponse(AbstractModel):
    """DescribeSearchLogs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 历史搜索记录 保留最新的10条
        :type Data: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Data = params.get("Data")
        self._RequestId = params.get("RequestId")


class DescribeSearchTemplatesRequest(AbstractModel):
    """DescribeSearchTemplates请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        """
        self._Offset = None
        self._Limit = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSearchTemplatesResponse(AbstractModel):
    """DescribeSearchTemplates返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 模板列表
        :type List: list of SearchTemplate
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = SearchTemplate()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeSecurityBroadcastInfoRequest(AbstractModel):
    """DescribeSecurityBroadcastInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 文章id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityBroadcastInfoResponse(AbstractModel):
    """DescribeSecurityBroadcastInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BroadcastInfo: 安全播报文章详情
注意：此字段可能返回 null，表示取不到有效值。
        :type BroadcastInfo: :class:`tencentcloud.cwp.v20180228.models.BroadcastInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BroadcastInfo = None
        self._RequestId = None

    @property
    def BroadcastInfo(self):
        return self._BroadcastInfo

    @BroadcastInfo.setter
    def BroadcastInfo(self, BroadcastInfo):
        self._BroadcastInfo = BroadcastInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("BroadcastInfo") is not None:
            self._BroadcastInfo = BroadcastInfo()
            self._BroadcastInfo._deserialize(params.get("BroadcastInfo"))
        self._RequestId = params.get("RequestId")


class DescribeSecurityBroadcastsRequest(AbstractModel):
    """DescribeSecurityBroadcasts请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10 ，0=全部
        :type Limit: int
        :param _BeginDate: 筛选发布日期：开始时间
        :type BeginDate: str
        :param _EndDate: 筛选发布日期：结束时间
        :type EndDate: str
        :param _BroadcastType: 过滤安全播报类型：0-紧急通知，1-功能更新，2-行业荣誉，3-版本发布
        :type BroadcastType: str
        """
        self._Offset = None
        self._Limit = None
        self._BeginDate = None
        self._EndDate = None
        self._BroadcastType = None

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def BeginDate(self):
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def BroadcastType(self):
        return self._BroadcastType

    @BroadcastType.setter
    def BroadcastType(self, BroadcastType):
        self._BroadcastType = BroadcastType


    def _deserialize(self, params):
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._BeginDate = params.get("BeginDate")
        self._EndDate = params.get("EndDate")
        self._BroadcastType = params.get("BroadcastType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityBroadcastsResponse(AbstractModel):
    """DescribeSecurityBroadcasts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表
        :type List: list of Broadcasts
        :param _TotalCount: 总共多少条
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = Broadcasts()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeSecurityDynamicsRequest(AbstractModel):
    """DescribeSecurityDynamics请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        """
        self._Limit = None
        self._Offset = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityDynamicsResponse(AbstractModel):
    """DescribeSecurityDynamics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityDynamics: 安全事件消息数组。
        :type SecurityDynamics: list of SecurityDynamic
        :param _TotalCount: 记录总数。
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SecurityDynamics = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def SecurityDynamics(self):
        return self._SecurityDynamics

    @SecurityDynamics.setter
    def SecurityDynamics(self, SecurityDynamics):
        self._SecurityDynamics = SecurityDynamics

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("SecurityDynamics") is not None:
            self._SecurityDynamics = []
            for item in params.get("SecurityDynamics"):
                obj = SecurityDynamic()
                obj._deserialize(item)
                self._SecurityDynamics.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeSecurityEventStatRequest(AbstractModel):
    """DescribeSecurityEventStat请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 该接口无过滤条件
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityEventStatResponse(AbstractModel):
    """DescribeSecurityEventStat返回参数结构体

    """

    def __init__(self):
        r"""
        :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: int
        :param _InvasionTotalAffectNum: 有未处理入侵安全事件的机器总数
        :type InvasionTotalAffectNum: int
        :param _VulTotalAffectNum: 有未处理漏洞安全事件的机器总数
        :type VulTotalAffectNum: int
        :param _BaseLineTotalAffectNum: 有未处理基线安全事件的机器总数
        :type BaseLineTotalAffectNum: int
        :param _CyberAttackTotalAffectNum: 有未处理网络攻击安全事件的机器总数
        :type CyberAttackTotalAffectNum: int
        :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: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MalwareStat = None
        self._HostLoginStat = None
        self._BruteAttackStat = None
        self._MaliciousRequestStat = None
        self._PrivilegeStat = None
        self._ReverseShellStat = None
        self._HighRiskBashStat = None
        self._AttackLogsStat = None
        self._VulHighStat = None
        self._VulNormalStat = None
        self._VulLowStat = None
        self._BaselineHighStat = None
        self._BaselineNormalStat = None
        self._BaselineLowStat = None
        self._MachineTotalAffectNum = None
        self._InvasionTotalAffectNum = None
        self._VulTotalAffectNum = None
        self._BaseLineTotalAffectNum = None
        self._CyberAttackTotalAffectNum = None
        self._VulRiskStat = None
        self._BaselineRiskStat = None
        self._VulStat = None
        self._Score = None
        self._RequestId = None

    @property
    def MalwareStat(self):
        return self._MalwareStat

    @MalwareStat.setter
    def MalwareStat(self, MalwareStat):
        self._MalwareStat = MalwareStat

    @property
    def HostLoginStat(self):
        return self._HostLoginStat

    @HostLoginStat.setter
    def HostLoginStat(self, HostLoginStat):
        self._HostLoginStat = HostLoginStat

    @property
    def BruteAttackStat(self):
        return self._BruteAttackStat

    @BruteAttackStat.setter
    def BruteAttackStat(self, BruteAttackStat):
        self._BruteAttackStat = BruteAttackStat

    @property
    def MaliciousRequestStat(self):
        return self._MaliciousRequestStat

    @MaliciousRequestStat.setter
    def MaliciousRequestStat(self, MaliciousRequestStat):
        self._MaliciousRequestStat = MaliciousRequestStat

    @property
    def PrivilegeStat(self):
        return self._PrivilegeStat

    @PrivilegeStat.setter
    def PrivilegeStat(self, PrivilegeStat):
        self._PrivilegeStat = PrivilegeStat

    @property
    def ReverseShellStat(self):
        return self._ReverseShellStat

    @ReverseShellStat.setter
    def ReverseShellStat(self, ReverseShellStat):
        self._ReverseShellStat = ReverseShellStat

    @property
    def HighRiskBashStat(self):
        return self._HighRiskBashStat

    @HighRiskBashStat.setter
    def HighRiskBashStat(self, HighRiskBashStat):
        self._HighRiskBashStat = HighRiskBashStat

    @property
    def AttackLogsStat(self):
        return self._AttackLogsStat

    @AttackLogsStat.setter
    def AttackLogsStat(self, AttackLogsStat):
        self._AttackLogsStat = AttackLogsStat

    @property
    def VulHighStat(self):
        return self._VulHighStat

    @VulHighStat.setter
    def VulHighStat(self, VulHighStat):
        self._VulHighStat = VulHighStat

    @property
    def VulNormalStat(self):
        return self._VulNormalStat

    @VulNormalStat.setter
    def VulNormalStat(self, VulNormalStat):
        self._VulNormalStat = VulNormalStat

    @property
    def VulLowStat(self):
        return self._VulLowStat

    @VulLowStat.setter
    def VulLowStat(self, VulLowStat):
        self._VulLowStat = VulLowStat

    @property
    def BaselineHighStat(self):
        return self._BaselineHighStat

    @BaselineHighStat.setter
    def BaselineHighStat(self, BaselineHighStat):
        self._BaselineHighStat = BaselineHighStat

    @property
    def BaselineNormalStat(self):
        return self._BaselineNormalStat

    @BaselineNormalStat.setter
    def BaselineNormalStat(self, BaselineNormalStat):
        self._BaselineNormalStat = BaselineNormalStat

    @property
    def BaselineLowStat(self):
        return self._BaselineLowStat

    @BaselineLowStat.setter
    def BaselineLowStat(self, BaselineLowStat):
        self._BaselineLowStat = BaselineLowStat

    @property
    def MachineTotalAffectNum(self):
        return self._MachineTotalAffectNum

    @MachineTotalAffectNum.setter
    def MachineTotalAffectNum(self, MachineTotalAffectNum):
        self._MachineTotalAffectNum = MachineTotalAffectNum

    @property
    def InvasionTotalAffectNum(self):
        return self._InvasionTotalAffectNum

    @InvasionTotalAffectNum.setter
    def InvasionTotalAffectNum(self, InvasionTotalAffectNum):
        self._InvasionTotalAffectNum = InvasionTotalAffectNum

    @property
    def VulTotalAffectNum(self):
        return self._VulTotalAffectNum

    @VulTotalAffectNum.setter
    def VulTotalAffectNum(self, VulTotalAffectNum):
        self._VulTotalAffectNum = VulTotalAffectNum

    @property
    def BaseLineTotalAffectNum(self):
        return self._BaseLineTotalAffectNum

    @BaseLineTotalAffectNum.setter
    def BaseLineTotalAffectNum(self, BaseLineTotalAffectNum):
        self._BaseLineTotalAffectNum = BaseLineTotalAffectNum

    @property
    def CyberAttackTotalAffectNum(self):
        return self._CyberAttackTotalAffectNum

    @CyberAttackTotalAffectNum.setter
    def CyberAttackTotalAffectNum(self, CyberAttackTotalAffectNum):
        self._CyberAttackTotalAffectNum = CyberAttackTotalAffectNum

    @property
    def VulRiskStat(self):
        return self._VulRiskStat

    @VulRiskStat.setter
    def VulRiskStat(self, VulRiskStat):
        self._VulRiskStat = VulRiskStat

    @property
    def BaselineRiskStat(self):
        return self._BaselineRiskStat

    @BaselineRiskStat.setter
    def BaselineRiskStat(self, BaselineRiskStat):
        self._BaselineRiskStat = BaselineRiskStat

    @property
    def VulStat(self):
        return self._VulStat

    @VulStat.setter
    def VulStat(self, VulStat):
        self._VulStat = VulStat

    @property
    def Score(self):
        return self._Score

    @Score.setter
    def Score(self, Score):
        self._Score = Score

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("MalwareStat") is not None:
            self._MalwareStat = EventStat()
            self._MalwareStat._deserialize(params.get("MalwareStat"))
        if params.get("HostLoginStat") is not None:
            self._HostLoginStat = EventStat()
            self._HostLoginStat._deserialize(params.get("HostLoginStat"))
        if params.get("BruteAttackStat") is not None:
            self._BruteAttackStat = EventStat()
            self._BruteAttackStat._deserialize(params.get("BruteAttackStat"))
        if params.get("MaliciousRequestStat") is not None:
            self._MaliciousRequestStat = EventStat()
            self._MaliciousRequestStat._deserialize(params.get("MaliciousRequestStat"))
        if params.get("PrivilegeStat") is not None:
            self._PrivilegeStat = EventStat()
            self._PrivilegeStat._deserialize(params.get("PrivilegeStat"))
        if params.get("ReverseShellStat") is not None:
            self._ReverseShellStat = EventStat()
            self._ReverseShellStat._deserialize(params.get("ReverseShellStat"))
        if params.get("HighRiskBashStat") is not None:
            self._HighRiskBashStat = EventStat()
            self._HighRiskBashStat._deserialize(params.get("HighRiskBashStat"))
        if params.get("AttackLogsStat") is not None:
            self._AttackLogsStat = EventStat()
            self._AttackLogsStat._deserialize(params.get("AttackLogsStat"))
        if params.get("VulHighStat") is not None:
            self._VulHighStat = EventStat()
            self._VulHighStat._deserialize(params.get("VulHighStat"))
        if params.get("VulNormalStat") is not None:
            self._VulNormalStat = EventStat()
            self._VulNormalStat._deserialize(params.get("VulNormalStat"))
        if params.get("VulLowStat") is not None:
            self._VulLowStat = EventStat()
            self._VulLowStat._deserialize(params.get("VulLowStat"))
        if params.get("BaselineHighStat") is not None:
            self._BaselineHighStat = EventStat()
            self._BaselineHighStat._deserialize(params.get("BaselineHighStat"))
        if params.get("BaselineNormalStat") is not None:
            self._BaselineNormalStat = EventStat()
            self._BaselineNormalStat._deserialize(params.get("BaselineNormalStat"))
        if params.get("BaselineLowStat") is not None:
            self._BaselineLowStat = EventStat()
            self._BaselineLowStat._deserialize(params.get("BaselineLowStat"))
        self._MachineTotalAffectNum = params.get("MachineTotalAffectNum")
        self._InvasionTotalAffectNum = params.get("InvasionTotalAffectNum")
        self._VulTotalAffectNum = params.get("VulTotalAffectNum")
        self._BaseLineTotalAffectNum = params.get("BaseLineTotalAffectNum")
        self._CyberAttackTotalAffectNum = params.get("CyberAttackTotalAffectNum")
        if params.get("VulRiskStat") is not None:
            self._VulRiskStat = EventStat()
            self._VulRiskStat._deserialize(params.get("VulRiskStat"))
        if params.get("BaselineRiskStat") is not None:
            self._BaselineRiskStat = EventStat()
            self._BaselineRiskStat._deserialize(params.get("BaselineRiskStat"))
        if params.get("VulStat") is not None:
            self._VulStat = EventStat()
            self._VulStat._deserialize(params.get("VulStat"))
        self._Score = params.get("Score")
        self._RequestId = params.get("RequestId")


class DescribeSecurityEventsCntRequest(AbstractModel):
    """DescribeSecurityEventsCnt请求参数结构体

    """


class DescribeSecurityEventsCntResponse(AbstractModel):
    """DescribeSecurityEventsCnt返回参数结构体

    """

    def __init__(self):
        r"""
        :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: int
        :param _EventsCount: 所有事件总数
        :type EventsCount: int
        :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: str
        """
        self._Malware = None
        self._HostLogin = None
        self._BruteAttack = None
        self._RiskDns = None
        self._Bash = None
        self._PrivilegeRules = None
        self._ReverseShell = None
        self._SysVul = None
        self._WebVul = None
        self._EmergencyVul = None
        self._BaseLine = None
        self._AttackLogs = None
        self._EffectMachineCount = None
        self._EventsCount = None
        self._WindowVul = None
        self._LinuxVul = None
        self._RequestId = None

    @property
    def Malware(self):
        return self._Malware

    @Malware.setter
    def Malware(self, Malware):
        self._Malware = Malware

    @property
    def HostLogin(self):
        return self._HostLogin

    @HostLogin.setter
    def HostLogin(self, HostLogin):
        self._HostLogin = HostLogin

    @property
    def BruteAttack(self):
        return self._BruteAttack

    @BruteAttack.setter
    def BruteAttack(self, BruteAttack):
        self._BruteAttack = BruteAttack

    @property
    def RiskDns(self):
        return self._RiskDns

    @RiskDns.setter
    def RiskDns(self, RiskDns):
        self._RiskDns = RiskDns

    @property
    def Bash(self):
        return self._Bash

    @Bash.setter
    def Bash(self, Bash):
        self._Bash = Bash

    @property
    def PrivilegeRules(self):
        return self._PrivilegeRules

    @PrivilegeRules.setter
    def PrivilegeRules(self, PrivilegeRules):
        self._PrivilegeRules = PrivilegeRules

    @property
    def ReverseShell(self):
        return self._ReverseShell

    @ReverseShell.setter
    def ReverseShell(self, ReverseShell):
        self._ReverseShell = ReverseShell

    @property
    def SysVul(self):
        return self._SysVul

    @SysVul.setter
    def SysVul(self, SysVul):
        self._SysVul = SysVul

    @property
    def WebVul(self):
        return self._WebVul

    @WebVul.setter
    def WebVul(self, WebVul):
        self._WebVul = WebVul

    @property
    def EmergencyVul(self):
        return self._EmergencyVul

    @EmergencyVul.setter
    def EmergencyVul(self, EmergencyVul):
        self._EmergencyVul = EmergencyVul

    @property
    def BaseLine(self):
        return self._BaseLine

    @BaseLine.setter
    def BaseLine(self, BaseLine):
        self._BaseLine = BaseLine

    @property
    def AttackLogs(self):
        return self._AttackLogs

    @AttackLogs.setter
    def AttackLogs(self, AttackLogs):
        self._AttackLogs = AttackLogs

    @property
    def EffectMachineCount(self):
        return self._EffectMachineCount

    @EffectMachineCount.setter
    def EffectMachineCount(self, EffectMachineCount):
        self._EffectMachineCount = EffectMachineCount

    @property
    def EventsCount(self):
        return self._EventsCount

    @EventsCount.setter
    def EventsCount(self, EventsCount):
        self._EventsCount = EventsCount

    @property
    def WindowVul(self):
        return self._WindowVul

    @WindowVul.setter
    def WindowVul(self, WindowVul):
        self._WindowVul = WindowVul

    @property
    def LinuxVul(self):
        return self._LinuxVul

    @LinuxVul.setter
    def LinuxVul(self, LinuxVul):
        self._LinuxVul = LinuxVul

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Malware") is not None:
            self._Malware = SecurityEventInfo()
            self._Malware._deserialize(params.get("Malware"))
        if params.get("HostLogin") is not None:
            self._HostLogin = SecurityEventInfo()
            self._HostLogin._deserialize(params.get("HostLogin"))
        if params.get("BruteAttack") is not None:
            self._BruteAttack = SecurityEventInfo()
            self._BruteAttack._deserialize(params.get("BruteAttack"))
        if params.get("RiskDns") is not None:
            self._RiskDns = SecurityEventInfo()
            self._RiskDns._deserialize(params.get("RiskDns"))
        if params.get("Bash") is not None:
            self._Bash = SecurityEventInfo()
            self._Bash._deserialize(params.get("Bash"))
        if params.get("PrivilegeRules") is not None:
            self._PrivilegeRules = SecurityEventInfo()
            self._PrivilegeRules._deserialize(params.get("PrivilegeRules"))
        if params.get("ReverseShell") is not None:
            self._ReverseShell = SecurityEventInfo()
            self._ReverseShell._deserialize(params.get("ReverseShell"))
        if params.get("SysVul") is not None:
            self._SysVul = SecurityEventInfo()
            self._SysVul._deserialize(params.get("SysVul"))
        if params.get("WebVul") is not None:
            self._WebVul = SecurityEventInfo()
            self._WebVul._deserialize(params.get("WebVul"))
        if params.get("EmergencyVul") is not None:
            self._EmergencyVul = SecurityEventInfo()
            self._EmergencyVul._deserialize(params.get("EmergencyVul"))
        if params.get("BaseLine") is not None:
            self._BaseLine = SecurityEventInfo()
            self._BaseLine._deserialize(params.get("BaseLine"))
        if params.get("AttackLogs") is not None:
            self._AttackLogs = SecurityEventInfo()
            self._AttackLogs._deserialize(params.get("AttackLogs"))
        self._EffectMachineCount = params.get("EffectMachineCount")
        self._EventsCount = params.get("EventsCount")
        if params.get("WindowVul") is not None:
            self._WindowVul = SecurityEventInfo()
            self._WindowVul._deserialize(params.get("WindowVul"))
        if params.get("LinuxVul") is not None:
            self._LinuxVul = SecurityEventInfo()
            self._LinuxVul._deserialize(params.get("LinuxVul"))
        self._RequestId = params.get("RequestId")


class DescribeSecurityProtectionStatRequest(AbstractModel):
    """DescribeSecurityProtectionStat请求参数结构体

    """


class DescribeSecurityProtectionStatResponse(AbstractModel):
    """DescribeSecurityProtectionStat返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AssetManageStat: 0 ：0付费资产情况， 1：存在未安装agent情况 ，2：部分资产已是专业版/旗舰版， 3：全部资产已是专业版/旗舰版
        :type AssetManageStat: int
        :param _VulManageStat: 0:从未检测过，或0资产付费情况, 1:存在漏洞风险, 2:无风险
        :type VulManageStat: int
        :param _SecureBasicLineStat: 0:从未检测过，或0资产付费情况, 1:存在基线风险,2:无风险
        :type SecureBasicLineStat: int
        :param _MalwareScanStat: 0:从未检测过，或0资产付费情况, 1:已检测，存在恶意文件, 2:已检测，未开启隔离防护, 3:已检测且已开启防护且无风险
        :type MalwareScanStat: int
        :param _DefenseBruteAttackStat: 密码破解是否开启防护 0:未开启防护或0付费资产情况 1:已开启防护 2:存在带处理事件
        :type DefenseBruteAttackStat: int
        :param _FileTamperStat: 核心文件监控 0:未开启防护（0付费资产情况）,1: 已开通
        :type FileTamperStat: int
        :param _WebPageStat: 网页防篡改  0:未开通, 1:已开通
        :type WebPageStat: int
        :param _LoginLogStat: 异常登录 0:存在未处理风险,1:无风险，未配置白名单,2:无风险，已配置
        :type LoginLogStat: int
        :param _DiscoverBruteAttackStat: 检测--密码破解有无存在风险  0:存在未处理风险, 1：无风险，正常检测
        :type DiscoverBruteAttackStat: int
        :param _MaliciousRequestStat: 恶意请求 0 : 0台开通专业版/旗舰版, 1: 恶意请求 存在未处理风险, 2:已有付费资产，无风险
        :type MaliciousRequestStat: int
        :param _PrivilegeStat: 本地提权 0:0台开通专业版/旗舰版, 1:存在未处理风险 2:已有付费资产，无风险
        :type PrivilegeStat: int
        :param _ReverseShellStat: 反弹shell 0:0台开通专业版/旗舰版, 1:存在未处理风险 2:已有付费资产，无风险
        :type ReverseShellStat: int
        :param _ExpertServiceStat: 专家服务 0:未开通服务, 1:已开通
        :type ExpertServiceStat: int
        :param _LogAnalysisStat: 日志分析 0:未开通服务, 1:已开通
        :type LogAnalysisStat: int
        :param _WarningSetStat: 安全告警 0:未开通设置（全部关闭） 1:已开通（只要开启1个就算）
        :type WarningSetStat: int
        :param _EventBashStat: 高危命令，0：0台开通专业版/旗舰版， 1：存在未处理风险， 2：已有付费资产，无风险
        :type EventBashStat: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AssetManageStat = None
        self._VulManageStat = None
        self._SecureBasicLineStat = None
        self._MalwareScanStat = None
        self._DefenseBruteAttackStat = None
        self._FileTamperStat = None
        self._WebPageStat = None
        self._LoginLogStat = None
        self._DiscoverBruteAttackStat = None
        self._MaliciousRequestStat = None
        self._PrivilegeStat = None
        self._ReverseShellStat = None
        self._ExpertServiceStat = None
        self._LogAnalysisStat = None
        self._WarningSetStat = None
        self._EventBashStat = None
        self._RequestId = None

    @property
    def AssetManageStat(self):
        return self._AssetManageStat

    @AssetManageStat.setter
    def AssetManageStat(self, AssetManageStat):
        self._AssetManageStat = AssetManageStat

    @property
    def VulManageStat(self):
        return self._VulManageStat

    @VulManageStat.setter
    def VulManageStat(self, VulManageStat):
        self._VulManageStat = VulManageStat

    @property
    def SecureBasicLineStat(self):
        return self._SecureBasicLineStat

    @SecureBasicLineStat.setter
    def SecureBasicLineStat(self, SecureBasicLineStat):
        self._SecureBasicLineStat = SecureBasicLineStat

    @property
    def MalwareScanStat(self):
        return self._MalwareScanStat

    @MalwareScanStat.setter
    def MalwareScanStat(self, MalwareScanStat):
        self._MalwareScanStat = MalwareScanStat

    @property
    def DefenseBruteAttackStat(self):
        return self._DefenseBruteAttackStat

    @DefenseBruteAttackStat.setter
    def DefenseBruteAttackStat(self, DefenseBruteAttackStat):
        self._DefenseBruteAttackStat = DefenseBruteAttackStat

    @property
    def FileTamperStat(self):
        return self._FileTamperStat

    @FileTamperStat.setter
    def FileTamperStat(self, FileTamperStat):
        self._FileTamperStat = FileTamperStat

    @property
    def WebPageStat(self):
        return self._WebPageStat

    @WebPageStat.setter
    def WebPageStat(self, WebPageStat):
        self._WebPageStat = WebPageStat

    @property
    def LoginLogStat(self):
        return self._LoginLogStat

    @LoginLogStat.setter
    def LoginLogStat(self, LoginLogStat):
        self._LoginLogStat = LoginLogStat

    @property
    def DiscoverBruteAttackStat(self):
        return self._DiscoverBruteAttackStat

    @DiscoverBruteAttackStat.setter
    def DiscoverBruteAttackStat(self, DiscoverBruteAttackStat):
        self._DiscoverBruteAttackStat = DiscoverBruteAttackStat

    @property
    def MaliciousRequestStat(self):
        return self._MaliciousRequestStat

    @MaliciousRequestStat.setter
    def MaliciousRequestStat(self, MaliciousRequestStat):
        self._MaliciousRequestStat = MaliciousRequestStat

    @property
    def PrivilegeStat(self):
        return self._PrivilegeStat

    @PrivilegeStat.setter
    def PrivilegeStat(self, PrivilegeStat):
        self._PrivilegeStat = PrivilegeStat

    @property
    def ReverseShellStat(self):
        return self._ReverseShellStat

    @ReverseShellStat.setter
    def ReverseShellStat(self, ReverseShellStat):
        self._ReverseShellStat = ReverseShellStat

    @property
    def ExpertServiceStat(self):
        return self._ExpertServiceStat

    @ExpertServiceStat.setter
    def ExpertServiceStat(self, ExpertServiceStat):
        self._ExpertServiceStat = ExpertServiceStat

    @property
    def LogAnalysisStat(self):
        return self._LogAnalysisStat

    @LogAnalysisStat.setter
    def LogAnalysisStat(self, LogAnalysisStat):
        self._LogAnalysisStat = LogAnalysisStat

    @property
    def WarningSetStat(self):
        return self._WarningSetStat

    @WarningSetStat.setter
    def WarningSetStat(self, WarningSetStat):
        self._WarningSetStat = WarningSetStat

    @property
    def EventBashStat(self):
        return self._EventBashStat

    @EventBashStat.setter
    def EventBashStat(self, EventBashStat):
        self._EventBashStat = EventBashStat

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AssetManageStat = params.get("AssetManageStat")
        self._VulManageStat = params.get("VulManageStat")
        self._SecureBasicLineStat = params.get("SecureBasicLineStat")
        self._MalwareScanStat = params.get("MalwareScanStat")
        self._DefenseBruteAttackStat = params.get("DefenseBruteAttackStat")
        self._FileTamperStat = params.get("FileTamperStat")
        self._WebPageStat = params.get("WebPageStat")
        self._LoginLogStat = params.get("LoginLogStat")
        self._DiscoverBruteAttackStat = params.get("DiscoverBruteAttackStat")
        self._MaliciousRequestStat = params.get("MaliciousRequestStat")
        self._PrivilegeStat = params.get("PrivilegeStat")
        self._ReverseShellStat = params.get("ReverseShellStat")
        self._ExpertServiceStat = params.get("ExpertServiceStat")
        self._LogAnalysisStat = params.get("LogAnalysisStat")
        self._WarningSetStat = params.get("WarningSetStat")
        self._EventBashStat = params.get("EventBashStat")
        self._RequestId = params.get("RequestId")


class DescribeSecurityTrendsRequest(AbstractModel):
    """DescribeSecurityTrends请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BeginDate: 开始时间，如：2021-07-10
        :type BeginDate: str
        :param _EndDate: 结束时间，如：2021-07-10
        :type EndDate: str
        """
        self._BeginDate = None
        self._EndDate = None

    @property
    def BeginDate(self):
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate


    def _deserialize(self, params):
        self._BeginDate = params.get("BeginDate")
        self._EndDate = params.get("EndDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeSecurityTrendsResponse(AbstractModel):
    """DescribeSecurityTrends返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Malwares: 木马事件统计数据数组。
        :type Malwares: list of SecurityTrend
        :param _NonLocalLoginPlaces: 异地登录事件统计数据数组。
        :type NonLocalLoginPlaces: list of SecurityTrend
        :param _BruteAttacks: 密码破解事件统计数据数组。
        :type BruteAttacks: list of SecurityTrend
        :param _Vuls: 漏洞统计数据数组。
        :type Vuls: list of SecurityTrend
        :param _BaseLines: 基线统计数据数组。
        :type BaseLines: list of SecurityTrend
        :param _MaliciousRequests: 恶意请求统计数据数组。
        :type MaliciousRequests: list of SecurityTrend
        :param _HighRiskBashs: 高危命令统计数据数组。
        :type HighRiskBashs: list of SecurityTrend
        :param _ReverseShells: 反弹shell统计数据数组。
        :type ReverseShells: list of SecurityTrend
        :param _PrivilegeEscalations: 本地提权统计数据数组。
        :type PrivilegeEscalations: list of SecurityTrend
        :param _CyberAttacks: 网络攻击统计数据数组。
        :type CyberAttacks: list of SecurityTrend
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Malwares = None
        self._NonLocalLoginPlaces = None
        self._BruteAttacks = None
        self._Vuls = None
        self._BaseLines = None
        self._MaliciousRequests = None
        self._HighRiskBashs = None
        self._ReverseShells = None
        self._PrivilegeEscalations = None
        self._CyberAttacks = None
        self._RequestId = None

    @property
    def Malwares(self):
        return self._Malwares

    @Malwares.setter
    def Malwares(self, Malwares):
        self._Malwares = Malwares

    @property
    def NonLocalLoginPlaces(self):
        return self._NonLocalLoginPlaces

    @NonLocalLoginPlaces.setter
    def NonLocalLoginPlaces(self, NonLocalLoginPlaces):
        self._NonLocalLoginPlaces = NonLocalLoginPlaces

    @property
    def BruteAttacks(self):
        return self._BruteAttacks

    @BruteAttacks.setter
    def BruteAttacks(self, BruteAttacks):
        self._BruteAttacks = BruteAttacks

    @property
    def Vuls(self):
        return self._Vuls

    @Vuls.setter
    def Vuls(self, Vuls):
        self._Vuls = Vuls

    @property
    def BaseLines(self):
        return self._BaseLines

    @BaseLines.setter
    def BaseLines(self, BaseLines):
        self._BaseLines = BaseLines

    @property
    def MaliciousRequests(self):
        return self._MaliciousRequests

    @MaliciousRequests.setter
    def MaliciousRequests(self, MaliciousRequests):
        self._MaliciousRequests = MaliciousRequests

    @property
    def HighRiskBashs(self):
        return self._HighRiskBashs

    @HighRiskBashs.setter
    def HighRiskBashs(self, HighRiskBashs):
        self._HighRiskBashs = HighRiskBashs

    @property
    def ReverseShells(self):
        return self._ReverseShells

    @ReverseShells.setter
    def ReverseShells(self, ReverseShells):
        self._ReverseShells = ReverseShells

    @property
    def PrivilegeEscalations(self):
        return self._PrivilegeEscalations

    @PrivilegeEscalations.setter
    def PrivilegeEscalations(self, PrivilegeEscalations):
        self._PrivilegeEscalations = PrivilegeEscalations

    @property
    def CyberAttacks(self):
        return self._CyberAttacks

    @CyberAttacks.setter
    def CyberAttacks(self, CyberAttacks):
        self._CyberAttacks = CyberAttacks

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Malwares") is not None:
            self._Malwares = []
            for item in params.get("Malwares"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._Malwares.append(obj)
        if params.get("NonLocalLoginPlaces") is not None:
            self._NonLocalLoginPlaces = []
            for item in params.get("NonLocalLoginPlaces"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._NonLocalLoginPlaces.append(obj)
        if params.get("BruteAttacks") is not None:
            self._BruteAttacks = []
            for item in params.get("BruteAttacks"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._BruteAttacks.append(obj)
        if params.get("Vuls") is not None:
            self._Vuls = []
            for item in params.get("Vuls"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._Vuls.append(obj)
        if params.get("BaseLines") is not None:
            self._BaseLines = []
            for item in params.get("BaseLines"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._BaseLines.append(obj)
        if params.get("MaliciousRequests") is not None:
            self._MaliciousRequests = []
            for item in params.get("MaliciousRequests"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._MaliciousRequests.append(obj)
        if params.get("HighRiskBashs") is not None:
            self._HighRiskBashs = []
            for item in params.get("HighRiskBashs"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._HighRiskBashs.append(obj)
        if params.get("ReverseShells") is not None:
            self._ReverseShells = []
            for item in params.get("ReverseShells"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._ReverseShells.append(obj)
        if params.get("PrivilegeEscalations") is not None:
            self._PrivilegeEscalations = []
            for item in params.get("PrivilegeEscalations"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._PrivilegeEscalations.append(obj)
        if params.get("CyberAttacks") is not None:
            self._CyberAttacks = []
            for item in params.get("CyberAttacks"):
                obj = SecurityTrend()
                obj._deserialize(item)
                self._CyberAttacks.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeServerRelatedDirInfoRequest(AbstractModel):
    """DescribeServerRelatedDirInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeServerRelatedDirInfoResponse(AbstractModel):
    """DescribeServerRelatedDirInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HostName: 服务器名称
        :type HostName: str
        :param _HostIp: 服务器IP
        :type HostIp: str
        :param _ProtectDirNum: 防护目录数量
        :type ProtectDirNum: int
        :param _ProtectFileNum: 防护文件数量
        :type ProtectFileNum: int
        :param _ProtectTamperNum: 防篡改数量
        :type ProtectTamperNum: int
        :param _ProtectLinkNum: 防护软链数量
        :type ProtectLinkNum: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostName = None
        self._HostIp = None
        self._ProtectDirNum = None
        self._ProtectFileNum = None
        self._ProtectTamperNum = None
        self._ProtectLinkNum = None
        self._RequestId = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def ProtectDirNum(self):
        return self._ProtectDirNum

    @ProtectDirNum.setter
    def ProtectDirNum(self, ProtectDirNum):
        self._ProtectDirNum = ProtectDirNum

    @property
    def ProtectFileNum(self):
        return self._ProtectFileNum

    @ProtectFileNum.setter
    def ProtectFileNum(self, ProtectFileNum):
        self._ProtectFileNum = ProtectFileNum

    @property
    def ProtectTamperNum(self):
        return self._ProtectTamperNum

    @ProtectTamperNum.setter
    def ProtectTamperNum(self, ProtectTamperNum):
        self._ProtectTamperNum = ProtectTamperNum

    @property
    def ProtectLinkNum(self):
        return self._ProtectLinkNum

    @ProtectLinkNum.setter
    def ProtectLinkNum(self, ProtectLinkNum):
        self._ProtectLinkNum = ProtectLinkNum

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._ProtectDirNum = params.get("ProtectDirNum")
        self._ProtectFileNum = params.get("ProtectFileNum")
        self._ProtectTamperNum = params.get("ProtectTamperNum")
        self._ProtectLinkNum = params.get("ProtectLinkNum")
        self._RequestId = params.get("RequestId")


class DescribeServersAndRiskAndFirstInfoRequest(AbstractModel):
    """DescribeServersAndRiskAndFirstInfo请求参数结构体

    """


class DescribeServersAndRiskAndFirstInfoResponse(AbstractModel):
    """DescribeServersAndRiskAndFirstInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RiskFileCount: 风险文件数
        :type RiskFileCount: int
        :param _AddRiskFileCount: 今日新增风险文件数
        :type AddRiskFileCount: int
        :param _ServersCount: 受影响服务器台数
        :type ServersCount: int
        :param _IsFirstCheck: 是否试用：true-是，false-否
        :type IsFirstCheck: bool
        :param _ScanTime: 木马最近检测时间
        :type ScanTime: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RiskFileCount = None
        self._AddRiskFileCount = None
        self._ServersCount = None
        self._IsFirstCheck = None
        self._ScanTime = None
        self._RequestId = None

    @property
    def RiskFileCount(self):
        return self._RiskFileCount

    @RiskFileCount.setter
    def RiskFileCount(self, RiskFileCount):
        self._RiskFileCount = RiskFileCount

    @property
    def AddRiskFileCount(self):
        return self._AddRiskFileCount

    @AddRiskFileCount.setter
    def AddRiskFileCount(self, AddRiskFileCount):
        self._AddRiskFileCount = AddRiskFileCount

    @property
    def ServersCount(self):
        return self._ServersCount

    @ServersCount.setter
    def ServersCount(self, ServersCount):
        self._ServersCount = ServersCount

    @property
    def IsFirstCheck(self):
        return self._IsFirstCheck

    @IsFirstCheck.setter
    def IsFirstCheck(self, IsFirstCheck):
        self._IsFirstCheck = IsFirstCheck

    @property
    def ScanTime(self):
        return self._ScanTime

    @ScanTime.setter
    def ScanTime(self, ScanTime):
        self._ScanTime = ScanTime

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RiskFileCount = params.get("RiskFileCount")
        self._AddRiskFileCount = params.get("AddRiskFileCount")
        self._ServersCount = params.get("ServersCount")
        self._IsFirstCheck = params.get("IsFirstCheck")
        self._ScanTime = params.get("ScanTime")
        self._RequestId = params.get("RequestId")


class DescribeStrategyExistRequest(AbstractModel):
    """DescribeStrategyExist请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyName: 策略名
        :type StrategyName: str
        """
        self._StrategyName = None

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName


    def _deserialize(self, params):
        self._StrategyName = params.get("StrategyName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeStrategyExistResponse(AbstractModel):
    """DescribeStrategyExist返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IfExist: 策略是否存在, 1是 0否
注意：此字段可能返回 null，表示取不到有效值。
        :type IfExist: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IfExist = None
        self._RequestId = None

    @property
    def IfExist(self):
        return self._IfExist

    @IfExist.setter
    def IfExist(self, IfExist):
        self._IfExist = IfExist

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._IfExist = params.get("IfExist")
        self._RequestId = params.get("RequestId")


class DescribeTagMachinesRequest(AbstractModel):
    """DescribeTagMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 标签ID
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeTagMachinesResponse(AbstractModel):
    """DescribeTagMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表数据
        :type List: list of TagMachine
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = TagMachine()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeTagsRequest(AbstractModel):
    """DescribeTags请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MachineType: 云主机类型。
<li>CVM：表示云服务器</li>
<li>BM:  表示黑石物理机</li>
<li>ECM:  表示边缘计算服务器</li>
<li>LH:  表示轻量应用服务器</li>
<li>Other:  表示混合云服务器</li>
        :type MachineType: str
        :param _MachineRegion: 机器所属地域。如：ap-guangzhou
        :type MachineRegion: str
        :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: list of Filters
        """
        self._MachineType = None
        self._MachineRegion = None
        self._Filters = None

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._MachineType = params.get("MachineType")
        self._MachineRegion = params.get("MachineRegion")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeTagsResponse(AbstractModel):
    """DescribeTags返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 列表信息
        :type List: list of Tag
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = Tag()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeTrialReportRequest(AbstractModel):
    """DescribeTrialReport请求参数结构体

    """


class DescribeTrialReportResponse(AbstractModel):
    """DescribeTrialReport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeUndoVulCountsRequest(AbstractModel):
    """DescribeUndoVulCounts请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulCategory: 漏洞分类，1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :type VulCategory: int
        :param _IfEmergency: 是否应急漏洞筛选, 是 : yes
        :type IfEmergency: str
        """
        self._VulCategory = None
        self._IfEmergency = None

    @property
    def VulCategory(self):
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IfEmergency(self):
        return self._IfEmergency

    @IfEmergency.setter
    def IfEmergency(self, IfEmergency):
        self._IfEmergency = IfEmergency


    def _deserialize(self, params):
        self._VulCategory = params.get("VulCategory")
        self._IfEmergency = params.get("IfEmergency")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeUndoVulCountsResponse(AbstractModel):
    """DescribeUndoVulCounts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _UndoVulCount: 未处理的漏洞数
注意：此字段可能返回 null，表示取不到有效值。
        :type UndoVulCount: int
        :param _UndoHostCount: 未处理的主机数
注意：此字段可能返回 null，表示取不到有效值。
        :type UndoHostCount: int
        :param _NotProfessionCount: 普通版主机数
注意：此字段可能返回 null，表示取不到有效值。
        :type NotProfessionCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._UndoVulCount = None
        self._UndoHostCount = None
        self._NotProfessionCount = None
        self._RequestId = None

    @property
    def UndoVulCount(self):
        return self._UndoVulCount

    @UndoVulCount.setter
    def UndoVulCount(self, UndoVulCount):
        self._UndoVulCount = UndoVulCount

    @property
    def UndoHostCount(self):
        return self._UndoHostCount

    @UndoHostCount.setter
    def UndoHostCount(self, UndoHostCount):
        self._UndoHostCount = UndoHostCount

    @property
    def NotProfessionCount(self):
        return self._NotProfessionCount

    @NotProfessionCount.setter
    def NotProfessionCount(self, NotProfessionCount):
        self._NotProfessionCount = NotProfessionCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._UndoVulCount = params.get("UndoVulCount")
        self._UndoHostCount = params.get("UndoHostCount")
        self._NotProfessionCount = params.get("NotProfessionCount")
        self._RequestId = params.get("RequestId")


class DescribeUsersConfigRequest(AbstractModel):
    """DescribeUsersConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ConfigName: 配置名称
<li>license_monitor 授权监控配置 0 关闭, 1开启</li>
        :type ConfigName: str
        """
        self._ConfigName = None

    @property
    def ConfigName(self):
        return self._ConfigName

    @ConfigName.setter
    def ConfigName(self, ConfigName):
        self._ConfigName = ConfigName


    def _deserialize(self, params):
        self._ConfigName = params.get("ConfigName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeUsersConfigResponse(AbstractModel):
    """DescribeUsersConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Value: 配置值
        :type Value: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Value = None
        self._RequestId = None

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Value = params.get("Value")
        self._RequestId = params.get("RequestId")


class DescribeUsualLoginPlacesRequest(AbstractModel):
    """DescribeUsualLoginPlaces请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机安全客户端UUID
        :type Uuid: str
        """
        self._Uuid = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeUsualLoginPlacesResponse(AbstractModel):
    """DescribeUsualLoginPlaces返回参数结构体

    """

    def __init__(self):
        r"""
        :param _UsualLoginPlaces: 常用登录地数组
        :type UsualLoginPlaces: list of UsualPlace
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._UsualLoginPlaces = None
        self._RequestId = None

    @property
    def UsualLoginPlaces(self):
        return self._UsualLoginPlaces

    @UsualLoginPlaces.setter
    def UsualLoginPlaces(self, UsualLoginPlaces):
        self._UsualLoginPlaces = UsualLoginPlaces

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("UsualLoginPlaces") is not None:
            self._UsualLoginPlaces = []
            for item in params.get("UsualLoginPlaces"):
                obj = UsualPlace()
                obj._deserialize(item)
                self._UsualLoginPlaces.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVdbAndPocInfoRequest(AbstractModel):
    """DescribeVdbAndPocInfo请求参数结构体

    """


class DescribeVdbAndPocInfoResponse(AbstractModel):
    """DescribeVdbAndPocInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VdbUpdateTime: 病毒库更新时间。
        :type VdbUpdateTime: str
        :param _PocUpdateTime: 漏洞库更新时间。
        :type PocUpdateTime: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VdbUpdateTime = None
        self._PocUpdateTime = None
        self._RequestId = None

    @property
    def VdbUpdateTime(self):
        return self._VdbUpdateTime

    @VdbUpdateTime.setter
    def VdbUpdateTime(self, VdbUpdateTime):
        self._VdbUpdateTime = VdbUpdateTime

    @property
    def PocUpdateTime(self):
        return self._PocUpdateTime

    @PocUpdateTime.setter
    def PocUpdateTime(self, PocUpdateTime):
        self._PocUpdateTime = PocUpdateTime

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._VdbUpdateTime = params.get("VdbUpdateTime")
        self._PocUpdateTime = params.get("PocUpdateTime")
        self._RequestId = params.get("RequestId")


class DescribeVersionCompareChartRequest(AbstractModel):
    """DescribeVersionCompareChart请求参数结构体

    """


class DescribeVersionCompareChartResponse(AbstractModel):
    """DescribeVersionCompareChart返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: json 字符串
        :type Data: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Data = params.get("Data")
        self._RequestId = params.get("RequestId")


class DescribeVersionStatisticsRequest(AbstractModel):
    """DescribeVersionStatistics请求参数结构体

    """


class DescribeVersionStatisticsResponse(AbstractModel):
    """DescribeVersionStatistics返回参数结构体

    """

    def __init__(self):
        r"""
        :param _BasicVersionNum: 基础版数量
        :type BasicVersionNum: int
        :param _ProVersionNum: 专业版数量
        :type ProVersionNum: int
        :param _UltimateVersionNum: 旗舰版数量
        :type UltimateVersionNum: int
        :param _GeneralVersionNum: 普惠版数量
        :type GeneralVersionNum: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._BasicVersionNum = None
        self._ProVersionNum = None
        self._UltimateVersionNum = None
        self._GeneralVersionNum = None
        self._RequestId = None

    @property
    def BasicVersionNum(self):
        return self._BasicVersionNum

    @BasicVersionNum.setter
    def BasicVersionNum(self, BasicVersionNum):
        self._BasicVersionNum = BasicVersionNum

    @property
    def ProVersionNum(self):
        return self._ProVersionNum

    @ProVersionNum.setter
    def ProVersionNum(self, ProVersionNum):
        self._ProVersionNum = ProVersionNum

    @property
    def UltimateVersionNum(self):
        return self._UltimateVersionNum

    @UltimateVersionNum.setter
    def UltimateVersionNum(self, UltimateVersionNum):
        self._UltimateVersionNum = UltimateVersionNum

    @property
    def GeneralVersionNum(self):
        return self._GeneralVersionNum

    @GeneralVersionNum.setter
    def GeneralVersionNum(self, GeneralVersionNum):
        self._GeneralVersionNum = GeneralVersionNum

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._BasicVersionNum = params.get("BasicVersionNum")
        self._ProVersionNum = params.get("ProVersionNum")
        self._UltimateVersionNum = params.get("UltimateVersionNum")
        self._GeneralVersionNum = params.get("GeneralVersionNum")
        self._RequestId = params.get("RequestId")


class DescribeVertexDetailRequest(AbstractModel):
    """DescribeVertexDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VertexIds: 点id列表
        :type VertexIds: list of str
        :param _IncidentId: 事件id
        :type IncidentId: str
        :param _TableName: 事件所在表名
        :type TableName: str
        """
        self._VertexIds = None
        self._IncidentId = None
        self._TableName = None

    @property
    def VertexIds(self):
        return self._VertexIds

    @VertexIds.setter
    def VertexIds(self, VertexIds):
        self._VertexIds = VertexIds

    @property
    def IncidentId(self):
        return self._IncidentId

    @IncidentId.setter
    def IncidentId(self, IncidentId):
        self._IncidentId = IncidentId

    @property
    def TableName(self):
        return self._TableName

    @TableName.setter
    def TableName(self, TableName):
        self._TableName = TableName


    def _deserialize(self, params):
        self._VertexIds = params.get("VertexIds")
        self._IncidentId = params.get("IncidentId")
        self._TableName = params.get("TableName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVertexDetailResponse(AbstractModel):
    """DescribeVertexDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VertexDetails: 指定点列表的属性信息
注意：此字段可能返回 null，表示取不到有效值。
        :type VertexDetails: list of VertexDetail
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VertexDetails = None
        self._RequestId = None

    @property
    def VertexDetails(self):
        return self._VertexDetails

    @VertexDetails.setter
    def VertexDetails(self, VertexDetails):
        self._VertexDetails = VertexDetails

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VertexDetails") is not None:
            self._VertexDetails = []
            for item in params.get("VertexDetails"):
                obj = VertexDetail()
                obj._deserialize(item)
                self._VertexDetails.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulCountByDatesRequest(AbstractModel):
    """DescribeVulCountByDates请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LastDays: 需要查询最近几天的数据，需要都 -1后传入
        :type LastDays: list of int non-negative
        :param _VulCategory: 漏洞的分类: 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
        :type VulCategory: int
        :param _IfEmergency: 是否为应急漏洞筛选  是: yes
        :type IfEmergency: str
        """
        self._LastDays = None
        self._VulCategory = None
        self._IfEmergency = None

    @property
    def LastDays(self):
        return self._LastDays

    @LastDays.setter
    def LastDays(self, LastDays):
        self._LastDays = LastDays

    @property
    def VulCategory(self):
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IfEmergency(self):
        return self._IfEmergency

    @IfEmergency.setter
    def IfEmergency(self, IfEmergency):
        self._IfEmergency = IfEmergency


    def _deserialize(self, params):
        self._LastDays = params.get("LastDays")
        self._VulCategory = params.get("VulCategory")
        self._IfEmergency = params.get("IfEmergency")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulCountByDatesResponse(AbstractModel):
    """DescribeVulCountByDates返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulCount: 批量获得对应天数的漏洞数量
注意：此字段可能返回 null，表示取不到有效值。
        :type VulCount: list of int non-negative
        :param _HostCount: 批量获得对应天数的主机数量
        :type HostCount: list of int non-negative
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulCount = None
        self._HostCount = None
        self._RequestId = None

    @property
    def VulCount(self):
        return self._VulCount

    @VulCount.setter
    def VulCount(self, VulCount):
        self._VulCount = VulCount

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._VulCount = params.get("VulCount")
        self._HostCount = params.get("HostCount")
        self._RequestId = params.get("RequestId")


class DescribeVulCveIdInfoRequest(AbstractModel):
    """DescribeVulCveIdInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CveIds: 漏洞cve_id 列表
        :type CveIds: list of str
        """
        self._CveIds = None

    @property
    def CveIds(self):
        return self._CveIds

    @CveIds.setter
    def CveIds(self, CveIds):
        self._CveIds = CveIds


    def _deserialize(self, params):
        self._CveIds = params.get("CveIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulCveIdInfoResponse(AbstractModel):
    """DescribeVulCveIdInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 详情列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of VulInfoByCveId
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = VulInfoByCveId()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulDefenceEventRequest(AbstractModel):
    """DescribeVulDefenceEvent请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询; Quuid，VulId，EventType，Status精确匹配，CreateBeginTime，CreateEndTime时间段查询
        :type Filters: list of Filter
        :param _Offset: 数据偏移
        :type Offset: int
        :param _Limit: 数据限制
        :type Limit: int
        :param _Order: 排序，大小写无关：asc 升序，desc降序
        :type Order: str
        :param _By: 排序列，严格相等：CreateTime创建时间，MergeTime合并时间，Count事件数量
        :type By: str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulDefenceEventResponse(AbstractModel):
    """DescribeVulDefenceEvent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御事件列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of VulDefenceEvent
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = VulDefenceEvent()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulDefenceListRequest(AbstractModel):
    """DescribeVulDefenceList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Level、Keywords
        :type Filters: list of Filter
        :param _Offset: 数据偏移
        :type Offset: int
        :param _Limit: 数据限制
        :type Limit: int
        :param _Order: 排序，大小写无关：asc 升序，desc降序
        :type Order: str
        :param _By: 排序列，严格相等：PublishTime发布时间
        :type By: str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulDefenceListResponse(AbstractModel):
    """DescribeVulDefenceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of VulDefenceRangeDetail
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = VulDefenceRangeDetail()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulDefenceOverviewRequest(AbstractModel):
    """DescribeVulDefenceOverview请求参数结构体

    """


class DescribeVulDefenceOverviewResponse(AbstractModel):
    """DescribeVulDefenceOverview返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Overview: 漏洞防御概览信息
        :type Overview: :class:`tencentcloud.cwp.v20180228.models.VulDefenceOverview`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Overview = None
        self._RequestId = None

    @property
    def Overview(self):
        return self._Overview

    @Overview.setter
    def Overview(self, Overview):
        self._Overview = Overview

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Overview") is not None:
            self._Overview = VulDefenceOverview()
            self._Overview._deserialize(params.get("Overview"))
        self._RequestId = params.get("RequestId")


class DescribeVulDefencePluginDetailRequest(AbstractModel):
    """DescribeVulDefencePluginDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Filters: 过滤条件：Keywords: ip或者主机名,Exception，Status精确匹配
        :type Filters: list of Filter
        :param _Offset: 数据偏移
        :type Offset: int
        :param _Limit: 数据限制
        :type Limit: int
        """
        self._Quuid = None
        self._Filters = None
        self._Offset = None
        self._Limit = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulDefencePluginDetailResponse(AbstractModel):
    """DescribeVulDefencePluginDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 漏洞防御插件信息详情列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of VulDefencePluginDetail
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = VulDefencePluginDetail()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulDefencePluginExceptionCountRequest(AbstractModel):
    """DescribeVulDefencePluginExceptionCount请求参数结构体

    """


class DescribeVulDefencePluginExceptionCountResponse(AbstractModel):
    """DescribeVulDefencePluginExceptionCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Count: 当前异常插件数
注意：此字段可能返回 null，表示取不到有效值。
        :type Count: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Count = None
        self._RequestId = None

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Count = params.get("Count")
        self._RequestId = params.get("RequestId")


class DescribeVulDefencePluginStatusRequest(AbstractModel):
    """DescribeVulDefencePluginStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Keywords - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>Exception - String - 是否必填：否 - 插件状态 0:正常,1:异常,2:无java进程注入</li>
        :type Filters: list of Filter
        :param _Offset: 数据偏移
        :type Offset: int
        :param _Limit: 数据限制
        :type Limit: int
        :param _Order: 排序，大小写无关：asc 升序，desc降序
        :type Order: str
        :param _By: 排序列，严格相等：CreateTime创建时间，ModifyTime更新时间
        :type By: str
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulDefencePluginStatusResponse(AbstractModel):
    """DescribeVulDefencePluginStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 数据总数
        :type TotalCount: int
        :param _List: 各主机漏洞防御插件信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of VulDefencePluginStatus
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = VulDefencePluginStatus()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulDefenceSettingRequest(AbstractModel):
    """DescribeVulDefenceSetting请求参数结构体

    """


class DescribeVulDefenceSettingResponse(AbstractModel):
    """DescribeVulDefenceSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Enable: 防御开关，0 关闭 1 开启
        :type Enable: int
        :param _Scope: 影响范围：1 全网旗舰版主机，0 quuid列表主机
        :type Scope: int
        :param _Quuids: 影响主机quuid列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuids: list of str
        :param _FlagshipCount: 当前旗舰版主机数量
        :type FlagshipCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Enable = None
        self._Scope = None
        self._Quuids = None
        self._FlagshipCount = None
        self._RequestId = None

    @property
    def Enable(self):
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def Scope(self):
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def FlagshipCount(self):
        return self._FlagshipCount

    @FlagshipCount.setter
    def FlagshipCount(self, FlagshipCount):
        self._FlagshipCount = FlagshipCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Enable = params.get("Enable")
        self._Scope = params.get("Scope")
        self._Quuids = params.get("Quuids")
        self._FlagshipCount = params.get("FlagshipCount")
        self._RequestId = params.get("RequestId")


class DescribeVulEffectHostListRequest(AbstractModel):
    """DescribeVulEffectHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页limit 最大100
        :type Limit: int
        :param _Offset: 分页Offset
        :type Offset: int
        :param _VulId: 漏洞id
        :type VulId: int
        :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: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._VulId = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._VulId = params.get("VulId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulEffectHostListResponse(AbstractModel):
    """DescribeVulEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 列表总数量
        :type TotalCount: int
        :param _VulEffectHostList: 影响主机列表
注意：此字段可能返回 null，表示取不到有效值。
        :type VulEffectHostList: list of VulEffectHostList
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._VulEffectHostList = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def VulEffectHostList(self):
        return self._VulEffectHostList

    @VulEffectHostList.setter
    def VulEffectHostList(self, VulEffectHostList):
        self._VulEffectHostList = VulEffectHostList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("VulEffectHostList") is not None:
            self._VulEffectHostList = []
            for item in params.get("VulEffectHostList"):
                obj = VulEffectHostList()
                obj._deserialize(item)
                self._VulEffectHostList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulEffectModulesRequest(AbstractModel):
    """DescribeVulEffectModules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 分页limit 最大100
        :type Limit: int
        :param _Offset: 分页Offset
        :type Offset: int
        :param _VulId: 漏洞id
        :type VulId: int
        :param _Filters: 过滤条件：
<li>Uuid - String数组 - Uuid串数组</li>
        :type Filters: list of Filter
        """
        self._Limit = None
        self._Offset = None
        self._VulId = None
        self._Filters = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._VulId = params.get("VulId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulEffectModulesResponse(AbstractModel):
    """DescribeVulEffectModules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 列表总数量
        :type TotalCount: int
        :param _VulEffectModuleInfo: 影响主机列表
注意：此字段可能返回 null，表示取不到有效值。
        :type VulEffectModuleInfo: list of VulEffectModuleInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._VulEffectModuleInfo = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def VulEffectModuleInfo(self):
        return self._VulEffectModuleInfo

    @VulEffectModuleInfo.setter
    def VulEffectModuleInfo(self, VulEffectModuleInfo):
        self._VulEffectModuleInfo = VulEffectModuleInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("VulEffectModuleInfo") is not None:
            self._VulEffectModuleInfo = []
            for item in params.get("VulEffectModuleInfo"):
                obj = VulEffectModuleInfo()
                obj._deserialize(item)
                self._VulEffectModuleInfo.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulEmergentMsgRequest(AbstractModel):
    """DescribeVulEmergentMsg请求参数结构体

    """


class DescribeVulEmergentMsgResponse(AbstractModel):
    """DescribeVulEmergentMsg返回参数结构体

    """

    def __init__(self):
        r"""
        :param _EmergentMsgList: 漏洞紧急通知数据
注意：此字段可能返回 null，表示取不到有效值。
        :type EmergentMsgList: list of VulEmergentMsgInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._EmergentMsgList = None
        self._RequestId = None

    @property
    def EmergentMsgList(self):
        return self._EmergentMsgList

    @EmergentMsgList.setter
    def EmergentMsgList(self, EmergentMsgList):
        self._EmergentMsgList = EmergentMsgList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("EmergentMsgList") is not None:
            self._EmergentMsgList = []
            for item in params.get("EmergentMsgList"):
                obj = VulEmergentMsgInfo()
                obj._deserialize(item)
                self._EmergentMsgList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulFixStatusRequest(AbstractModel):
    """DescribeVulFixStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FixId: 任务id 传VulId可以不用传FixId
        :type FixId: int
        :param _VulId: 漏洞id 传FixId可以不用传VulId
        :type VulId: int
        :param _Quuid: 主机quuid 和VulId 组合可查 某主机最近一次修复任务详情
        :type Quuid: str
        """
        self._FixId = None
        self._VulId = None
        self._Quuid = None

    @property
    def FixId(self):
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._FixId = params.get("FixId")
        self._VulId = params.get("VulId")
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulFixStatusResponse(AbstractModel):
    """DescribeVulFixStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FixStartTime: 开始修复时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FixStartTime: str
        :param _FixEndTime: 修复结束时间，为空表示还没结束
注意：此字段可能返回 null，表示取不到有效值。
        :type FixEndTime: str
        :param _FixSuccessCnt: 修复成功的主机数
注意：此字段可能返回 null，表示取不到有效值。
        :type FixSuccessCnt: int
        :param _FixFailCnt: 修复失败的主机数
        :type FixFailCnt: int
        :param _HostCnt: 主机总是
        :type HostCnt: int
        :param _FixId: 修复的任务id
        :type FixId: int
        :param _SnapshotList: 修复快照状态列表
注意：此字段可能返回 null，表示取不到有效值。
        :type SnapshotList: list of VulFixStatusSnapshotInfo
        :param _VulFixList: 修复漏洞详情列表
注意：此字段可能返回 null，表示取不到有效值。
        :type VulFixList: list of VulFixStatusInfo
        :param _SnapshotProgress: 快照创建进度0-100
        :type SnapshotProgress: int
        :param _FixProgress: 修复精度 0-100
        :type FixProgress: int
        :param _RemainingTime: 预计剩余时间（单位秒）
        :type RemainingTime: int
        :param _IsRetrySnapshot: 快照是否是重试状态 0=非重试  1=重试
        :type IsRetrySnapshot: int
        :param _SnapshotFailCnt: 快照创建失败数
注意：此字段可能返回 null，表示取不到有效值。
        :type SnapshotFailCnt: int
        :param _IsAllowRetry: 是否允许重试 0:不允许 1：允许
注意：此字段可能返回 null，表示取不到有效值。
        :type IsAllowRetry: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FixStartTime = None
        self._FixEndTime = None
        self._FixSuccessCnt = None
        self._FixFailCnt = None
        self._HostCnt = None
        self._FixId = None
        self._SnapshotList = None
        self._VulFixList = None
        self._SnapshotProgress = None
        self._FixProgress = None
        self._RemainingTime = None
        self._IsRetrySnapshot = None
        self._SnapshotFailCnt = None
        self._IsAllowRetry = None
        self._RequestId = None

    @property
    def FixStartTime(self):
        return self._FixStartTime

    @FixStartTime.setter
    def FixStartTime(self, FixStartTime):
        self._FixStartTime = FixStartTime

    @property
    def FixEndTime(self):
        return self._FixEndTime

    @FixEndTime.setter
    def FixEndTime(self, FixEndTime):
        self._FixEndTime = FixEndTime

    @property
    def FixSuccessCnt(self):
        return self._FixSuccessCnt

    @FixSuccessCnt.setter
    def FixSuccessCnt(self, FixSuccessCnt):
        self._FixSuccessCnt = FixSuccessCnt

    @property
    def FixFailCnt(self):
        return self._FixFailCnt

    @FixFailCnt.setter
    def FixFailCnt(self, FixFailCnt):
        self._FixFailCnt = FixFailCnt

    @property
    def HostCnt(self):
        return self._HostCnt

    @HostCnt.setter
    def HostCnt(self, HostCnt):
        self._HostCnt = HostCnt

    @property
    def FixId(self):
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def SnapshotList(self):
        return self._SnapshotList

    @SnapshotList.setter
    def SnapshotList(self, SnapshotList):
        self._SnapshotList = SnapshotList

    @property
    def VulFixList(self):
        return self._VulFixList

    @VulFixList.setter
    def VulFixList(self, VulFixList):
        self._VulFixList = VulFixList

    @property
    def SnapshotProgress(self):
        return self._SnapshotProgress

    @SnapshotProgress.setter
    def SnapshotProgress(self, SnapshotProgress):
        self._SnapshotProgress = SnapshotProgress

    @property
    def FixProgress(self):
        return self._FixProgress

    @FixProgress.setter
    def FixProgress(self, FixProgress):
        self._FixProgress = FixProgress

    @property
    def RemainingTime(self):
        return self._RemainingTime

    @RemainingTime.setter
    def RemainingTime(self, RemainingTime):
        self._RemainingTime = RemainingTime

    @property
    def IsRetrySnapshot(self):
        return self._IsRetrySnapshot

    @IsRetrySnapshot.setter
    def IsRetrySnapshot(self, IsRetrySnapshot):
        self._IsRetrySnapshot = IsRetrySnapshot

    @property
    def SnapshotFailCnt(self):
        return self._SnapshotFailCnt

    @SnapshotFailCnt.setter
    def SnapshotFailCnt(self, SnapshotFailCnt):
        self._SnapshotFailCnt = SnapshotFailCnt

    @property
    def IsAllowRetry(self):
        return self._IsAllowRetry

    @IsAllowRetry.setter
    def IsAllowRetry(self, IsAllowRetry):
        self._IsAllowRetry = IsAllowRetry

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FixStartTime = params.get("FixStartTime")
        self._FixEndTime = params.get("FixEndTime")
        self._FixSuccessCnt = params.get("FixSuccessCnt")
        self._FixFailCnt = params.get("FixFailCnt")
        self._HostCnt = params.get("HostCnt")
        self._FixId = params.get("FixId")
        if params.get("SnapshotList") is not None:
            self._SnapshotList = []
            for item in params.get("SnapshotList"):
                obj = VulFixStatusSnapshotInfo()
                obj._deserialize(item)
                self._SnapshotList.append(obj)
        if params.get("VulFixList") is not None:
            self._VulFixList = []
            for item in params.get("VulFixList"):
                obj = VulFixStatusInfo()
                obj._deserialize(item)
                self._VulFixList.append(obj)
        self._SnapshotProgress = params.get("SnapshotProgress")
        self._FixProgress = params.get("FixProgress")
        self._RemainingTime = params.get("RemainingTime")
        self._IsRetrySnapshot = params.get("IsRetrySnapshot")
        self._SnapshotFailCnt = params.get("SnapshotFailCnt")
        self._IsAllowRetry = params.get("IsAllowRetry")
        self._RequestId = params.get("RequestId")


class DescribeVulHostCountScanTimeRequest(AbstractModel):
    """DescribeVulHostCountScanTime请求参数结构体

    """


class DescribeVulHostCountScanTimeResponse(AbstractModel):
    """DescribeVulHostCountScanTime返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalVulCount: 总漏洞数
        :type TotalVulCount: int
        :param _VulHostCount: 漏洞影响主机数
        :type VulHostCount: int
        :param _ScanTime: 扫描时间
        :type ScanTime: str
        :param _IfFirstScan: 是否第一次检测
        :type IfFirstScan: bool
        :param _TaskId: 运行中的任务号, 没有任务则为0
        :type TaskId: int
        :param _LastFixTime: 最后一次修复漏洞的时间
        :type LastFixTime: str
        :param _hadAutoFixVul: 是否有支持自动修复的漏洞事件
        :type hadAutoFixVul: bool
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalVulCount = None
        self._VulHostCount = None
        self._ScanTime = None
        self._IfFirstScan = None
        self._TaskId = None
        self._LastFixTime = None
        self._hadAutoFixVul = None
        self._RequestId = None

    @property
    def TotalVulCount(self):
        return self._TotalVulCount

    @TotalVulCount.setter
    def TotalVulCount(self, TotalVulCount):
        self._TotalVulCount = TotalVulCount

    @property
    def VulHostCount(self):
        return self._VulHostCount

    @VulHostCount.setter
    def VulHostCount(self, VulHostCount):
        self._VulHostCount = VulHostCount

    @property
    def ScanTime(self):
        return self._ScanTime

    @ScanTime.setter
    def ScanTime(self, ScanTime):
        self._ScanTime = ScanTime

    @property
    def IfFirstScan(self):
        return self._IfFirstScan

    @IfFirstScan.setter
    def IfFirstScan(self, IfFirstScan):
        self._IfFirstScan = IfFirstScan

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def LastFixTime(self):
        return self._LastFixTime

    @LastFixTime.setter
    def LastFixTime(self, LastFixTime):
        self._LastFixTime = LastFixTime

    @property
    def hadAutoFixVul(self):
        return self._hadAutoFixVul

    @hadAutoFixVul.setter
    def hadAutoFixVul(self, hadAutoFixVul):
        self._hadAutoFixVul = hadAutoFixVul

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalVulCount = params.get("TotalVulCount")
        self._VulHostCount = params.get("VulHostCount")
        self._ScanTime = params.get("ScanTime")
        self._IfFirstScan = params.get("IfFirstScan")
        self._TaskId = params.get("TaskId")
        self._LastFixTime = params.get("LastFixTime")
        self._hadAutoFixVul = params.get("hadAutoFixVul")
        self._RequestId = params.get("RequestId")


class DescribeVulHostTopRequest(AbstractModel):
    """DescribeVulHostTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Top: 获取top值，1-100
        :type Top: int
        :param _VulCategory: 1:web-cms 漏洞，2.应用漏洞   4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞，不填或者填0时返回 1，2，4，5 的总统计数据
        :type VulCategory: int
        :param _IsFollowVul: 是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        :type IsFollowVul: int
        """
        self._Top = None
        self._VulCategory = None
        self._IsFollowVul = None

    @property
    def Top(self):
        return self._Top

    @Top.setter
    def Top(self, Top):
        self._Top = Top

    @property
    def VulCategory(self):
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IsFollowVul(self):
        return self._IsFollowVul

    @IsFollowVul.setter
    def IsFollowVul(self, IsFollowVul):
        self._IsFollowVul = IsFollowVul


    def _deserialize(self, params):
        self._Top = params.get("Top")
        self._VulCategory = params.get("VulCategory")
        self._IsFollowVul = params.get("IsFollowVul")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulHostTopResponse(AbstractModel):
    """DescribeVulHostTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulHostTopList: 服务器风险top列表
注意：此字段可能返回 null，表示取不到有效值。
        :type VulHostTopList: list of VulHostTopInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulHostTopList = None
        self._RequestId = None

    @property
    def VulHostTopList(self):
        return self._VulHostTopList

    @VulHostTopList.setter
    def VulHostTopList(self, VulHostTopList):
        self._VulHostTopList = VulHostTopList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VulHostTopList") is not None:
            self._VulHostTopList = []
            for item in params.get("VulHostTopList"):
                obj = VulHostTopInfo()
                obj._deserialize(item)
                self._VulHostTopList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulInfoCvssRequest(AbstractModel):
    """DescribeVulInfoCvss请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        """
        self._VulId = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulInfoCvssResponse(AbstractModel):
    """DescribeVulInfoCvss返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
注意：此字段可能返回 null，表示取不到有效值。
        :type VulId: int
        :param _VulName: 漏洞名称
注意：此字段可能返回 null，表示取不到有效值。
        :type VulName: str
        :param _VulLevel: 危害等级：1-低危；2-中危；3-高危；4-严重
注意：此字段可能返回 null，表示取不到有效值。
        :type VulLevel: int
        :param _VulType: 漏洞分类 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
注意：此字段可能返回 null，表示取不到有效值。
        :type VulType: int
        :param _Description: 漏洞描述信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _RepairPlan: 修复方案
注意：此字段可能返回 null，表示取不到有效值。
        :type RepairPlan: str
        :param _CveId: 漏洞CVEID
注意：此字段可能返回 null，表示取不到有效值。
        :type CveId: str
        :param _Reference: 参考链接
注意：此字段可能返回 null，表示取不到有效值。
        :type Reference: str
        :param _CVSS: CVSS信息
注意：此字段可能返回 null，表示取不到有效值。
        :type CVSS: str
        :param _PublicDate: 发布时间
注意：此字段可能返回 null，表示取不到有效值。
        :type PublicDate: str
        :param _CvssScore: Cvss分数
注意：此字段可能返回 null，表示取不到有效值。
        :type CvssScore: int
        :param _CveInfo: cvss详情
注意：此字段可能返回 null，表示取不到有效值。
        :type CveInfo: str
        :param _CvssScoreFloat: cvss 分数 浮点型
注意：此字段可能返回 null，表示取不到有效值。
        :type CvssScoreFloat: float
        :param _Labels: 漏洞标签 多个逗号分割
注意：此字段可能返回 null，表示取不到有效值。
        :type Labels: str
        :param _DefenseAttackCount: 已防御的攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type DefenseAttackCount: int
        :param _SuccessFixCount: 全网修复成功次数, 不支持自动修复的漏洞默认返回0
注意：此字段可能返回 null，表示取不到有效值。
        :type SuccessFixCount: int
        :param _FixSwitch: 修复是否支持：0-windows/linux均不支持修复 ;1-windows/linux 均支持修复 ;2-仅linux支持修复;3-仅windows支持修复
注意：此字段可能返回 null，表示取不到有效值。
        :type FixSwitch: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulId = None
        self._VulName = None
        self._VulLevel = None
        self._VulType = None
        self._Description = None
        self._RepairPlan = None
        self._CveId = None
        self._Reference = None
        self._CVSS = None
        self._PublicDate = None
        self._CvssScore = None
        self._CveInfo = None
        self._CvssScoreFloat = None
        self._Labels = None
        self._DefenseAttackCount = None
        self._SuccessFixCount = None
        self._FixSwitch = None
        self._RequestId = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def VulLevel(self):
        return self._VulLevel

    @VulLevel.setter
    def VulLevel(self, VulLevel):
        self._VulLevel = VulLevel

    @property
    def VulType(self):
        return self._VulType

    @VulType.setter
    def VulType(self, VulType):
        self._VulType = VulType

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def RepairPlan(self):
        return self._RepairPlan

    @RepairPlan.setter
    def RepairPlan(self, RepairPlan):
        self._RepairPlan = RepairPlan

    @property
    def CveId(self):
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def Reference(self):
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def CVSS(self):
        return self._CVSS

    @CVSS.setter
    def CVSS(self, CVSS):
        self._CVSS = CVSS

    @property
    def PublicDate(self):
        return self._PublicDate

    @PublicDate.setter
    def PublicDate(self, PublicDate):
        self._PublicDate = PublicDate

    @property
    def CvssScore(self):
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def CveInfo(self):
        return self._CveInfo

    @CveInfo.setter
    def CveInfo(self, CveInfo):
        self._CveInfo = CveInfo

    @property
    def CvssScoreFloat(self):
        return self._CvssScoreFloat

    @CvssScoreFloat.setter
    def CvssScoreFloat(self, CvssScoreFloat):
        self._CvssScoreFloat = CvssScoreFloat

    @property
    def Labels(self):
        return self._Labels

    @Labels.setter
    def Labels(self, Labels):
        self._Labels = Labels

    @property
    def DefenseAttackCount(self):
        return self._DefenseAttackCount

    @DefenseAttackCount.setter
    def DefenseAttackCount(self, DefenseAttackCount):
        self._DefenseAttackCount = DefenseAttackCount

    @property
    def SuccessFixCount(self):
        return self._SuccessFixCount

    @SuccessFixCount.setter
    def SuccessFixCount(self, SuccessFixCount):
        self._SuccessFixCount = SuccessFixCount

    @property
    def FixSwitch(self):
        return self._FixSwitch

    @FixSwitch.setter
    def FixSwitch(self, FixSwitch):
        self._FixSwitch = FixSwitch

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._VulName = params.get("VulName")
        self._VulLevel = params.get("VulLevel")
        self._VulType = params.get("VulType")
        self._Description = params.get("Description")
        self._RepairPlan = params.get("RepairPlan")
        self._CveId = params.get("CveId")
        self._Reference = params.get("Reference")
        self._CVSS = params.get("CVSS")
        self._PublicDate = params.get("PublicDate")
        self._CvssScore = params.get("CvssScore")
        self._CveInfo = params.get("CveInfo")
        self._CvssScoreFloat = params.get("CvssScoreFloat")
        self._Labels = params.get("Labels")
        self._DefenseAttackCount = params.get("DefenseAttackCount")
        self._SuccessFixCount = params.get("SuccessFixCount")
        self._FixSwitch = params.get("FixSwitch")
        self._RequestId = params.get("RequestId")


class DescribeVulLabelsRequest(AbstractModel):
    """DescribeVulLabels请求参数结构体

    """


class DescribeVulLabelsResponse(AbstractModel):
    """DescribeVulLabels返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 标签列表
        :type List: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._List = params.get("List")
        self._RequestId = params.get("RequestId")


class DescribeVulLevelCountRequest(AbstractModel):
    """DescribeVulLevelCount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulCategory: 1:web-cms 漏洞，2.应用漏洞 3:安全基线 4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞，不填或者填0时返回 1，2，4，5 的总统计数据
        :type VulCategory: int
        :param _IsFollowVul: 是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        :type IsFollowVul: int
        """
        self._VulCategory = None
        self._IsFollowVul = None

    @property
    def VulCategory(self):
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IsFollowVul(self):
        return self._IsFollowVul

    @IsFollowVul.setter
    def IsFollowVul(self, IsFollowVul):
        self._IsFollowVul = IsFollowVul


    def _deserialize(self, params):
        self._VulCategory = params.get("VulCategory")
        self._IsFollowVul = params.get("IsFollowVul")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulLevelCountResponse(AbstractModel):
    """DescribeVulLevelCount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulLevelList: 统计结果
注意：此字段可能返回 null，表示取不到有效值。
        :type VulLevelList: list of VulLevelInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulLevelList = None
        self._RequestId = None

    @property
    def VulLevelList(self):
        return self._VulLevelList

    @VulLevelList.setter
    def VulLevelList(self, VulLevelList):
        self._VulLevelList = VulLevelList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VulLevelList") is not None:
            self._VulLevelList = []
            for item in params.get("VulLevelList"):
                obj = VulLevelInfo()
                obj._deserialize(item)
                self._VulLevelList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulListRequest(AbstractModel):
    """DescribeVulList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 返回数量，最大值为100。
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :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: list of Filters
        :param _By: 可选排序字段 Level，LastTime，HostCount
        :type By: str
        :param _Order: 排序顺序：desc  默认asc
        :type Order: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._By = None
        self._Order = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._By = params.get("By")
        self._Order = params.get("Order")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulListResponse(AbstractModel):
    """DescribeVulList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulInfoList: 漏洞列表
注意：此字段可能返回 null，表示取不到有效值。
        :type VulInfoList: list of VulInfoList
        :param _TotalCount: 漏洞总条数
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _FollowVulCount: 重点关注漏洞总数
注意：此字段可能返回 null，表示取不到有效值。
        :type FollowVulCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulInfoList = None
        self._TotalCount = None
        self._FollowVulCount = None
        self._RequestId = None

    @property
    def VulInfoList(self):
        return self._VulInfoList

    @VulInfoList.setter
    def VulInfoList(self, VulInfoList):
        self._VulInfoList = VulInfoList

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def FollowVulCount(self):
        return self._FollowVulCount

    @FollowVulCount.setter
    def FollowVulCount(self, FollowVulCount):
        self._FollowVulCount = FollowVulCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VulInfoList") is not None:
            self._VulInfoList = []
            for item in params.get("VulInfoList"):
                obj = VulInfoList()
                obj._deserialize(item)
                self._VulInfoList.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._FollowVulCount = params.get("FollowVulCount")
        self._RequestId = params.get("RequestId")


class DescribeVulOverviewRequest(AbstractModel):
    """DescribeVulOverview请求参数结构体

    """


class DescribeVulOverviewResponse(AbstractModel):
    """DescribeVulOverview返回参数结构体

    """

    def __init__(self):
        r"""
        :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: str
        """
        self._FollowVul = None
        self._AllVul = None
        self._EffectHost = None
        self._VulAttackEvent = None
        self._VulDefenceEvent = None
        self._VulStore = None
        self._RequestId = None

    @property
    def FollowVul(self):
        return self._FollowVul

    @FollowVul.setter
    def FollowVul(self, FollowVul):
        self._FollowVul = FollowVul

    @property
    def AllVul(self):
        return self._AllVul

    @AllVul.setter
    def AllVul(self, AllVul):
        self._AllVul = AllVul

    @property
    def EffectHost(self):
        return self._EffectHost

    @EffectHost.setter
    def EffectHost(self, EffectHost):
        self._EffectHost = EffectHost

    @property
    def VulAttackEvent(self):
        return self._VulAttackEvent

    @VulAttackEvent.setter
    def VulAttackEvent(self, VulAttackEvent):
        self._VulAttackEvent = VulAttackEvent

    @property
    def VulDefenceEvent(self):
        return self._VulDefenceEvent

    @VulDefenceEvent.setter
    def VulDefenceEvent(self, VulDefenceEvent):
        self._VulDefenceEvent = VulDefenceEvent

    @property
    def VulStore(self):
        return self._VulStore

    @VulStore.setter
    def VulStore(self, VulStore):
        self._VulStore = VulStore

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FollowVul") is not None:
            self._FollowVul = VulOverview()
            self._FollowVul._deserialize(params.get("FollowVul"))
        if params.get("AllVul") is not None:
            self._AllVul = VulOverview()
            self._AllVul._deserialize(params.get("AllVul"))
        if params.get("EffectHost") is not None:
            self._EffectHost = VulOverview()
            self._EffectHost._deserialize(params.get("EffectHost"))
        if params.get("VulAttackEvent") is not None:
            self._VulAttackEvent = VulOverview()
            self._VulAttackEvent._deserialize(params.get("VulAttackEvent"))
        if params.get("VulDefenceEvent") is not None:
            self._VulDefenceEvent = VulOverview()
            self._VulDefenceEvent._deserialize(params.get("VulDefenceEvent"))
        if params.get("VulStore") is not None:
            self._VulStore = VulOverview()
            self._VulStore._deserialize(params.get("VulStore"))
        self._RequestId = params.get("RequestId")


class DescribeVulStoreListRequest(AbstractModel):
    """DescribeVulStoreList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Limit: 限制条数,默认10,最大100
        :type Limit: int
        :param _Offset: 偏移量,默认0
        :type Offset: int
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [PublishDate]
        :type By: str
        """
        self._Filters = None
        self._Limit = None
        self._Offset = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulStoreListResponse(AbstractModel):
    """DescribeVulStoreList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 漏洞信息
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of VulStoreListInfo
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _Remaining: 今日剩余搜索此时
        :type Remaining: int
        :param _FreeSearchTimes: 免费搜索次数
        :type FreeSearchTimes: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._Remaining = None
        self._FreeSearchTimes = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def Remaining(self):
        return self._Remaining

    @Remaining.setter
    def Remaining(self, Remaining):
        self._Remaining = Remaining

    @property
    def FreeSearchTimes(self):
        return self._FreeSearchTimes

    @FreeSearchTimes.setter
    def FreeSearchTimes(self, FreeSearchTimes):
        self._FreeSearchTimes = FreeSearchTimes

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = VulStoreListInfo()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._Remaining = params.get("Remaining")
        self._FreeSearchTimes = params.get("FreeSearchTimes")
        self._RequestId = params.get("RequestId")


class DescribeVulTopRequest(AbstractModel):
    """DescribeVulTop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Top: 漏洞风险服务器top，1-100
        :type Top: int
        :param _VulCategory: 1:web-cms 漏洞，2.应用漏洞 4: Linux软件漏洞 5: windows系统漏洞 6:应急漏洞，不填或者填0时返回 1，2，4，5 的总统计数据
        :type VulCategory: int
        :param _IsFollowVul: 是否仅统计重点关注漏洞 1=仅统计重点关注漏洞, 0=统计全部漏洞
        :type IsFollowVul: int
        """
        self._Top = None
        self._VulCategory = None
        self._IsFollowVul = None

    @property
    def Top(self):
        return self._Top

    @Top.setter
    def Top(self, Top):
        self._Top = Top

    @property
    def VulCategory(self):
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def IsFollowVul(self):
        return self._IsFollowVul

    @IsFollowVul.setter
    def IsFollowVul(self, IsFollowVul):
        self._IsFollowVul = IsFollowVul


    def _deserialize(self, params):
        self._Top = params.get("Top")
        self._VulCategory = params.get("VulCategory")
        self._IsFollowVul = params.get("IsFollowVul")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeVulTopResponse(AbstractModel):
    """DescribeVulTop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulTopList: 漏洞top列表
注意：此字段可能返回 null，表示取不到有效值。
        :type VulTopList: list of VulTopInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulTopList = None
        self._RequestId = None

    @property
    def VulTopList(self):
        return self._VulTopList

    @VulTopList.setter
    def VulTopList(self, VulTopList):
        self._VulTopList = VulTopList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("VulTopList") is not None:
            self._VulTopList = []
            for item in params.get("VulTopList"):
                obj = VulTopInfo()
                obj._deserialize(item)
                self._VulTopList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeVulTrendRequest(AbstractModel):
    """DescribeVulTrend请求参数结构体

    """


class DescribeVulTrendResponse(AbstractModel):
    """DescribeVulTrend返回参数结构体

    """

    def __init__(self):
        r"""
        :param _VulEventCount: 近半年漏洞利用攻击事件数量
        :type VulEventCount: int
        :param _IncreaseVulEventCount: 近半年新增漏洞利用攻击事件数量
        :type IncreaseVulEventCount: int
        :param _HotVulCount: 近半年热点攻击漏洞
        :type HotVulCount: int
        :param _IncreaseHotVulCount: 近半年新增热点攻击漏洞
        :type IncreaseHotVulCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._VulEventCount = None
        self._IncreaseVulEventCount = None
        self._HotVulCount = None
        self._IncreaseHotVulCount = None
        self._RequestId = None

    @property
    def VulEventCount(self):
        return self._VulEventCount

    @VulEventCount.setter
    def VulEventCount(self, VulEventCount):
        self._VulEventCount = VulEventCount

    @property
    def IncreaseVulEventCount(self):
        return self._IncreaseVulEventCount

    @IncreaseVulEventCount.setter
    def IncreaseVulEventCount(self, IncreaseVulEventCount):
        self._IncreaseVulEventCount = IncreaseVulEventCount

    @property
    def HotVulCount(self):
        return self._HotVulCount

    @HotVulCount.setter
    def HotVulCount(self, HotVulCount):
        self._HotVulCount = HotVulCount

    @property
    def IncreaseHotVulCount(self):
        return self._IncreaseHotVulCount

    @IncreaseHotVulCount.setter
    def IncreaseHotVulCount(self, IncreaseHotVulCount):
        self._IncreaseHotVulCount = IncreaseHotVulCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._VulEventCount = params.get("VulEventCount")
        self._IncreaseVulEventCount = params.get("IncreaseVulEventCount")
        self._HotVulCount = params.get("HotVulCount")
        self._IncreaseHotVulCount = params.get("IncreaseHotVulCount")
        self._RequestId = params.get("RequestId")


class DescribeWarningHostConfigRequest(AbstractModel):
    """DescribeWarningHostConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Type: 告警类型
        :type Type: int
        :param _Limit: 分页单页限制数目, 0表示不分页
        :type Limit: int
        :param _Offset: 分页的偏移量，默认值为0
        :type Offset: int
        """
        self._Type = None
        self._Limit = None
        self._Offset = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeWarningHostConfigResponse(AbstractModel):
    """DescribeWarningHostConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _HostRange: 告警主机范围类型，0:全部主机，1:按所属项目选，2:按腾讯云标签选，3:按主机安全标签选，4:自选主机
        :type HostRange: int
        :param _ItemLabels: 项目或标签的名称列表，自选主机时为空
注意：此字段可能返回 null，表示取不到有效值。
        :type ItemLabels: list of str
        :param _Quuids: 机器列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuids: list of str
        :param _TotalCount: 机器列表总数量
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _ItemLabelIds: 项目或标签的id列表，自选主机时为空
注意：此字段可能返回 null，表示取不到有效值。
        :type ItemLabelIds: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._HostRange = None
        self._ItemLabels = None
        self._Quuids = None
        self._TotalCount = None
        self._ItemLabelIds = None
        self._RequestId = None

    @property
    def HostRange(self):
        return self._HostRange

    @HostRange.setter
    def HostRange(self, HostRange):
        self._HostRange = HostRange

    @property
    def ItemLabels(self):
        return self._ItemLabels

    @ItemLabels.setter
    def ItemLabels(self, ItemLabels):
        self._ItemLabels = ItemLabels

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ItemLabelIds(self):
        return self._ItemLabelIds

    @ItemLabelIds.setter
    def ItemLabelIds(self, ItemLabelIds):
        self._ItemLabelIds = ItemLabelIds

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._HostRange = params.get("HostRange")
        self._ItemLabels = params.get("ItemLabels")
        self._Quuids = params.get("Quuids")
        self._TotalCount = params.get("TotalCount")
        self._ItemLabelIds = params.get("ItemLabelIds")
        self._RequestId = params.get("RequestId")


class DescribeWarningListRequest(AbstractModel):
    """DescribeWarningList请求参数结构体

    """


class DescribeWarningListResponse(AbstractModel):
    """DescribeWarningList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WarningInfoList: 获取告警列表
        :type WarningInfoList: list of WarningInfoObj
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WarningInfoList = None
        self._RequestId = None

    @property
    def WarningInfoList(self):
        return self._WarningInfoList

    @WarningInfoList.setter
    def WarningInfoList(self, WarningInfoList):
        self._WarningInfoList = WarningInfoList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("WarningInfoList") is not None:
            self._WarningInfoList = []
            for item in params.get("WarningInfoList"):
                obj = WarningInfoObj()
                obj._deserialize(item)
                self._WarningInfoList.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeWebHookPolicyRequest(AbstractModel):
    """DescribeWebHookPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filter: 过滤条件
        :type Filter: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式 [asc:升序|desc:降序]
        :type Order: str
        :param _By: 排序字段
        :type By: str
        """
        self._Filter = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filter(self):
        return self._Filter

    @Filter.setter
    def Filter(self, Filter):
        self._Filter = Filter

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filter") is not None:
            self._Filter = []
            for item in params.get("Filter"):
                obj = Filter()
                obj._deserialize(item)
                self._Filter.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeWebHookPolicyResponse(AbstractModel):
    """DescribeWebHookPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 策略列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of WebHookPolicy
        :param _TotalCount: 策略列表总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = WebHookPolicy()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeWebHookReceiverRequest(AbstractModel):
    """DescribeWebHookReceiver请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filter: 过滤条件
        :type Filter: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式 [asc:升序|desc:降序]
        :type Order: str
        :param _By: 排序字段
        :type By: str
        """
        self._Filter = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filter(self):
        return self._Filter

    @Filter.setter
    def Filter(self, Filter):
        self._Filter = Filter

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filter") is not None:
            self._Filter = []
            for item in params.get("Filter"):
                obj = Filter()
                obj._deserialize(item)
                self._Filter.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeWebHookReceiverResponse(AbstractModel):
    """DescribeWebHookReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 告警接收人列表
        :type List: list of WebHookReceiver
        :param _TotalCount: 个数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = WebHookReceiver()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeWebHookReceiverUsageRequest(AbstractModel):
    """DescribeWebHookReceiverUsage请求参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 告警接收人列表
        :type List: list of WebHookReceiver
        """
        self._List = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = WebHookReceiver()
                obj._deserialize(item)
                self._List.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeWebHookReceiverUsageResponse(AbstractModel):
    """DescribeWebHookReceiverUsage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 告警接收人的关联策略使用信息
        :type List: list of WebHookReceiverUsage
        :param _TotalCount: 个数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = WebHookReceiverUsage()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeWebHookRuleRequest(AbstractModel):
    """DescribeWebHookRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则Id
        :type Id: int
        """
        self._Id = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeWebHookRuleResponse(AbstractModel):
    """DescribeWebHookRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 规则内容
        :type Data: :class:`tencentcloud.cwp.v20180228.models.WebHookRuleDetail`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Data = None
        self._RequestId = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = WebHookRuleDetail()
            self._Data._deserialize(params.get("Data"))
        self._RequestId = params.get("RequestId")


class DescribeWebHookRulesRequest(AbstractModel):
    """DescribeWebHookRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filter: 过滤条件
        :type Filter: list of Filter
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Order: 排序方式 [asc:升序|desc:降序]
        :type Order: str
        :param _By: 排序字段
        :type By: str
        """
        self._Filter = None
        self._Offset = None
        self._Limit = None
        self._Order = None
        self._By = None

    @property
    def Filter(self):
        return self._Filter

    @Filter.setter
    def Filter(self, Filter):
        self._Filter = Filter

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filter") is not None:
            self._Filter = []
            for item in params.get("Filter"):
                obj = Filter()
                obj._deserialize(item)
                self._Filter.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeWebHookRulesResponse(AbstractModel):
    """DescribeWebHookRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _List: 规则内容
        :type List: list of WebHookRuleSummary
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._List = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = WebHookRuleSummary()
                obj._deserialize(item)
                self._List.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeWebPageEventListRequest(AbstractModel):
    """DescribeWebPageEventList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>EventType - String - 是否必填：否 - 事件类型</li>
<li>EventStatus - String - 是否必填：否 - 事件状态</li>
        :type Filters: list of AssetFilters
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        :param _Limit: 返回数量，默认为10，最大值为100。
        :type Limit: int
        :param _By: 排序方式：CreateTime 或 RestoreTime，默认为CreateTime
        :type By: str
        :param _Order: 排序方式，0降序，1升序，默认为0
        :type Order: int
        """
        self._Filters = None
        self._Offset = None
        self._Limit = None
        self._By = None
        self._Order = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._By = params.get("By")
        self._Order = params.get("Order")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeWebPageEventListResponse(AbstractModel):
    """DescribeWebPageEventList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _List: 防护事件列表信息
        :type List: list of ProtectEventLists
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._List = None
        self._TotalCount = None
        self._RequestId = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = ProtectEventLists()
                obj._deserialize(item)
                self._List.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RequestId = params.get("RequestId")


class DescribeWebPageGeneralizeRequest(AbstractModel):
    """DescribeWebPageGeneralize请求参数结构体

    """


class DescribeWebPageGeneralizeResponse(AbstractModel):
    """DescribeWebPageGeneralize返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ProtectMonitor: 防护监测 0 未开启 1 已开启 2 异常
        :type ProtectMonitor: int
        :param _ProtectDirNum: 防护目录数
        :type ProtectDirNum: int
        :param _ProtectFileNum: 防护文件数
        :type ProtectFileNum: int
        :param _TamperFileNum: 篡改文件数
        :type TamperFileNum: int
        :param _TamperNum: 篡改数
        :type TamperNum: int
        :param _ProtectToday: 今日防护数
        :type ProtectToday: int
        :param _ProtectHostNum: 防护主机数
        :type ProtectHostNum: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ProtectMonitor = None
        self._ProtectDirNum = None
        self._ProtectFileNum = None
        self._TamperFileNum = None
        self._TamperNum = None
        self._ProtectToday = None
        self._ProtectHostNum = None
        self._RequestId = None

    @property
    def ProtectMonitor(self):
        return self._ProtectMonitor

    @ProtectMonitor.setter
    def ProtectMonitor(self, ProtectMonitor):
        self._ProtectMonitor = ProtectMonitor

    @property
    def ProtectDirNum(self):
        return self._ProtectDirNum

    @ProtectDirNum.setter
    def ProtectDirNum(self, ProtectDirNum):
        self._ProtectDirNum = ProtectDirNum

    @property
    def ProtectFileNum(self):
        return self._ProtectFileNum

    @ProtectFileNum.setter
    def ProtectFileNum(self, ProtectFileNum):
        self._ProtectFileNum = ProtectFileNum

    @property
    def TamperFileNum(self):
        return self._TamperFileNum

    @TamperFileNum.setter
    def TamperFileNum(self, TamperFileNum):
        self._TamperFileNum = TamperFileNum

    @property
    def TamperNum(self):
        return self._TamperNum

    @TamperNum.setter
    def TamperNum(self, TamperNum):
        self._TamperNum = TamperNum

    @property
    def ProtectToday(self):
        return self._ProtectToday

    @ProtectToday.setter
    def ProtectToday(self, ProtectToday):
        self._ProtectToday = ProtectToday

    @property
    def ProtectHostNum(self):
        return self._ProtectHostNum

    @ProtectHostNum.setter
    def ProtectHostNum(self, ProtectHostNum):
        self._ProtectHostNum = ProtectHostNum

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ProtectMonitor = params.get("ProtectMonitor")
        self._ProtectDirNum = params.get("ProtectDirNum")
        self._ProtectFileNum = params.get("ProtectFileNum")
        self._TamperFileNum = params.get("TamperFileNum")
        self._TamperNum = params.get("TamperNum")
        self._ProtectToday = params.get("ProtectToday")
        self._ProtectHostNum = params.get("ProtectHostNum")
        self._RequestId = params.get("RequestId")


class DescribeWebPageProtectStatRequest(AbstractModel):
    """DescribeWebPageProtectStat请求参数结构体

    """


class DescribeWebPageProtectStatResponse(AbstractModel):
    """DescribeWebPageProtectStat返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileTamperNum: 文件篡改信息
        :type FileTamperNum: list of ProtectStat
        :param _ProtectFileType: 防护文件分类信息
        :type ProtectFileType: list of ProtectStat
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileTamperNum = None
        self._ProtectFileType = None
        self._RequestId = None

    @property
    def FileTamperNum(self):
        return self._FileTamperNum

    @FileTamperNum.setter
    def FileTamperNum(self, FileTamperNum):
        self._FileTamperNum = FileTamperNum

    @property
    def ProtectFileType(self):
        return self._ProtectFileType

    @ProtectFileType.setter
    def ProtectFileType(self, ProtectFileType):
        self._ProtectFileType = ProtectFileType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("FileTamperNum") is not None:
            self._FileTamperNum = []
            for item in params.get("FileTamperNum"):
                obj = ProtectStat()
                obj._deserialize(item)
                self._FileTamperNum.append(obj)
        if params.get("ProtectFileType") is not None:
            self._ProtectFileType = []
            for item in params.get("ProtectFileType"):
                obj = ProtectStat()
                obj._deserialize(item)
                self._ProtectFileType.append(obj)
        self._RequestId = params.get("RequestId")


class DescribeWebPageServiceInfoRequest(AbstractModel):
    """DescribeWebPageServiceInfo请求参数结构体

    """


class DescribeWebPageServiceInfoResponse(AbstractModel):
    """DescribeWebPageServiceInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 是否已购服务：true-是，false-否
        :type Status: bool
        :param _UsedNum: 已使用授权数
        :type UsedNum: int
        :param _ResidueNum: 剩余授权数
        :type ResidueNum: int
        :param _BuyNum: 已购授权数
        :type BuyNum: int
        :param _ExpireNum: 临近到期数量
        :type ExpireNum: int
        :param _AllAuthorizedMachines: 所有授权机器信息
        :type AllAuthorizedMachines: list of ProtectMachineInfo
        :param _ExpireAuthorizedMachines: 临近到期授权机器信息
        :type ExpireAuthorizedMachines: list of ProtectMachine
        :param _ExpiredNum: 已过期授权数
        :type ExpiredNum: int
        :param _ProtectDirNum: 防护目录数
        :type ProtectDirNum: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._UsedNum = None
        self._ResidueNum = None
        self._BuyNum = None
        self._ExpireNum = None
        self._AllAuthorizedMachines = None
        self._ExpireAuthorizedMachines = None
        self._ExpiredNum = None
        self._ProtectDirNum = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def UsedNum(self):
        return self._UsedNum

    @UsedNum.setter
    def UsedNum(self, UsedNum):
        self._UsedNum = UsedNum

    @property
    def ResidueNum(self):
        return self._ResidueNum

    @ResidueNum.setter
    def ResidueNum(self, ResidueNum):
        self._ResidueNum = ResidueNum

    @property
    def BuyNum(self):
        return self._BuyNum

    @BuyNum.setter
    def BuyNum(self, BuyNum):
        self._BuyNum = BuyNum

    @property
    def ExpireNum(self):
        return self._ExpireNum

    @ExpireNum.setter
    def ExpireNum(self, ExpireNum):
        self._ExpireNum = ExpireNum

    @property
    def AllAuthorizedMachines(self):
        return self._AllAuthorizedMachines

    @AllAuthorizedMachines.setter
    def AllAuthorizedMachines(self, AllAuthorizedMachines):
        self._AllAuthorizedMachines = AllAuthorizedMachines

    @property
    def ExpireAuthorizedMachines(self):
        return self._ExpireAuthorizedMachines

    @ExpireAuthorizedMachines.setter
    def ExpireAuthorizedMachines(self, ExpireAuthorizedMachines):
        self._ExpireAuthorizedMachines = ExpireAuthorizedMachines

    @property
    def ExpiredNum(self):
        return self._ExpiredNum

    @ExpiredNum.setter
    def ExpiredNum(self, ExpiredNum):
        self._ExpiredNum = ExpiredNum

    @property
    def ProtectDirNum(self):
        return self._ProtectDirNum

    @ProtectDirNum.setter
    def ProtectDirNum(self, ProtectDirNum):
        self._ProtectDirNum = ProtectDirNum

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._UsedNum = params.get("UsedNum")
        self._ResidueNum = params.get("ResidueNum")
        self._BuyNum = params.get("BuyNum")
        self._ExpireNum = params.get("ExpireNum")
        if params.get("AllAuthorizedMachines") is not None:
            self._AllAuthorizedMachines = []
            for item in params.get("AllAuthorizedMachines"):
                obj = ProtectMachineInfo()
                obj._deserialize(item)
                self._AllAuthorizedMachines.append(obj)
        if params.get("ExpireAuthorizedMachines") is not None:
            self._ExpireAuthorizedMachines = []
            for item in params.get("ExpireAuthorizedMachines"):
                obj = ProtectMachine()
                obj._deserialize(item)
                self._ExpireAuthorizedMachines.append(obj)
        self._ExpiredNum = params.get("ExpiredNum")
        self._ProtectDirNum = params.get("ProtectDirNum")
        self._RequestId = params.get("RequestId")


class DestroyOrderRequest(AbstractModel):
    """DestroyOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _LicenseType: 授权类型 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        :type LicenseType: int
        """
        self._ResourceId = None
        self._LicenseType = None

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType


    def _deserialize(self, params):
        self._ResourceId = params.get("ResourceId")
        self._LicenseType = params.get("LicenseType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DestroyOrderResponse(AbstractModel):
    """DestroyOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DuplicateHosts(AbstractModel):
    """批量添加白名单：重复情况重复列表实体

    """

    def __init__(self):
        r"""
        :param _Quuid: Quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _Uuid: Uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _Id: Id
        :type Id: int
        """
        self._Quuid = None
        self._Uuid = None
        self._Id = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EditBashRulesRequest(AbstractModel):
    """EditBashRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID（新增时不填）
        :type Id: int
        :param _Uuids: 客户端ID数组
        :type Uuids: list of str
        :param _HostIp: 主机IP
        :type HostIp: str
        :param _Name: 规则名称，编辑时不可修改规则名称
        :type Name: str
        :param _Level: 危险等级(0:无，1: 高危 2:中危 3: 低危)
        :type Level: int
        :param _Rule: 正则表达式 ，编辑时不可修改正则表达式，需要对内容QueryEscape后再base64
        :type Rule: str
        :param _IsGlobal: 是否全局规则(默认否)：1-全局，0-非全局
        :type IsGlobal: int
        :param _White: 0=黑名单， 1=白名单
        :type White: int
        :param _EventId: 事件列表点击“加入白名单”时,需要传EventId 事件的id
        :type EventId: int
        :param _DealOldEvents: 是否处理旧事件为白名单 0=不处理 1=处理
        :type DealOldEvents: int
        """
        self._Id = None
        self._Uuids = None
        self._HostIp = None
        self._Name = None
        self._Level = None
        self._Rule = None
        self._IsGlobal = None
        self._White = None
        self._EventId = None
        self._DealOldEvents = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def White(self):
        return self._White

    @White.setter
    def White(self, White):
        self._White = White

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def DealOldEvents(self):
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuids = params.get("Uuids")
        self._HostIp = params.get("HostIp")
        self._Name = params.get("Name")
        self._Level = params.get("Level")
        self._Rule = params.get("Rule")
        self._IsGlobal = params.get("IsGlobal")
        self._White = params.get("White")
        self._EventId = params.get("EventId")
        self._DealOldEvents = params.get("DealOldEvents")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EditBashRulesResponse(AbstractModel):
    """EditBashRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EditPrivilegeRulesRequest(AbstractModel):
    """EditPrivilegeRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID(新增时请留空)
        :type Id: int
        :param _Uuids: 客户端ID数组
        :type Uuids: list of str
        :param _HostIp: 主机IP
        :type HostIp: str
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _SMode: 是否S权限进程
        :type SMode: int
        :param _IsGlobal: 是否全局规则(默认否)
        :type IsGlobal: int
        :param _EventId: 事件列表和详情点击加白时关联的事件id (新增规则时请留空)
        :type EventId: int
        """
        self._Id = None
        self._Uuids = None
        self._HostIp = None
        self._ProcessName = None
        self._SMode = None
        self._IsGlobal = None
        self._EventId = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def SMode(self):
        return self._SMode

    @SMode.setter
    def SMode(self, SMode):
        self._SMode = SMode

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuids = params.get("Uuids")
        self._HostIp = params.get("HostIp")
        self._ProcessName = params.get("ProcessName")
        self._SMode = params.get("SMode")
        self._IsGlobal = params.get("IsGlobal")
        self._EventId = params.get("EventId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EditPrivilegeRulesResponse(AbstractModel):
    """EditPrivilegeRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EditReverseShellRulesRequest(AbstractModel):
    """EditReverseShellRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID(新增时请留空)
        :type Id: int
        :param _Uuids: 客户端ID数组
        :type Uuids: list of str
        :param _HostIp: 主机IP
        :type HostIp: str
        :param _DestIp: 目标IP
        :type DestIp: str
        :param _DestPort: 目标端口
        :type DestPort: str
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _IsGlobal: 是否全局规则(默认否)
        :type IsGlobal: int
        :param _EventId: 事件列表和详情点击加白时关联的事件id (新增规则时请留空)
        :type EventId: int
        """
        self._Id = None
        self._Uuids = None
        self._HostIp = None
        self._DestIp = None
        self._DestPort = None
        self._ProcessName = None
        self._IsGlobal = None
        self._EventId = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def DestIp(self):
        return self._DestIp

    @DestIp.setter
    def DestIp(self, DestIp):
        self._DestIp = DestIp

    @property
    def DestPort(self):
        return self._DestPort

    @DestPort.setter
    def DestPort(self, DestPort):
        self._DestPort = DestPort

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuids = params.get("Uuids")
        self._HostIp = params.get("HostIp")
        self._DestIp = params.get("DestIp")
        self._DestPort = params.get("DestPort")
        self._ProcessName = params.get("ProcessName")
        self._IsGlobal = params.get("IsGlobal")
        self._EventId = params.get("EventId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EditReverseShellRulesResponse(AbstractModel):
    """EditReverseShellRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EditTagsRequest(AbstractModel):
    """EditTags请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 标签名
        :type Name: str
        :param _Id: 标签ID
        :type Id: int
        :param _Quuids: Quuid
        :type Quuids: list of str
        """
        self._Name = None
        self._Id = None
        self._Quuids = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Id = params.get("Id")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EditTagsResponse(AbstractModel):
    """EditTags返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class EffectiveMachineInfo(AbstractModel):
    """批量导入机器信息.

    """

    def __init__(self):
        r"""
        :param _MachineName: 机器名称
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineName: str
        :param _MachinePublicIp: 机器公网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachinePublicIp: str
        :param _MachinePrivateIp: 机器内网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachinePrivateIp: str
        :param _MachineTag: 机器标签
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineTag: list of MachineTag
        :param _Quuid: 机器Quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _Uuid: 云镜Uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _KernelVersion: 内核版本号
注意：此字段可能返回 null，表示取不到有效值。
        :type KernelVersion: str
        :param _MachineStatus: 在线状态 OFFLINE，ONLINE
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineStatus: str
        :param _LicenseOrder: 授权订单对象
注意：此字段可能返回 null，表示取不到有效值。
        :type LicenseOrder: :class:`tencentcloud.cwp.v20180228.models.LicenseOrder`
        :param _VulNum: 漏洞数量
注意：此字段可能返回 null，表示取不到有效值。
        :type VulNum: int
        :param _CloudTags: 云标签信息
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudTags: list of Tags
        :param _InstanceID: 机器instance ID
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceID: str
        """
        self._MachineName = None
        self._MachinePublicIp = None
        self._MachinePrivateIp = None
        self._MachineTag = None
        self._Quuid = None
        self._Uuid = None
        self._KernelVersion = None
        self._MachineStatus = None
        self._LicenseOrder = None
        self._VulNum = None
        self._CloudTags = None
        self._InstanceID = None

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachinePublicIp(self):
        return self._MachinePublicIp

    @MachinePublicIp.setter
    def MachinePublicIp(self, MachinePublicIp):
        self._MachinePublicIp = MachinePublicIp

    @property
    def MachinePrivateIp(self):
        return self._MachinePrivateIp

    @MachinePrivateIp.setter
    def MachinePrivateIp(self, MachinePrivateIp):
        self._MachinePrivateIp = MachinePrivateIp

    @property
    def MachineTag(self):
        return self._MachineTag

    @MachineTag.setter
    def MachineTag(self, MachineTag):
        self._MachineTag = MachineTag

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def KernelVersion(self):
        return self._KernelVersion

    @KernelVersion.setter
    def KernelVersion(self, KernelVersion):
        self._KernelVersion = KernelVersion

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def LicenseOrder(self):
        return self._LicenseOrder

    @LicenseOrder.setter
    def LicenseOrder(self, LicenseOrder):
        self._LicenseOrder = LicenseOrder

    @property
    def VulNum(self):
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def CloudTags(self):
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def InstanceID(self):
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID


    def _deserialize(self, params):
        self._MachineName = params.get("MachineName")
        self._MachinePublicIp = params.get("MachinePublicIp")
        self._MachinePrivateIp = params.get("MachinePrivateIp")
        if params.get("MachineTag") is not None:
            self._MachineTag = []
            for item in params.get("MachineTag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._MachineTag.append(obj)
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._KernelVersion = params.get("KernelVersion")
        self._MachineStatus = params.get("MachineStatus")
        if params.get("LicenseOrder") is not None:
            self._LicenseOrder = LicenseOrder()
            self._LicenseOrder._deserialize(params.get("LicenseOrder"))
        self._VulNum = params.get("VulNum")
        if params.get("CloudTags") is not None:
            self._CloudTags = []
            for item in params.get("CloudTags"):
                obj = Tags()
                obj._deserialize(item)
                self._CloudTags.append(obj)
        self._InstanceID = params.get("InstanceID")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EmergencyResponseInfo(AbstractModel):
    """专家服务-应急响应信息

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: str
        :param _HostNum: 主机个数
        :type HostNum: int
        :param _Status: 服务状态 0未启动，·响应中，2响应完成
        :type Status: int
        :param _StartTime: 服务开始时间
        :type StartTime: str
        :param _EndTime: 服务结束时间
        :type EndTime: str
        :param _ReportPath: 报告下载地址
        :type ReportPath: str
        """
        self._TaskId = None
        self._HostNum = None
        self._Status = None
        self._StartTime = None
        self._EndTime = None
        self._ReportPath = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def HostNum(self):
        return self._HostNum

    @HostNum.setter
    def HostNum(self, HostNum):
        self._HostNum = HostNum

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def ReportPath(self):
        return self._ReportPath

    @ReportPath.setter
    def ReportPath(self, ReportPath):
        self._ReportPath = ReportPath


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._HostNum = params.get("HostNum")
        self._Status = params.get("Status")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._ReportPath = params.get("ReportPath")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EmergencyVul(AbstractModel):
    """应急漏洞信息

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _Level: 漏洞级别
        :type Level: int
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _PublishDate: 发布日期
        :type PublishDate: str
        :param _Category: 漏洞分类
        :type Category: int
        :param _Status: 漏洞状态 0未检测 1有风险 ，2无风险 ，3 检查中展示progress
        :type Status: int
        :param _LastScanTime: 最后扫描时间
        :type LastScanTime: str
        :param _Progress: 扫描进度
        :type Progress: int
        :param _CveId: cve编号
注意：此字段可能返回 null，表示取不到有效值。
        :type CveId: str
        :param _CvssScore: CVSS评分
注意：此字段可能返回 null，表示取不到有效值。
        :type CvssScore: float
        :param _Labels: 漏洞标签 多个逗号分割
注意：此字段可能返回 null，表示取不到有效值。
        :type Labels: str
        :param _HostCount: 影响机器数
注意：此字段可能返回 null，表示取不到有效值。
        :type HostCount: int
        :param _IsSupportDefense: 是否支持防御， 0:不支持 1:支持
注意：此字段可能返回 null，表示取不到有效值。
        :type IsSupportDefense: int
        :param _DefenseAttackCount: 已防御的攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type DefenseAttackCount: int
        :param _Method: 检测规则 0 - 版本比对, 1 - POC验证
注意：此字段可能返回 null，表示取不到有效值。
        :type Method: int
        :param _AttackLevel: 攻击热度级别
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackLevel: int
        :param _DefenseState: 是否有漏洞主机开启漏洞防御
注意：此字段可能返回 null，表示取不到有效值。
        :type DefenseState: bool
        """
        self._VulId = None
        self._Level = None
        self._VulName = None
        self._PublishDate = None
        self._Category = None
        self._Status = None
        self._LastScanTime = None
        self._Progress = None
        self._CveId = None
        self._CvssScore = None
        self._Labels = None
        self._HostCount = None
        self._IsSupportDefense = None
        self._DefenseAttackCount = None
        self._Method = None
        self._AttackLevel = None
        self._DefenseState = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def PublishDate(self):
        return self._PublishDate

    @PublishDate.setter
    def PublishDate(self, PublishDate):
        self._PublishDate = PublishDate

    @property
    def Category(self):
        return self._Category

    @Category.setter
    def Category(self, Category):
        self._Category = Category

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def LastScanTime(self):
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def Progress(self):
        return self._Progress

    @Progress.setter
    def Progress(self, Progress):
        self._Progress = Progress

    @property
    def CveId(self):
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def CvssScore(self):
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def Labels(self):
        return self._Labels

    @Labels.setter
    def Labels(self, Labels):
        self._Labels = Labels

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def IsSupportDefense(self):
        return self._IsSupportDefense

    @IsSupportDefense.setter
    def IsSupportDefense(self, IsSupportDefense):
        self._IsSupportDefense = IsSupportDefense

    @property
    def DefenseAttackCount(self):
        return self._DefenseAttackCount

    @DefenseAttackCount.setter
    def DefenseAttackCount(self, DefenseAttackCount):
        self._DefenseAttackCount = DefenseAttackCount

    @property
    def Method(self):
        return self._Method

    @Method.setter
    def Method(self, Method):
        self._Method = Method

    @property
    def AttackLevel(self):
        return self._AttackLevel

    @AttackLevel.setter
    def AttackLevel(self, AttackLevel):
        self._AttackLevel = AttackLevel

    @property
    def DefenseState(self):
        return self._DefenseState

    @DefenseState.setter
    def DefenseState(self, DefenseState):
        self._DefenseState = DefenseState


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._Level = params.get("Level")
        self._VulName = params.get("VulName")
        self._PublishDate = params.get("PublishDate")
        self._Category = params.get("Category")
        self._Status = params.get("Status")
        self._LastScanTime = params.get("LastScanTime")
        self._Progress = params.get("Progress")
        self._CveId = params.get("CveId")
        self._CvssScore = params.get("CvssScore")
        self._Labels = params.get("Labels")
        self._HostCount = params.get("HostCount")
        self._IsSupportDefense = params.get("IsSupportDefense")
        self._DefenseAttackCount = params.get("DefenseAttackCount")
        self._Method = params.get("Method")
        self._AttackLevel = params.get("AttackLevel")
        self._DefenseState = params.get("DefenseState")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class EventStat(AbstractModel):
    """未处理的安全事件统计信息

    """

    def __init__(self):
        r"""
        :param _EventsNum: 事件数
        :type EventsNum: int
        :param _MachineAffectNum: 受影响的主机数
        :type MachineAffectNum: int
        """
        self._EventsNum = None
        self._MachineAffectNum = None

    @property
    def EventsNum(self):
        return self._EventsNum

    @EventsNum.setter
    def EventsNum(self, EventsNum):
        self._EventsNum = EventsNum

    @property
    def MachineAffectNum(self):
        return self._MachineAffectNum

    @MachineAffectNum.setter
    def MachineAffectNum(self, MachineAffectNum):
        self._MachineAffectNum = MachineAffectNum


    def _deserialize(self, params):
        self._EventsNum = params.get("EventsNum")
        self._MachineAffectNum = params.get("MachineAffectNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExpertServiceOrderInfo(AbstractModel):
    """专家服务订单信息

    """

    def __init__(self):
        r"""
        :param _OrderId: 订单id
        :type OrderId: int
        :param _InquireType: 订单类型 1应急 2 旗舰重保 3 安全管家
        :type InquireType: int
        :param _InquireNum: 服务数量
        :type InquireNum: int
        :param _BeginTime: 服务开始时间
        :type BeginTime: str
        :param _EndTime: 服务结束时间
        :type EndTime: str
        :param _ServiceTime: 服务时长几个月
        :type ServiceTime: int
        :param _Status: 订单状态 0 未启动 1 服务中 2已过期 3完成，4退费销毁
        :type Status: int
        """
        self._OrderId = None
        self._InquireType = None
        self._InquireNum = None
        self._BeginTime = None
        self._EndTime = None
        self._ServiceTime = None
        self._Status = None

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def InquireType(self):
        return self._InquireType

    @InquireType.setter
    def InquireType(self, InquireType):
        self._InquireType = InquireType

    @property
    def InquireNum(self):
        return self._InquireNum

    @InquireNum.setter
    def InquireNum(self, InquireNum):
        self._InquireNum = InquireNum

    @property
    def BeginTime(self):
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def ServiceTime(self):
        return self._ServiceTime

    @ServiceTime.setter
    def ServiceTime(self, ServiceTime):
        self._ServiceTime = ServiceTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._OrderId = params.get("OrderId")
        self._InquireType = params.get("InquireType")
        self._InquireNum = params.get("InquireNum")
        self._BeginTime = params.get("BeginTime")
        self._EndTime = params.get("EndTime")
        self._ServiceTime = params.get("ServiceTime")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetAppListRequest(AbstractModel):
    """ExportAssetAppList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of AssetFilters
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime|ProcessCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetAppListResponse(AbstractModel):
    """ExportAssetAppList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetCoreModuleListRequest(AbstractModel):
    """ExportAssetCoreModuleList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Filters: 过滤条件。
<li>Name- string - 是否必填：否 - 包名</li>
<li>User- string - 是否必填：否 - 用户</li>
        :type Filters: list of AssetFilters
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序依据[FirstTime|Size|ProcessCount|ModuleCount]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetCoreModuleListResponse(AbstractModel):
    """ExportAssetCoreModuleList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetDatabaseListRequest(AbstractModel):
    """ExportAssetDatabaseList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of AssetFilters
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Filters = None
        self._Quuid = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Quuid = params.get("Quuid")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetDatabaseListResponse(AbstractModel):
    """ExportAssetDatabaseList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetEnvListRequest(AbstractModel):
    """ExportAssetEnvList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Filters: 过滤条件。
<li>Name- string - 是否必填：否 - 环境变量名</li>
<li>Type- int - 是否必填：否 - 类型：0用户变量，1系统变量</li>
        :type Filters: list of AssetFilters
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetEnvListResponse(AbstractModel):
    """ExportAssetEnvList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetInitServiceListRequest(AbstractModel):
    """ExportAssetInitServiceList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :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: list of AssetFilters
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetInitServiceListResponse(AbstractModel):
    """ExportAssetInitServiceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetJarListRequest(AbstractModel):
    """ExportAssetJarList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>Name- string - 是否必填：否 - 包名</li>
<li>Type- uint - 是否必填：否 - 类型	
1: 应用程序
2 : 系统类库
3 : Web服务自带库
4 : 其他依赖包</li>
<li>Status- string - 是否必填：否 - 是否可执行：0否，1是</li>
        :type Filters: list of AssetFilters
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Filters = None
        self._Uuid = None
        self._Quuid = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetJarListResponse(AbstractModel):
    """ExportAssetJarList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetMachineDetailRequest(AbstractModel):
    """ExportAssetMachineDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        """
        self._Quuid = None
        self._Uuid = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetMachineDetailResponse(AbstractModel):
    """ExportAssetMachineDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 下载地址
        :type DownloadUrl: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._RequestId = params.get("RequestId")


class ExportAssetMachineListRequest(AbstractModel):
    """ExportAssetMachineList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序[FirstTime|PartitionCount]
        :type By: str
        """
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetMachineListResponse(AbstractModel):
    """ExportAssetMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetPlanTaskListRequest(AbstractModel):
    """ExportAssetPlanTaskList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Quuid: 服务器Quuid
        :type Quuid: str
        :param _Filters: 过滤条件。
<li>User- string - 是否必填：否 - 用户</li>
<li>Status- int - 是否必填：否 - 默认启用状态：0未启用， 1启用 </li>
        :type Filters: list of AssetFilters
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetPlanTaskListResponse(AbstractModel):
    """ExportAssetPlanTaskList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetPortInfoListRequest(AbstractModel):
    """ExportAssetPortInfoList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime|StartTime]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetPortInfoListResponse(AbstractModel):
    """ExportAssetPortInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetProcessInfoListRequest(AbstractModel):
    """ExportAssetProcessInfoList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式：[FirstTime|StartTime]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetProcessInfoListResponse(AbstractModel):
    """ExportAssetProcessInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetRecentMachineInfoRequest(AbstractModel):
    """ExportAssetRecentMachineInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BeginDate: 开始时间。
        :type BeginDate: str
        :param _EndDate: 结束时间。
        :type EndDate: str
        """
        self._BeginDate = None
        self._EndDate = None

    @property
    def BeginDate(self):
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate


    def _deserialize(self, params):
        self._BeginDate = params.get("BeginDate")
        self._EndDate = params.get("EndDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetRecentMachineInfoResponse(AbstractModel):
    """ExportAssetRecentMachineInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 下载地址
        :type DownloadUrl: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._RequestId = params.get("RequestId")


class ExportAssetSystemPackageListRequest(AbstractModel):
    """ExportAssetSystemPackageList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :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: list of Filter
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 排序方式可选：[FistTime|InstallTime:安装时间]
        :type By: str
        """
        self._Uuid = None
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetSystemPackageListResponse(AbstractModel):
    """ExportAssetSystemPackageList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetUserListRequest(AbstractModel):
    """ExportAssetUserList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|LoginTime|ChangePasswordTime|PasswordDuaTime]
PasswordLockDays
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetUserListResponse(AbstractModel):
    """ExportAssetUserList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetWebAppListRequest(AbstractModel):
    """ExportAssetWebAppList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|PluginCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetWebAppListResponse(AbstractModel):
    """ExportAssetWebAppList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetWebFrameListRequest(AbstractModel):
    """ExportAssetWebFrameList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|JarCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetWebFrameListResponse(AbstractModel):
    """ExportAssetWebFrameList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetWebLocationListRequest(AbstractModel):
    """ExportAssetWebLocationList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of Filter
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|PathCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetWebLocationListResponse(AbstractModel):
    """ExportAssetWebLocationList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAssetWebServiceInfoListRequest(AbstractModel):
    """ExportAssetWebServiceInfoList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 查询指定Quuid主机的信息
        :type Quuid: str
        :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: list of AssetFilters
        :param _Order: 排序方式，asc升序 或 desc降序
        :type Order: str
        :param _By: 可选排序：[FirstTime|ProcessCount]
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAssetWebServiceInfoListResponse(AbstractModel):
    """ExportAssetWebServiceInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAttackEventsRequest(AbstractModel):
    """ExportAttackEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _By: 排序值 CreateTime
        :type By: str
        :param _Order: 排序 方式 ，ASC，DESC
        :type Order: str
        """
        self._Filters = None
        self._By = None
        self._Order = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._By = params.get("By")
        self._Order = params.get("Order")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAttackEventsResponse(AbstractModel):
    """ExportAttackEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportAttackLogsRequest(AbstractModel):
    """ExportAttackLogs请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _Uuid: 主机安全客户端ID
        :type Uuid: str
        :param _Quuid: 云主机机器ID
        :type Quuid: str
        """
        self._Filters = None
        self._Uuid = None
        self._Quuid = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportAttackLogsResponse(AbstractModel):
    """ExportAttackLogs返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportBaselineEffectHostListRequest(AbstractModel):
    """ExportBaselineEffectHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BaselineId: 基线id
        :type BaselineId: int
        :param _Filters: 筛选条件
<li>AliasName- String- 主机别名</li>
        :type Filters: list of Filters
        :param _StrategyId: 策略id
        :type StrategyId: int
        :param _UuidList: 主机uuid数组
        :type UuidList: list of str
        :param _BaselineName: 基线名称
        :type BaselineName: str
        """
        self._BaselineId = None
        self._Filters = None
        self._StrategyId = None
        self._UuidList = None
        self._BaselineName = None

    @property
    def BaselineId(self):
        return self._BaselineId

    @BaselineId.setter
    def BaselineId(self, BaselineId):
        self._BaselineId = BaselineId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def UuidList(self):
        return self._UuidList

    @UuidList.setter
    def UuidList(self, UuidList):
        self._UuidList = UuidList

    @property
    def BaselineName(self):
        return self._BaselineName

    @BaselineName.setter
    def BaselineName(self, BaselineName):
        self._BaselineName = BaselineName


    def _deserialize(self, params):
        self._BaselineId = params.get("BaselineId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._StrategyId = params.get("StrategyId")
        self._UuidList = params.get("UuidList")
        self._BaselineName = params.get("BaselineName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBaselineEffectHostListResponse(AbstractModel):
    """ExportBaselineEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
注意：此字段可能返回 null，表示取不到有效值。
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportBaselineFixListRequest(AbstractModel):
    """ExportBaselineFixList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>ItemName - String - 是否必填：否 - 项名称</li>
        :type Filters: list of Filter
        :param _ExportAll: 0:过滤的结果导出；1:全部导出
        :type ExportAll: int
        """
        self._Filters = None
        self._ExportAll = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ExportAll = params.get("ExportAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBaselineFixListResponse(AbstractModel):
    """ExportBaselineFixList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineHostDetectListRequest(AbstractModel):
    """ExportBaselineHostDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _ExportAll: 0:过滤的结果导出；1:全部导出
        :type ExportAll: int
        """
        self._Filters = None
        self._ExportAll = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ExportAll = params.get("ExportAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBaselineHostDetectListResponse(AbstractModel):
    """ExportBaselineHostDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineItemDetectListRequest(AbstractModel):
    """ExportBaselineItemDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>HostId - string - 是否必填：否 - 主机Id</i>
<li>RuleId - int64 - 是否必填：否 - 规则Id</i>
<li>IsPassed - int - 是否必填：否 - 是否通过</li>
<li>RiskTier - int - 是否必填：否 - 风险等级</li>
        :type Filters: list of Filter
        :param _ExportAll: 0:过滤的结果导出；1:全部导出
        :type ExportAll: int
        """
        self._Filters = None
        self._ExportAll = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ExportAll = params.get("ExportAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBaselineItemDetectListResponse(AbstractModel):
    """ExportBaselineItemDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineItemListRequest(AbstractModel):
    """ExportBaselineItemList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _ExportAll: 0:过滤的结果导出；1:全部导出
        :type ExportAll: int
        """
        self._Filters = None
        self._ExportAll = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ExportAll = params.get("ExportAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBaselineItemListResponse(AbstractModel):
    """ExportBaselineItemList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineListRequest(AbstractModel):
    """ExportBaselineList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _IfDetail: 已废弃
        :type IfDetail: int
        """
        self._Filters = None
        self._IfDetail = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def IfDetail(self):
        return self._IfDetail

    @IfDetail.setter
    def IfDetail(self, IfDetail):
        self._IfDetail = IfDetail


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._IfDetail = params.get("IfDetail")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBaselineListResponse(AbstractModel):
    """ExportBaselineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出文件下载地址（已弃用）
注意：此字段可能返回 null，表示取不到有效值。
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportBaselineRuleDetectListRequest(AbstractModel):
    """ExportBaselineRuleDetectList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>RuleName - string - 是否必填：否 - 规则名称</i>
<li>IsPassed - int - 是否必填：否 - 是否通过</li>
<li>RiskTier - int - 是否必填：否 - 风险等级</li>
        :type Filters: list of Filter
        :param _ExportAll: 0:过滤的结果导出；1:全部导出
        :type ExportAll: int
        """
        self._Filters = None
        self._ExportAll = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ExportAll = params.get("ExportAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBaselineRuleDetectListResponse(AbstractModel):
    """ExportBaselineRuleDetectList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBaselineWeakPasswordListRequest(AbstractModel):
    """ExportBaselineWeakPasswordList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>WeakPassword - string - 是否必填：否 - 弱口令</li>
        :type Filters: list of Filter
        :param _ExportAll: 0:过滤的结果导出；1:全部导出
        :type ExportAll: int
        """
        self._Filters = None
        self._ExportAll = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExportAll(self):
        return self._ExportAll

    @ExportAll.setter
    def ExportAll(self, ExportAll):
        self._ExportAll = ExportAll


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ExportAll = params.get("ExportAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBaselineWeakPasswordListResponse(AbstractModel):
    """ExportBaselineWeakPasswordList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ExportBashEventsNewRequest(AbstractModel):
    """ExportBashEventsNew请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBashEventsNewResponse(AbstractModel):
    """ExportBashEventsNew返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportBashEventsRequest(AbstractModel):
    """ExportBashEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBashEventsResponse(AbstractModel):
    """ExportBashEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出文件下载链接地址。
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportBashPoliciesRequest(AbstractModel):
    """ExportBashPolicies请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBashPoliciesResponse(AbstractModel):
    """ExportBashPolicies返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportBruteAttacksRequest(AbstractModel):
    """ExportBruteAttacks请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportBruteAttacksResponse(AbstractModel):
    """ExportBruteAttacks返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportFileTamperEventsRequest(AbstractModel):
    """ExportFileTamperEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _Fileds: 需要导出的字段
        :type Fileds: list of str
        :param _Fields: 需要导出的字段
        :type Fields: str
        """
        self._Filters = None
        self._Fileds = None
        self._Fields = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Fileds(self):
        warnings.warn("parameter `Fileds` is deprecated", DeprecationWarning) 

        return self._Fileds

    @Fileds.setter
    def Fileds(self, Fileds):
        warnings.warn("parameter `Fileds` is deprecated", DeprecationWarning) 

        self._Fileds = Fileds

    @property
    def Fields(self):
        return self._Fields

    @Fields.setter
    def Fields(self, Fields):
        self._Fields = Fields


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Fileds = params.get("Fileds")
        self._Fields = params.get("Fields")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportFileTamperEventsResponse(AbstractModel):
    """ExportFileTamperEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出任务ID 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportFileTamperRulesRequest(AbstractModel):
    """ExportFileTamperRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>RuleCategory- string- 规则类别  0=系统规则，1=用户规则</li>
<li>Name- String - 规则名称/li>
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportFileTamperRulesResponse(AbstractModel):
    """ExportFileTamperRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出任务ID 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportIgnoreBaselineRuleRequest(AbstractModel):
    """ExportIgnoreBaselineRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleName: 检测项名称
        :type RuleName: str
        """
        self._RuleName = None

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName


    def _deserialize(self, params):
        self._RuleName = params.get("RuleName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportIgnoreBaselineRuleResponse(AbstractModel):
    """ExportIgnoreBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportIgnoreRuleEffectHostListRequest(AbstractModel):
    """ExportIgnoreRuleEffectHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleId: 检测项id
        :type RuleId: int
        :param _Filters: 过滤条件。
<li>AliasName- String- 主机别名</li>
        :type Filters: list of Filters
        """
        self._RuleId = None
        self._Filters = None

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._RuleId = params.get("RuleId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportIgnoreRuleEffectHostListResponse(AbstractModel):
    """ExportIgnoreRuleEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportInfo(AbstractModel):
    """日志下载任务列表

    """

    def __init__(self):
        r"""
        :param _ExportId: 日志导出任务ID
        :type ExportId: str
        :param _Query: 日志导出查询语句
        :type Query: str
        :param _FileName: 日志导出文件名
        :type FileName: str
        :param _FileSize: 日志文件大小
        :type FileSize: int
        :param _Order: 日志导出时间排序
        :type Order: str
        :param _Format: 日志导出格式
        :type Format: str
        :param _Count: 日志导出数量
        :type Count: int
        :param _Status: 日志下载状态。Processing:导出正在进行中，Complete:导出完成，Failed:导出失败，Expired:日志导出已过期（三天有效期）。
        :type Status: str
        :param _StartTime: 日志导出起始时间，uinx毫秒时间戳
        :type StartTime: int
        :param _EndTime: 日志导出结束时间，uinx毫秒时间戳
        :type EndTime: int
        :param _CosPath: 日志导出路径
        :type CosPath: str
        :param _CreateTime: 日志导出创建时间
        :type CreateTime: str
        """
        self._ExportId = None
        self._Query = None
        self._FileName = None
        self._FileSize = None
        self._Order = None
        self._Format = None
        self._Count = None
        self._Status = None
        self._StartTime = None
        self._EndTime = None
        self._CosPath = None
        self._CreateTime = None

    @property
    def ExportId(self):
        return self._ExportId

    @ExportId.setter
    def ExportId(self, ExportId):
        self._ExportId = ExportId

    @property
    def Query(self):
        return self._Query

    @Query.setter
    def Query(self, Query):
        self._Query = Query

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileSize(self):
        return self._FileSize

    @FileSize.setter
    def FileSize(self, FileSize):
        self._FileSize = FileSize

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def Format(self):
        return self._Format

    @Format.setter
    def Format(self, Format):
        self._Format = Format

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def CosPath(self):
        return self._CosPath

    @CosPath.setter
    def CosPath(self, CosPath):
        self._CosPath = CosPath

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime


    def _deserialize(self, params):
        self._ExportId = params.get("ExportId")
        self._Query = params.get("Query")
        self._FileName = params.get("FileName")
        self._FileSize = params.get("FileSize")
        self._Order = params.get("Order")
        self._Format = params.get("Format")
        self._Count = params.get("Count")
        self._Status = params.get("Status")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._CosPath = params.get("CosPath")
        self._CreateTime = params.get("CreateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportJavaMemShellPluginsRequest(AbstractModel):
    """ExportJavaMemShellPlugins请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: ip或者主机名模糊查询, Pid精确匹配，MainClass模糊匹配
        :type Filters: list of Filter
        :param _Where: 导出字段
        :type Where: list of str
        """
        self._Filters = None
        self._Where = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        return self._Where

    @Where.setter
    def Where(self, Where):
        self._Where = Where


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Where = params.get("Where")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportJavaMemShellPluginsResponse(AbstractModel):
    """ExportJavaMemShellPlugins返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportJavaMemShellsRequest(AbstractModel):
    """ExportJavaMemShells请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: ip或者主机名模糊查询, Type，Status精确匹配，CreateBeginTime，CreateEndTime时间段
        :type Filters: list of Filter
        :param _Where: 导出字段
        :type Where: list of str
        """
        self._Filters = None
        self._Where = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        return self._Where

    @Where.setter
    def Where(self, Where):
        self._Where = Where


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Where = params.get("Where")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportJavaMemShellsResponse(AbstractModel):
    """ExportJavaMemShells返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportLicenseDetailRequest(AbstractModel):
    """ExportLicenseDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 多个条件筛选时 LicenseStatus,DeadlineStatus,ResourceId,Keywords 取交集
<li> LicenseType  授权类型, 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月</li>
<li>ResourceId 资源ID</li>
        :type Filters: list of Filters
        :param _IsHistory: 是否导出全部授权详情
        :type IsHistory: bool
        :param _Tags: 标签筛选,平台标签能力,这里传入 标签键,标签值作为一个对象
        :type Tags: list of Tags
        :param _ExportMonth: 导出月份, 该参数仅在IsHistory 时可选.
        :type ExportMonth: str
        """
        self._Filters = None
        self._IsHistory = None
        self._Tags = None
        self._ExportMonth = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def IsHistory(self):
        return self._IsHistory

    @IsHistory.setter
    def IsHistory(self, IsHistory):
        self._IsHistory = IsHistory

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def ExportMonth(self):
        return self._ExportMonth

    @ExportMonth.setter
    def ExportMonth(self, ExportMonth):
        self._ExportMonth = ExportMonth


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._IsHistory = params.get("IsHistory")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tags()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._ExportMonth = params.get("ExportMonth")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportLicenseDetailResponse(AbstractModel):
    """ExportLicenseDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 下载地址,该字段废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportMaliciousRequestsRequest(AbstractModel):
    """ExportMaliciousRequests请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportMaliciousRequestsResponse(AbstractModel):
    """ExportMaliciousRequests返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportMalwaresRequest(AbstractModel):
    """ExportMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Limit: 限制条数,默认10
        :type Limit: int
        :param _Offset: 偏移量 默认0
        :type Offset: int
        :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: list of Filters
        :param _By: 排序值 CreateTime
        :type By: str
        :param _Order: 排序 方式 ，ASC，DESC
        :type Order: str
        """
        self._Limit = None
        self._Offset = None
        self._Filters = None
        self._By = None
        self._Order = None

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order


    def _deserialize(self, params):
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._By = params.get("By")
        self._Order = params.get("Order")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportMalwaresResponse(AbstractModel):
    """ExportMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportNonlocalLoginPlacesRequest(AbstractModel):
    """ExportNonlocalLoginPlaces请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: <li>Status - int - 是否必填：否 - 状态筛选1:正常登录；2：异地登录</li>
        :type Filters: list of Filter
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportNonlocalLoginPlacesResponse(AbstractModel):
    """ExportNonlocalLoginPlaces返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportPrivilegeEventsRequest(AbstractModel):
    """ExportPrivilegeEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportPrivilegeEventsResponse(AbstractModel):
    """ExportPrivilegeEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportProtectDirListRequest(AbstractModel):
    """ExportProtectDirList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: DirName 网站名称
DirPath 网站防护目录地址
        :type Filters: list of AssetFilters
        :param _Order: asc：升序/desc：降序
        :type Order: str
        :param _By: 排序字段
        :type By: str
        """
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportProtectDirListResponse(AbstractModel):
    """ExportProtectDirList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportRansomDefenseBackupListRequest(AbstractModel):
    """ExportRansomDefenseBackupList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Filters: 过滤条件。
<li>Status - Int - 是否必填：否 - 通过勒索状态查询：0未勒索，1已勒索 </li>
<li>CreateTimeBegin - string - 是否必填：否 - 创建时间开始 </li>
<li>CreateTimeEnd - string - 是否必填：否 - 创建时间结束 </li>
        :type Filters: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime
        :type By: str
        """
        self._Quuid = None
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportRansomDefenseBackupListResponse(AbstractModel):
    """ExportRansomDefenseBackupList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportRansomDefenseEventsListRequest(AbstractModel):
    """ExportRansomDefenseEventsList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件。
<li>HostName- string- 主机名称</li>
<li>Status - Uint64 - 0待处理，1已处理，2已信任</li>
<li>HostIp- String - 主机ip</li>
        :type Filters: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime
        :type By: str
        """
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportRansomDefenseEventsListResponse(AbstractModel):
    """ExportRansomDefenseEventsList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportRansomDefenseMachineListRequest(AbstractModel):
    """ExportRansomDefenseMachineList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime、MachineCount
        :type By: str
        """
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportRansomDefenseMachineListResponse(AbstractModel):
    """ExportRansomDefenseMachineList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportRansomDefenseStrategyListRequest(AbstractModel):
    """ExportRansomDefenseStrategyList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime、MachineCount
        :type By: str
        """
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportRansomDefenseStrategyListResponse(AbstractModel):
    """ExportRansomDefenseStrategyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportRansomDefenseStrategyMachinesRequest(AbstractModel):
    """ExportRansomDefenseStrategyMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filters
        :param _Order: 排序方法 ASC DESC
        :type Order: str
        :param _By: 排序字段支持CreateTime、MachineCount
        :type By: str
        :param _Id: 策略id
        :type Id: int
        """
        self._Filters = None
        self._Order = None
        self._By = None
        self._Id = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportRansomDefenseStrategyMachinesResponse(AbstractModel):
    """ExportRansomDefenseStrategyMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportReverseShellEventsRequest(AbstractModel):
    """ExportReverseShellEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        """
        self._Filters = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportReverseShellEventsResponse(AbstractModel):
    """ExportReverseShellEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportRiskDnsEventListRequest(AbstractModel):
    """ExportRiskDnsEventList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Order: 排序方式：[ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 排序字段：[AccessCount:请求次数|LastTime:最近请求时间]
        :type By: str
        """
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportRiskDnsEventListResponse(AbstractModel):
    """ExportRiskDnsEventList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportRiskDnsPolicyListRequest(AbstractModel):
    """ExportRiskDnsPolicyList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Order: 排序方式: [ASC:升序|DESC:降序]
        :type Order: str
        :param _By: 可选排序列: [PolicyName|HostType]
        :type By: str
        """
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportRiskDnsPolicyListResponse(AbstractModel):
    """ExportRiskDnsPolicyList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 异步下载任务ID，需要配合ExportTasks接口使用
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportRiskProcessEventsRequest(AbstractModel):
    """ExportRiskProcessEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _Order: 排序方式：[ASC:升序|DESC:降序]
        :type Order: str
        :param _By: [StartTime:进程启动时间|DetectTime:最后检测时间]
        :type By: str
        """
        self._Filters = None
        self._Order = None
        self._By = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Order = params.get("Order")
        self._By = params.get("By")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportRiskProcessEventsResponse(AbstractModel):
    """ExportRiskProcessEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportScanTaskDetailsRequest(AbstractModel):
    """ExportScanTaskDetails请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 本次检测的任务id（不同于出参的导出本次检测Excel的任务Id）
        :type TaskId: int
        :param _ModuleType: 模块类型，当前提供：Malware 木马 , Vul 漏洞 , Baseline 基线
        :type ModuleType: str
        :param _Filters: 过滤参数：ipOrAlias（服务器名/ip）
        :type Filters: list of Filters
        """
        self._TaskId = None
        self._ModuleType = None
        self._Filters = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def ModuleType(self):
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._ModuleType = params.get("ModuleType")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportScanTaskDetailsResponse(AbstractModel):
    """ExportScanTaskDetails返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址(不同于入参的本次检测任务id)
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportSecurityTrendsRequest(AbstractModel):
    """ExportSecurityTrends请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BeginDate: 开始时间。
        :type BeginDate: str
        :param _EndDate: 结束时间。
        :type EndDate: str
        """
        self._BeginDate = None
        self._EndDate = None

    @property
    def BeginDate(self):
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate


    def _deserialize(self, params):
        self._BeginDate = params.get("BeginDate")
        self._EndDate = params.get("EndDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportSecurityTrendsResponse(AbstractModel):
    """ExportSecurityTrends返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出文件下载链接地址。
        :type DownloadUrl: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._RequestId = params.get("RequestId")


class ExportTasksRequest(AbstractModel):
    """ExportTasks请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID
        :type TaskId: str
        """
        self._TaskId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportTasksResponse(AbstractModel):
    """ExportTasks返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: PENDING：正在生成下载链接，FINISHED：下载链接已生成，ERROR：网络异常等异常情况
        :type Status: str
        :param _DownloadUrl: 下载链接
        :type DownloadUrl: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Status = None
        self._DownloadUrl = None
        self._RequestId = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._DownloadUrl = params.get("DownloadUrl")
        self._RequestId = params.get("RequestId")


class ExportVulDefenceEventRequest(AbstractModel):
    """ExportVulDefenceEvent请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: ip或者主机名, VulKeywords漏洞名或者CveId模糊查询; Quuid，VulId，EventType，Status精确匹配，CreateBeginTime，CreateEndTime时间段查询
        :type Filters: list of Filter
        :param _Where: 导出字段，默认全导出
        :type Where: list of str
        """
        self._Filters = None
        self._Where = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        return self._Where

    @Where.setter
    def Where(self, Where):
        self._Where = Where


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Where = params.get("Where")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportVulDefenceEventResponse(AbstractModel):
    """ExportVulDefenceEvent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportVulDefenceListRequest(AbstractModel):
    """ExportVulDefenceList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件：Keywords: 漏洞名称或CVE编号模糊匹配, Level精确匹配
        :type Filters: list of Filter
        :param _Where: 导出字段，默认全导出
        :type Where: list of str
        """
        self._Filters = None
        self._Where = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        return self._Where

    @Where.setter
    def Where(self, Where):
        self._Where = Where


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Where = params.get("Where")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportVulDefenceListResponse(AbstractModel):
    """ExportVulDefenceList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportVulDefencePluginEventRequest(AbstractModel):
    """ExportVulDefencePluginEvent请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: Keywords: ip或者主机名模糊匹配，Quuid，Exception、Status精确匹配
        :type Filters: list of Filter
        :param _Where: 导出字段，默认全导出
        :type Where: list of str
        """
        self._Filters = None
        self._Where = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Where(self):
        return self._Where

    @Where.setter
    def Where(self, Where):
        self._Where = Where


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Where = params.get("Where")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportVulDefencePluginEventResponse(AbstractModel):
    """ExportVulDefencePluginEvent返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportVulDetectionExcelRequest(AbstractModel):
    """ExportVulDetectionExcel请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 本次漏洞检测任务id（不同于出参的导出本次漏洞检测Excel的任务Id）
        :type TaskId: int
        """
        self._TaskId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportVulDetectionExcelResponse(AbstractModel):
    """ExportVulDetectionExcel返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 该参数已废弃
        :type DownloadUrl: str
        :param _TaskId: 任务ID,需要到接口“异步导出任务”ExportTasks获取DownloadUrl下载地址（不同于入参的本次漏洞检测任务id）
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportVulDetectionReportRequest(AbstractModel):
    """ExportVulDetectionReport请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 漏洞扫描任务id（不同于出参的导出检测报告的任务Id）
        :type TaskId: int
        :param _Filters: 过滤参数
        :type Filters: list of Filters
        :param _Limit: 需要返回的数量，默认为10，最大值为100
        :type Limit: int
        :param _Offset: 偏移量，默认为0。
        :type Offset: int
        """
        self._TaskId = None
        self._Filters = None
        self._Limit = None
        self._Offset = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._Limit = params.get("Limit")
        self._Offset = params.get("Offset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportVulDetectionReportResponse(AbstractModel):
    """ExportVulDetectionReport返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出文件下载链接地址
        :type DownloadUrl: str
        :param _TaskId: 导出检测报告的任务Id（不同于入参的漏洞扫描任务id）
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportVulEffectHostListRequest(AbstractModel):
    """ExportVulEffectHostList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _Filters: 过滤条件。
<li>AliasName - String - 主机名筛选</li>
        :type Filters: list of Filter
        """
        self._VulId = None
        self._Filters = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportVulEffectHostListResponse(AbstractModel):
    """ExportVulEffectHostList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 已废弃
注意：此字段可能返回 null，表示取不到有效值。
        :type DownloadUrl: str
        :param _TaskId: 导出任务Id , 可通过ExportTasks 接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportVulInfoRequest(AbstractModel):
    """ExportVulInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        """
        self._VulId = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportVulInfoResponse(AbstractModel):
    """ExportVulInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 导出任务Id , 可通过ExportTasks 接口下载
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportVulListRequest(AbstractModel):
    """ExportVulList请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _IfDetail: 是否导出详情,1是 0不是
        :type IfDetail: int
        """
        self._Filters = None
        self._IfDetail = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def IfDetail(self):
        return self._IfDetail

    @IfDetail.setter
    def IfDetail(self, IfDetail):
        self._IfDetail = IfDetail


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._IfDetail = params.get("IfDetail")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportVulListResponse(AbstractModel):
    """ExportVulList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 导出的文件下载url（已弃用！）
注意：此字段可能返回 null，表示取不到有效值。
        :type DownloadUrl: str
        :param _TaskId: 导出文件Id 可通过ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._TaskId = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ExportWebPageEventListRequest(AbstractModel):
    """ExportWebPageEventList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Filters: 过滤条件
<li>IpOrAlias - String - 是否必填：否 - 主机ip或别名筛选</li>
<li>EventType - String - 是否必填：否 - 事件类型</li>
<li>EventStatus - String - 是否必填：否 - 事件状态</li>
        :type Filters: list of AssetFilters
        :param _By: 排序方式：CreateTime 或 RestoreTime，默认为CreateTime
        :type By: str
        :param _Order: 排序方式，0降序，1升序，默认为0
        :type Order: int
        """
        self._Filters = None
        self._By = None
        self._Order = None

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def By(self):
        return self._By

    @By.setter
    def By(self, By):
        self._By = By

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order


    def _deserialize(self, params):
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = AssetFilters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._By = params.get("By")
        self._Order = params.get("Order")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExportWebPageEventListResponse(AbstractModel):
    """ExportWebPageEventList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id 可通过 ExportTasks接口下载
        :type TaskId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class FieldValueRatioInfo(AbstractModel):
    """快速分析统计信息

    """

    def __init__(self):
        r"""
        :param _Count: 个数
        :type Count: int
        :param _Ratio: 比例
        :type Ratio: float
        :param _Value: 值
        :type Value: str
        """
        self._Count = None
        self._Ratio = None
        self._Value = None

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Ratio(self):
        return self._Ratio

    @Ratio.setter
    def Ratio(self, Ratio):
        self._Ratio = Ratio

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value


    def _deserialize(self, params):
        self._Count = params.get("Count")
        self._Ratio = params.get("Ratio")
        self._Value = params.get("Value")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FileTamperEvent(AbstractModel):
    """核心文件监控事件

    """

    def __init__(self):
        r"""
        :param _HostName: 机器名称
        :type HostName: str
        :param _HostIp: 机器IP
        :type HostIp: str
        :param _CreateTime: 发生时间
        :type CreateTime: str
        :param _ModifyTime: 最近发生时间
        :type ModifyTime: str
        :param _Id: 事件id
        :type Id: int
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _Quuid: cvm id
        :type Quuid: str
        :param _Type: 事件类型/动作  0 -- 告警
        :type Type: int
        :param _ProcessExe: 进程路径
        :type ProcessExe: str
        :param _ProcessArgv: 进程参数
        :type ProcessArgv: str
        :param _Target: 目标文件路径
        :type Target: str
        :param _Status: 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略 4-已手动处理
        :type Status: int
        :param _EventCount: 事件产生次数
        :type EventCount: int
        :param _RuleId: 规则id
        :type RuleId: int
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _Pstree: 事件详情: json格式
        :type Pstree: str
        :param _RuleCategory: 规则类型 0系统规则 1自定义规则
        :type RuleCategory: int
        :param _MachineStatus: 主机在线信息 ONLINE、OFFLINE
        :type MachineStatus: str
        :param _Description: 危害描述
        :type Description: str
        :param _Suggestion: 修护建议
        :type Suggestion: str
        :param _PrivateIp: 内网ip
        :type PrivateIp: str
        :param _ExePermission: 进程权限
        :type ExePermission: str
        :param _UserName: 用户名
        :type UserName: str
        :param _UserGroup: 用户组
        :type UserGroup: str
        :param _ExeMd5: 进程名
        :type ExeMd5: str
        :param _ExeSize: 进程文件大小
        :type ExeSize: int
        :param _ExeTime: 进程执行时长
        :type ExeTime: int
        :param _TargetSize: 目标文件大小
        :type TargetSize: int
        :param _TargetPermission: 目标文件权限
        :type TargetPermission: str
        :param _TargetModifyTime: 目标文件更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TargetModifyTime: str
        :param _TargetCreatTime: 目标文件创建时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TargetCreatTime: str
        :param _ExePid: 进程pid
        :type ExePid: int
        :param _TargetName: 文件名称
        :type TargetName: str
        :param _Reference: 参考链接
        :type Reference: str
        :param _Level: 风险等级 0：无， 1: 高危， 2:中危， 3: 低危
        :type Level: int
        :param _ExeName: 进程名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ExeName: str
        :param _MachineExtraInfo:  主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _FileAction: 文件威胁行为
<li>read 读取文件</li>
<li>write 修改文件</li>
注意：此字段可能返回 null，表示取不到有效值。
        :type FileAction: str
        """
        self._HostName = None
        self._HostIp = None
        self._CreateTime = None
        self._ModifyTime = None
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._Type = None
        self._ProcessExe = None
        self._ProcessArgv = None
        self._Target = None
        self._Status = None
        self._EventCount = None
        self._RuleId = None
        self._RuleName = None
        self._Pstree = None
        self._RuleCategory = None
        self._MachineStatus = None
        self._Description = None
        self._Suggestion = None
        self._PrivateIp = None
        self._ExePermission = None
        self._UserName = None
        self._UserGroup = None
        self._ExeMd5 = None
        self._ExeSize = None
        self._ExeTime = None
        self._TargetSize = None
        self._TargetPermission = None
        self._TargetModifyTime = None
        self._TargetCreatTime = None
        self._ExePid = None
        self._TargetName = None
        self._Reference = None
        self._Level = None
        self._ExeName = None
        self._MachineExtraInfo = None
        self._FileAction = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def ProcessExe(self):
        return self._ProcessExe

    @ProcessExe.setter
    def ProcessExe(self, ProcessExe):
        self._ProcessExe = ProcessExe

    @property
    def ProcessArgv(self):
        return self._ProcessArgv

    @ProcessArgv.setter
    def ProcessArgv(self, ProcessArgv):
        self._ProcessArgv = ProcessArgv

    @property
    def Target(self):
        return self._Target

    @Target.setter
    def Target(self, Target):
        self._Target = Target

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def EventCount(self):
        return self._EventCount

    @EventCount.setter
    def EventCount(self, EventCount):
        self._EventCount = EventCount

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def Pstree(self):
        return self._Pstree

    @Pstree.setter
    def Pstree(self, Pstree):
        self._Pstree = Pstree

    @property
    def RuleCategory(self):
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Suggestion(self):
        return self._Suggestion

    @Suggestion.setter
    def Suggestion(self, Suggestion):
        self._Suggestion = Suggestion

    @property
    def PrivateIp(self):
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def ExePermission(self):
        return self._ExePermission

    @ExePermission.setter
    def ExePermission(self, ExePermission):
        self._ExePermission = ExePermission

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ExeMd5(self):
        return self._ExeMd5

    @ExeMd5.setter
    def ExeMd5(self, ExeMd5):
        self._ExeMd5 = ExeMd5

    @property
    def ExeSize(self):
        return self._ExeSize

    @ExeSize.setter
    def ExeSize(self, ExeSize):
        self._ExeSize = ExeSize

    @property
    def ExeTime(self):
        return self._ExeTime

    @ExeTime.setter
    def ExeTime(self, ExeTime):
        self._ExeTime = ExeTime

    @property
    def TargetSize(self):
        return self._TargetSize

    @TargetSize.setter
    def TargetSize(self, TargetSize):
        self._TargetSize = TargetSize

    @property
    def TargetPermission(self):
        return self._TargetPermission

    @TargetPermission.setter
    def TargetPermission(self, TargetPermission):
        self._TargetPermission = TargetPermission

    @property
    def TargetModifyTime(self):
        return self._TargetModifyTime

    @TargetModifyTime.setter
    def TargetModifyTime(self, TargetModifyTime):
        self._TargetModifyTime = TargetModifyTime

    @property
    def TargetCreatTime(self):
        return self._TargetCreatTime

    @TargetCreatTime.setter
    def TargetCreatTime(self, TargetCreatTime):
        self._TargetCreatTime = TargetCreatTime

    @property
    def ExePid(self):
        return self._ExePid

    @ExePid.setter
    def ExePid(self, ExePid):
        self._ExePid = ExePid

    @property
    def TargetName(self):
        return self._TargetName

    @TargetName.setter
    def TargetName(self, TargetName):
        self._TargetName = TargetName

    @property
    def Reference(self):
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def ExeName(self):
        return self._ExeName

    @ExeName.setter
    def ExeName(self, ExeName):
        self._ExeName = ExeName

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def FileAction(self):
        return self._FileAction

    @FileAction.setter
    def FileAction(self, FileAction):
        self._FileAction = FileAction


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Type = params.get("Type")
        self._ProcessExe = params.get("ProcessExe")
        self._ProcessArgv = params.get("ProcessArgv")
        self._Target = params.get("Target")
        self._Status = params.get("Status")
        self._EventCount = params.get("EventCount")
        self._RuleId = params.get("RuleId")
        self._RuleName = params.get("RuleName")
        self._Pstree = params.get("Pstree")
        self._RuleCategory = params.get("RuleCategory")
        self._MachineStatus = params.get("MachineStatus")
        self._Description = params.get("Description")
        self._Suggestion = params.get("Suggestion")
        self._PrivateIp = params.get("PrivateIp")
        self._ExePermission = params.get("ExePermission")
        self._UserName = params.get("UserName")
        self._UserGroup = params.get("UserGroup")
        self._ExeMd5 = params.get("ExeMd5")
        self._ExeSize = params.get("ExeSize")
        self._ExeTime = params.get("ExeTime")
        self._TargetSize = params.get("TargetSize")
        self._TargetPermission = params.get("TargetPermission")
        self._TargetModifyTime = params.get("TargetModifyTime")
        self._TargetCreatTime = params.get("TargetCreatTime")
        self._ExePid = params.get("ExePid")
        self._TargetName = params.get("TargetName")
        self._Reference = params.get("Reference")
        self._Level = params.get("Level")
        self._ExeName = params.get("ExeName")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._FileAction = params.get("FileAction")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FileTamperRule(AbstractModel):
    """核心文件监控规则

    """

    def __init__(self):
        r"""
        :param _ProcessPath: 进程路径
        :type ProcessPath: str
        :param _Target: 被访问文件路径
        :type Target: str
        :param _Action: 执行动作 跳过：skip，告警：alert
        :type Action: str
        :param _FileAction: 监控行为
<li>read 读取文件</li>
<li>write 修改文件</li>
<li>read-write 读取修改文件</li>
注意：此字段可能返回 null，表示取不到有效值。
        :type FileAction: str
        """
        self._ProcessPath = None
        self._Target = None
        self._Action = None
        self._FileAction = None

    @property
    def ProcessPath(self):
        return self._ProcessPath

    @ProcessPath.setter
    def ProcessPath(self, ProcessPath):
        self._ProcessPath = ProcessPath

    @property
    def Target(self):
        return self._Target

    @Target.setter
    def Target(self, Target):
        self._Target = Target

    @property
    def Action(self):
        return self._Action

    @Action.setter
    def Action(self, Action):
        self._Action = Action

    @property
    def FileAction(self):
        return self._FileAction

    @FileAction.setter
    def FileAction(self, FileAction):
        self._FileAction = FileAction


    def _deserialize(self, params):
        self._ProcessPath = params.get("ProcessPath")
        self._Target = params.get("Target")
        self._Action = params.get("Action")
        self._FileAction = params.get("FileAction")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FileTamperRuleCount(AbstractModel):
    """主机关联核心文件规则数量信息

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _Count: 关联规则的数量
        :type Count: int
        :param _Name: 关联规则的名称（仅展示其中一条）
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        """
        self._Uuid = None
        self._Count = None
        self._Name = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Count = params.get("Count")
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FileTamperRuleDetail(AbstractModel):
    """核心文件监控规则详情

    """

    def __init__(self):
        r"""
        :param _Name: 规则名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _ModifyTime: 更新时间
        :type ModifyTime: str
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _Status: 状态 0: 启用 1: 已关闭
        :type Status: int
        :param _Rule: 规则
        :type Rule: list of FileTamperRule
        :param _Uuids: 生效主机uuid,空表示全部主机，通过参数可控制返回的条数
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuids: list of str
        :param _Id: 规则id
        :type Id: int
        :param _IsGlobal: 是否全局规则(默认否) 0：否 ，1：是
        :type IsGlobal: int
        :param _Level: 风险等级 0：无， 1: 高危， 2:中危， 3: 低危
        :type Level: int
        :param _UuidTotalCount: 生效主机的总数
        :type UuidTotalCount: int
        :param _AddWhiteType: 加白处理类型
<li>cur 仅对当前加白</li>
<li>all 所有符合条件加白</li>
注意：此字段可能返回 null，表示取不到有效值。
        :type AddWhiteType: str
        """
        self._Name = None
        self._ModifyTime = None
        self._CreateTime = None
        self._Status = None
        self._Rule = None
        self._Uuids = None
        self._Id = None
        self._IsGlobal = None
        self._Level = None
        self._UuidTotalCount = None
        self._AddWhiteType = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def UuidTotalCount(self):
        return self._UuidTotalCount

    @UuidTotalCount.setter
    def UuidTotalCount(self, UuidTotalCount):
        self._UuidTotalCount = UuidTotalCount

    @property
    def AddWhiteType(self):
        return self._AddWhiteType

    @AddWhiteType.setter
    def AddWhiteType(self, AddWhiteType):
        self._AddWhiteType = AddWhiteType


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._ModifyTime = params.get("ModifyTime")
        self._CreateTime = params.get("CreateTime")
        self._Status = params.get("Status")
        if params.get("Rule") is not None:
            self._Rule = []
            for item in params.get("Rule"):
                obj = FileTamperRule()
                obj._deserialize(item)
                self._Rule.append(obj)
        self._Uuids = params.get("Uuids")
        self._Id = params.get("Id")
        self._IsGlobal = params.get("IsGlobal")
        self._Level = params.get("Level")
        self._UuidTotalCount = params.get("UuidTotalCount")
        self._AddWhiteType = params.get("AddWhiteType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FileTamperRuleInfo(AbstractModel):
    """核心文件监控规则列表

    """

    def __init__(self):
        r"""
        :param _Name: 规则名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _RuleCategory: 规则类型 0 ：系统规则  1：用户规则
        :type RuleCategory: int
        :param _HostCount: 影响主机数
注意：此字段可能返回 null，表示取不到有效值。
        :type HostCount: int
        :param _ModifyTime: 更新时间
        :type ModifyTime: str
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _Status: 状态 0: 启用 1: 已关闭
        :type Status: int
        :param _Id: 规则id，系统的规则时为0。
        :type Id: int
        :param _IsGlobal: 是否是全局的 0：否 ，1：是
        :type IsGlobal: int
        :param _Level: 风险等级 0：无， 1: 高危， 2:中危， 3: 低危
        :type Level: int
        :param _WriteRuleCount: 子规则写条目数
注意：此字段可能返回 null，表示取不到有效值。
        :type WriteRuleCount: int
        :param _ReadRuleCount: 子规则读条目数
注意：此字段可能返回 null，表示取不到有效值。
        :type ReadRuleCount: int
        :param _ReadWriteRuleCount: 子规则读写条目数
注意：此字段可能返回 null，表示取不到有效值。
        :type ReadWriteRuleCount: int
        :param _FileAction: 监控行为
<li>read 读取文件</li>
<li>write 修改文件</li>
<li>read-write 读取修改文件</li>
注意：此字段可能返回 null，表示取不到有效值。
        :type FileAction: str
        :param _AddWhiteType: 加白处理类型
<li>cur 仅对当前加白</li>
<li>all 所有符合条件加白</li>
注意：此字段可能返回 null，表示取不到有效值。
        :type AddWhiteType: str
        """
        self._Name = None
        self._RuleCategory = None
        self._HostCount = None
        self._ModifyTime = None
        self._CreateTime = None
        self._Status = None
        self._Id = None
        self._IsGlobal = None
        self._Level = None
        self._WriteRuleCount = None
        self._ReadRuleCount = None
        self._ReadWriteRuleCount = None
        self._FileAction = None
        self._AddWhiteType = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def RuleCategory(self):
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def WriteRuleCount(self):
        return self._WriteRuleCount

    @WriteRuleCount.setter
    def WriteRuleCount(self, WriteRuleCount):
        self._WriteRuleCount = WriteRuleCount

    @property
    def ReadRuleCount(self):
        return self._ReadRuleCount

    @ReadRuleCount.setter
    def ReadRuleCount(self, ReadRuleCount):
        self._ReadRuleCount = ReadRuleCount

    @property
    def ReadWriteRuleCount(self):
        return self._ReadWriteRuleCount

    @ReadWriteRuleCount.setter
    def ReadWriteRuleCount(self, ReadWriteRuleCount):
        self._ReadWriteRuleCount = ReadWriteRuleCount

    @property
    def FileAction(self):
        return self._FileAction

    @FileAction.setter
    def FileAction(self, FileAction):
        self._FileAction = FileAction

    @property
    def AddWhiteType(self):
        return self._AddWhiteType

    @AddWhiteType.setter
    def AddWhiteType(self, AddWhiteType):
        self._AddWhiteType = AddWhiteType


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._RuleCategory = params.get("RuleCategory")
        self._HostCount = params.get("HostCount")
        self._ModifyTime = params.get("ModifyTime")
        self._CreateTime = params.get("CreateTime")
        self._Status = params.get("Status")
        self._Id = params.get("Id")
        self._IsGlobal = params.get("IsGlobal")
        self._Level = params.get("Level")
        self._WriteRuleCount = params.get("WriteRuleCount")
        self._ReadRuleCount = params.get("ReadRuleCount")
        self._ReadWriteRuleCount = params.get("ReadWriteRuleCount")
        self._FileAction = params.get("FileAction")
        self._AddWhiteType = params.get("AddWhiteType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Filter(AbstractModel):
    """描述键值对过滤器，用于条件过滤查询。例如过滤ID、名称、状态等

    若存在多个Filter时，Filter间的关系为逻辑与（AND）关系。
    若同一个Filter存在多个Values，同一Filter下Values间的关系为逻辑或（OR）关系。

    * 最多只能有5个Filter
    * 同一个Filter存在多个Values，Values值数量最多不能超过5个。

    """

    def __init__(self):
        r"""
        :param _Name: 过滤键的名称。
        :type Name: str
        :param _Values: 一个或者多个过滤值。
        :type Values: list of str
        :param _ExactMatch: 模糊搜索
        :type ExactMatch: bool
        """
        self._Name = None
        self._Values = None
        self._ExactMatch = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Values(self):
        return self._Values

    @Values.setter
    def Values(self, Values):
        self._Values = Values

    @property
    def ExactMatch(self):
        return self._ExactMatch

    @ExactMatch.setter
    def ExactMatch(self, ExactMatch):
        self._ExactMatch = ExactMatch


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Values = params.get("Values")
        self._ExactMatch = params.get("ExactMatch")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Filters(AbstractModel):
    """描述键值对过滤器，用于条件过滤查询。例如过滤ID、名称、状态等

    若存在多个Filter时，Filter间的关系为逻辑与（AND）关系。
    若同一个Filter存在多个Values，同一Filter下Values间的关系为逻辑或（OR）关系。

    """

    def __init__(self):
        r"""
        :param _Name: 过滤键的名称。
        :type Name: str
        :param _Values: 一个或者多个过滤值。
        :type Values: list of str
        :param _ExactMatch: 是否模糊匹配，前端框架会带上，可以不管
        :type ExactMatch: bool
        """
        self._Name = None
        self._Values = None
        self._ExactMatch = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Values(self):
        return self._Values

    @Values.setter
    def Values(self, Values):
        self._Values = Values

    @property
    def ExactMatch(self):
        return self._ExactMatch

    @ExactMatch.setter
    def ExactMatch(self, ExactMatch):
        self._ExactMatch = ExactMatch


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Values = params.get("Values")
        self._ExactMatch = params.get("ExactMatch")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FixBaselineDetectRequest(AbstractModel):
    """FixBaselineDetect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HostId: 主机Id
        :type HostId: str
        :param _ItemId: 项Id
        :type ItemId: int
        :param _Data: 修复内容
        :type Data: list of str
        """
        self._HostId = None
        self._ItemId = None
        self._Data = None

    @property
    def HostId(self):
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def ItemId(self):
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._HostId = params.get("HostId")
        self._ItemId = params.get("ItemId")
        self._Data = params.get("Data")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FixBaselineDetectResponse(AbstractModel):
    """FixBaselineDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class FullTextInfo(AbstractModel):
    """全文索引的相关配置

    """

    def __init__(self):
        r"""
        :param _CaseSensitive: 是否大小写敏感
        :type CaseSensitive: bool
        :param _Tokenizer: 分词符
        :type Tokenizer: str
        :param _ContainZH: 是否包含中文
        :type ContainZH: bool
        """
        self._CaseSensitive = None
        self._Tokenizer = None
        self._ContainZH = None

    @property
    def CaseSensitive(self):
        return self._CaseSensitive

    @CaseSensitive.setter
    def CaseSensitive(self, CaseSensitive):
        self._CaseSensitive = CaseSensitive

    @property
    def Tokenizer(self):
        return self._Tokenizer

    @Tokenizer.setter
    def Tokenizer(self, Tokenizer):
        self._Tokenizer = Tokenizer

    @property
    def ContainZH(self):
        return self._ContainZH

    @ContainZH.setter
    def ContainZH(self, ContainZH):
        self._ContainZH = ContainZH


    def _deserialize(self, params):
        self._CaseSensitive = params.get("CaseSensitive")
        self._Tokenizer = params.get("Tokenizer")
        self._ContainZH = params.get("ContainZH")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetLocalStorageItemRequest(AbstractModel):
    """GetLocalStorageItem请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Key: 键
        :type Key: str
        """
        self._Key = None

    @property
    def Key(self):
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key


    def _deserialize(self, params):
        self._Key = params.get("Key")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetLocalStorageItemResponse(AbstractModel):
    """GetLocalStorageItem返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Value: 值
        :type Value: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Value = None
        self._RequestId = None

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Value = params.get("Value")
        self._RequestId = params.get("RequestId")


class HistoryAccount(AbstractModel):
    """账号变更历史数据。

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID。
        :type Id: int
        :param _Uuid: 主机安全客户端唯一Uuid。
        :type Uuid: str
        :param _MachineIp: 主机内网IP。
        :type MachineIp: str
        :param _MachineName: 主机名。
        :type MachineName: str
        :param _Username: 帐号名。
        :type Username: str
        :param _ModifyType: 帐号变更类型。
<li>CREATE：表示新增帐号</li>
<li>MODIFY：表示修改帐号</li>
<li>DELETE：表示删除帐号</li>
        :type ModifyType: str
        :param _ModifyTime: 变更时间。
        :type ModifyTime: str
        """
        self._Id = None
        self._Uuid = None
        self._MachineIp = None
        self._MachineName = None
        self._Username = None
        self._ModifyType = None
        self._ModifyTime = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Username(self):
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def ModifyType(self):
        return self._ModifyType

    @ModifyType.setter
    def ModifyType(self, ModifyType):
        self._ModifyType = ModifyType

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._Username = params.get("Username")
        self._ModifyType = params.get("ModifyType")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HostDesc(AbstractModel):
    """展示登录审计白名单时的主机信息实体

    """

    def __init__(self):
        r"""
        :param _Quuid: 云镜客户端ID
        :type Quuid: str
        :param _Uuid: 主机ID
        :type Uuid: str
        :param _MachineName: 机器名
        :type MachineName: str
        :param _MachineIp: 机器IP:已销毁的服务器IP为空
        :type MachineIp: str
        :param _MachineWanIp: 公网IP:已销毁的服务器IP为空
        :type MachineWanIp: str
        :param _Tags: 标签信息数组
        :type Tags: list of MachineTag
        """
        self._Quuid = None
        self._Uuid = None
        self._MachineName = None
        self._MachineIp = None
        self._MachineWanIp = None
        self._Tags = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._MachineName = params.get("MachineName")
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tags.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HostInfo(AbstractModel):
    """添加登录审计白名单的主机信息实体

    """

    def __init__(self):
        r"""
        :param _Quuid: Quuid
        :type Quuid: str
        :param _Uuid: Uuid
        :type Uuid: str
        """
        self._Quuid = None
        self._Uuid = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HostLoginList(AbstractModel):
    """登录审计列表实体

    """

    def __init__(self):
        r"""
        :param _Id: 记录Id
        :type Id: int
        :param _Uuid: Uuid串
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _MachineIp: 主机ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineIp: str
        :param _MachineName: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineName: str
        :param _UserName: 用户名
注意：此字段可能返回 null，表示取不到有效值。
        :type UserName: str
        :param _SrcIp: 来源ip
注意：此字段可能返回 null，表示取不到有效值。
        :type SrcIp: str
        :param _Status: 1:正常登录；2异地登录； 5已加白； 14：已处理；15：已忽略。
        :type Status: int
        :param _Country: 国家id
注意：此字段可能返回 null，表示取不到有效值。
        :type Country: int
        :param _City: 城市id
注意：此字段可能返回 null，表示取不到有效值。
        :type City: int
        :param _Province: 省份id
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: int
        :param _LoginTime: 登录时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LoginTime: str
        :param _ModifyTime: 修改时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _IsRiskArea: 是否命中异地登录异常  1表示命中此类异常, 0表示未命中
注意：此字段可能返回 null，表示取不到有效值。
        :type IsRiskArea: int
        :param _IsRiskUser: 是否命中异常用户异常 1表示命中此类异常, 0表示未命中
注意：此字段可能返回 null，表示取不到有效值。
        :type IsRiskUser: int
        :param _IsRiskTime: 是否命中异常时间异常 1表示命中此类异常, 0表示未命中
注意：此字段可能返回 null，表示取不到有效值。
        :type IsRiskTime: int
        :param _IsRiskSrcIp: 是否命中异常IP异常 1表示命中此类异常, 0表示未命中
注意：此字段可能返回 null，表示取不到有效值。
        :type IsRiskSrcIp: int
        :param _RiskLevel: 危险等级：
0 高危
1 可疑
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskLevel: int
        :param _Location: 位置名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Location: str
        :param _Quuid: 主机quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _Desc: 高危信息说明：
ABROAD - 海外IP；
XTI - 威胁情报
注意：此字段可能返回 null，表示取不到有效值。
        :type Desc: str
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Port: 请求目的端口
注意：此字段可能返回 null，表示取不到有效值。
        :type Port: int
        """
        self._Id = None
        self._Uuid = None
        self._MachineIp = None
        self._MachineName = None
        self._UserName = None
        self._SrcIp = None
        self._Status = None
        self._Country = None
        self._City = None
        self._Province = None
        self._LoginTime = None
        self._ModifyTime = None
        self._IsRiskArea = None
        self._IsRiskUser = None
        self._IsRiskTime = None
        self._IsRiskSrcIp = None
        self._RiskLevel = None
        self._Location = None
        self._Quuid = None
        self._Desc = None
        self._MachineExtraInfo = None
        self._Port = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def LoginTime(self):
        return self._LoginTime

    @LoginTime.setter
    def LoginTime(self, LoginTime):
        self._LoginTime = LoginTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def IsRiskArea(self):
        return self._IsRiskArea

    @IsRiskArea.setter
    def IsRiskArea(self, IsRiskArea):
        self._IsRiskArea = IsRiskArea

    @property
    def IsRiskUser(self):
        return self._IsRiskUser

    @IsRiskUser.setter
    def IsRiskUser(self, IsRiskUser):
        self._IsRiskUser = IsRiskUser

    @property
    def IsRiskTime(self):
        return self._IsRiskTime

    @IsRiskTime.setter
    def IsRiskTime(self, IsRiskTime):
        self._IsRiskTime = IsRiskTime

    @property
    def IsRiskSrcIp(self):
        return self._IsRiskSrcIp

    @IsRiskSrcIp.setter
    def IsRiskSrcIp(self, IsRiskSrcIp):
        self._IsRiskSrcIp = IsRiskSrcIp

    @property
    def RiskLevel(self):
        return self._RiskLevel

    @RiskLevel.setter
    def RiskLevel(self, RiskLevel):
        self._RiskLevel = RiskLevel

    @property
    def Location(self):
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._MachineIp = params.get("MachineIp")
        self._MachineName = params.get("MachineName")
        self._UserName = params.get("UserName")
        self._SrcIp = params.get("SrcIp")
        self._Status = params.get("Status")
        self._Country = params.get("Country")
        self._City = params.get("City")
        self._Province = params.get("Province")
        self._LoginTime = params.get("LoginTime")
        self._ModifyTime = params.get("ModifyTime")
        self._IsRiskArea = params.get("IsRiskArea")
        self._IsRiskUser = params.get("IsRiskUser")
        self._IsRiskTime = params.get("IsRiskTime")
        self._IsRiskSrcIp = params.get("IsRiskSrcIp")
        self._RiskLevel = params.get("RiskLevel")
        self._Location = params.get("Location")
        self._Quuid = params.get("Quuid")
        self._Desc = params.get("Desc")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Port = params.get("Port")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HostLoginWhiteObj(AbstractModel):
    """新增登录审计白名单实体

    """

    def __init__(self):
        r"""
        :param _Places: 加白地域
        :type Places: list of Place
        :param _SrcIp: 加白源IP，支持网段，多个IP以逗号隔开
        :type SrcIp: str
        :param _UserName: 加白用户名，多个用户名以逗号隔开
        :type UserName: str
        :param _IsGlobal: 是否对全局生效, 1：全局有效 0: 仅针对单台主机'
        :type IsGlobal: int
        :param _HostInfos: 白名单生效的机器信息列表
        :type HostInfos: list of HostInfo
        :param _Remark: 备注
        :type Remark: str
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        """
        self._Places = None
        self._SrcIp = None
        self._UserName = None
        self._IsGlobal = None
        self._HostInfos = None
        self._Remark = None
        self._StartTime = None
        self._EndTime = None

    @property
    def Places(self):
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def HostInfos(self):
        return self._HostInfos

    @HostInfos.setter
    def HostInfos(self, HostInfos):
        self._HostInfos = HostInfos

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        if params.get("Places") is not None:
            self._Places = []
            for item in params.get("Places"):
                obj = Place()
                obj._deserialize(item)
                self._Places.append(obj)
        self._SrcIp = params.get("SrcIp")
        self._UserName = params.get("UserName")
        self._IsGlobal = params.get("IsGlobal")
        if params.get("HostInfos") is not None:
            self._HostInfos = []
            for item in params.get("HostInfos"):
                obj = HostInfo()
                obj._deserialize(item)
                self._HostInfos.append(obj)
        self._Remark = params.get("Remark")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HostRiskLevelCount(AbstractModel):
    """主机风险计数

    """

    def __init__(self):
        r"""
        :param _HostId: 主机ID
        :type HostId: str
        :param _HostName: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        :param _SeriousCount: 严重个数
        :type SeriousCount: int
        :param _HighCount: 高危个数
        :type HighCount: int
        :param _MediumCount: 中危个数
        :type MediumCount: int
        :param _LowCount: 低危个数
        :type LowCount: int
        """
        self._HostId = None
        self._HostName = None
        self._SeriousCount = None
        self._HighCount = None
        self._MediumCount = None
        self._LowCount = None

    @property
    def HostId(self):
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def SeriousCount(self):
        return self._SeriousCount

    @SeriousCount.setter
    def SeriousCount(self, SeriousCount):
        self._SeriousCount = SeriousCount

    @property
    def HighCount(self):
        return self._HighCount

    @HighCount.setter
    def HighCount(self, HighCount):
        self._HighCount = HighCount

    @property
    def MediumCount(self):
        return self._MediumCount

    @MediumCount.setter
    def MediumCount(self, MediumCount):
        self._MediumCount = MediumCount

    @property
    def LowCount(self):
        return self._LowCount

    @LowCount.setter
    def LowCount(self, LowCount):
        self._LowCount = LowCount


    def _deserialize(self, params):
        self._HostId = params.get("HostId")
        self._HostName = params.get("HostName")
        self._SeriousCount = params.get("SeriousCount")
        self._HighCount = params.get("HighCount")
        self._MediumCount = params.get("MediumCount")
        self._LowCount = params.get("LowCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class HostTagInfo(AbstractModel):
    """主机与主机标签信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _TagList: 主机标签名数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TagList: list of str
        :param _HostIp: 主机内网Ip
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIp: str
        :param _AliasName: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type AliasName: str
        :param _MachineWanIp: 主机公网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineWanIp: str
        :param _Uuid: 主机uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _KernelVersion: 内核版本号
注意：此字段可能返回 null，表示取不到有效值。
        :type KernelVersion: str
        :param _MachineStatus: 主机在线状态 ONLINE，OFFLINE
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineStatus: str
        :param _ProtectType: 防护版本 BASIC_VERSION 基础版, PRO_VERSION 专业版 Flagship 旗舰版
注意：此字段可能返回 null，表示取不到有效值。
        :type ProtectType: str
        :param _VulNum: 漏洞数
注意：此字段可能返回 null，表示取不到有效值。
        :type VulNum: int
        :param _CloudTags: 云标签信息
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudTags: list of Tags
        :param _InstanceID: 主机instance ID
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceID: str
        """
        self._Quuid = None
        self._TagList = None
        self._HostIp = None
        self._AliasName = None
        self._MachineWanIp = None
        self._Uuid = None
        self._KernelVersion = None
        self._MachineStatus = None
        self._ProtectType = None
        self._VulNum = None
        self._CloudTags = None
        self._InstanceID = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def TagList(self):
        return self._TagList

    @TagList.setter
    def TagList(self, TagList):
        self._TagList = TagList

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def AliasName(self):
        return self._AliasName

    @AliasName.setter
    def AliasName(self, AliasName):
        self._AliasName = AliasName

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def KernelVersion(self):
        return self._KernelVersion

    @KernelVersion.setter
    def KernelVersion(self, KernelVersion):
        self._KernelVersion = KernelVersion

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def ProtectType(self):
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def VulNum(self):
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def CloudTags(self):
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def InstanceID(self):
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._TagList = params.get("TagList")
        self._HostIp = params.get("HostIp")
        self._AliasName = params.get("AliasName")
        self._MachineWanIp = params.get("MachineWanIp")
        self._Uuid = params.get("Uuid")
        self._KernelVersion = params.get("KernelVersion")
        self._MachineStatus = params.get("MachineStatus")
        self._ProtectType = params.get("ProtectType")
        self._VulNum = params.get("VulNum")
        if params.get("CloudTags") is not None:
            self._CloudTags = []
            for item in params.get("CloudTags"):
                obj = Tags()
                obj._deserialize(item)
                self._CloudTags.append(obj)
        self._InstanceID = params.get("InstanceID")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IgnoreBaselineRule(AbstractModel):
    """忽略的基线检测项信息

    """

    def __init__(self):
        r"""
        :param _RuleName: 基线检测项名称
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleName: str
        :param _RuleId: 基线检测项id
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleId: int
        :param _ModifyTime: 更新时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _Fix: 修复建议
注意：此字段可能返回 null，表示取不到有效值。
        :type Fix: str
        :param _EffectHostCount: 影响主机数
注意：此字段可能返回 null，表示取不到有效值。
        :type EffectHostCount: int
        """
        self._RuleName = None
        self._RuleId = None
        self._ModifyTime = None
        self._Fix = None
        self._EffectHostCount = None

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Fix(self):
        return self._Fix

    @Fix.setter
    def Fix(self, Fix):
        self._Fix = Fix

    @property
    def EffectHostCount(self):
        return self._EffectHostCount

    @EffectHostCount.setter
    def EffectHostCount(self, EffectHostCount):
        self._EffectHostCount = EffectHostCount


    def _deserialize(self, params):
        self._RuleName = params.get("RuleName")
        self._RuleId = params.get("RuleId")
        self._ModifyTime = params.get("ModifyTime")
        self._Fix = params.get("Fix")
        self._EffectHostCount = params.get("EffectHostCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IgnoreImpactedHostsRequest(AbstractModel):
    """IgnoreImpactedHosts请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 漏洞ID数组。
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IgnoreImpactedHostsResponse(AbstractModel):
    """IgnoreImpactedHosts返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class IgnoreRuleEffectHostInfo(AbstractModel):
    """忽略检测项影响主机信息

    """

    def __init__(self):
        r"""
        :param _HostName: 主机名称
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        :param _Level: 危害等级：1-低位，2-中危，3-高危，4-严重
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _TagList: 主机标签数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TagList: list of str
        :param _Status: 状态：0-未通过，1-忽略，3-已通过，5-检测中
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _LastScanTime: 最后检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LastScanTime: str
        :param _EventId: 事件id
注意：此字段可能返回 null，表示取不到有效值。
        :type EventId: int
        :param _Quuid: 主机quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        """
        self._HostName = None
        self._Level = None
        self._TagList = None
        self._Status = None
        self._LastScanTime = None
        self._EventId = None
        self._Quuid = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def TagList(self):
        return self._TagList

    @TagList.setter
    def TagList(self, TagList):
        self._TagList = TagList

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def LastScanTime(self):
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        self._Level = params.get("Level")
        self._TagList = params.get("TagList")
        self._Status = params.get("Status")
        self._LastScanTime = params.get("LastScanTime")
        self._EventId = params.get("EventId")
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class IncidentVertexInfo(AbstractModel):
    """事件点信息

    """

    def __init__(self):
        r"""
        :param _IncidentId: 事件id
注意：此字段可能返回 null，表示取不到有效值。
        :type IncidentId: str
        :param _TableName: 事件所在表名
注意：此字段可能返回 null，表示取不到有效值。
        :type TableName: str
        :param _Vertex: 节点信息列表，数组项中包含节点详细信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Vertex: list of VertexInfo
        :param _VertexCount: 节点总个数
注意：此字段可能返回 null，表示取不到有效值。
        :type VertexCount: int
        """
        self._IncidentId = None
        self._TableName = None
        self._Vertex = None
        self._VertexCount = None

    @property
    def IncidentId(self):
        return self._IncidentId

    @IncidentId.setter
    def IncidentId(self, IncidentId):
        self._IncidentId = IncidentId

    @property
    def TableName(self):
        return self._TableName

    @TableName.setter
    def TableName(self, TableName):
        self._TableName = TableName

    @property
    def Vertex(self):
        return self._Vertex

    @Vertex.setter
    def Vertex(self, Vertex):
        self._Vertex = Vertex

    @property
    def VertexCount(self):
        return self._VertexCount

    @VertexCount.setter
    def VertexCount(self, VertexCount):
        self._VertexCount = VertexCount


    def _deserialize(self, params):
        self._IncidentId = params.get("IncidentId")
        self._TableName = params.get("TableName")
        if params.get("Vertex") is not None:
            self._Vertex = []
            for item in params.get("Vertex"):
                obj = VertexInfo()
                obj._deserialize(item)
                self._Vertex.append(obj)
        self._VertexCount = params.get("VertexCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Item(AbstractModel):
    """项

    """

    def __init__(self):
        r"""
        :param _ItemId: Id
        :type ItemId: int
        :param _ItemName: 名称
        :type ItemName: str
        """
        self._ItemId = None
        self._ItemName = None

    @property
    def ItemId(self):
        return self._ItemId

    @ItemId.setter
    def ItemId(self, ItemId):
        self._ItemId = ItemId

    @property
    def ItemName(self):
        return self._ItemName

    @ItemName.setter
    def ItemName(self, ItemName):
        self._ItemName = ItemName


    def _deserialize(self, params):
        self._ItemId = params.get("ItemId")
        self._ItemName = params.get("ItemName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class JavaMemShellDetail(AbstractModel):
    """java内存马事件详细信息

    """

    def __init__(self):
        r"""
        :param _InstanceName: 容器名
        :type InstanceName: str
        :param _InstanceState: 实例状态：RUNNING,STOPPED,SHUTDOWN...
        :type InstanceState: str
        :param _PrivateIp: 内网IP
        :type PrivateIp: str
        :param _PublicIp: 公共ip
        :type PublicIp: str
        :param _Type: 内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
        :type Type: int
        :param _Description: 说明
        :type Description: str
        :param _CreateTime: 首次发现时间
        :type CreateTime: str
        :param _RecentFoundTime: 最近检测时间
        :type RecentFoundTime: str
        :param _Status: 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
        :type Status: int
        :param _ClassLoaderName: java加载器类名
        :type ClassLoaderName: str
        :param _SuperClassName: 父类名
        :type SuperClassName: str
        :param _Md5: 类文件MD5
        :type Md5: str
        :param _Interfaces: 继承的接口
        :type Interfaces: str
        :param _Annotations: 注释
        :type Annotations: str
        :param _Pid: 进程pid
        :type Pid: int
        :param _Exe: java进程路径
        :type Exe: str
        :param _Args: java进程命令行参数
        :type Args: str
        :param _ClassName: 类名
        :type ClassName: str
        :param _ClassContent: java内存马二进制代码(base64)
        :type ClassContent: str
        :param _ClassContentPretty: java内存马反编译代码
        :type ClassContentPretty: str
        :param _EventDescription: 事件描述
        :type EventDescription: str
        :param _SecurityAdvice: 安全建议
        :type SecurityAdvice: str
        :param _MachineExtraInfo:  主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _MachineState: 实例状态：RUNNING,STOPPED,SHUTDOWN...
        :type MachineState: str
        """
        self._InstanceName = None
        self._InstanceState = None
        self._PrivateIp = None
        self._PublicIp = None
        self._Type = None
        self._Description = None
        self._CreateTime = None
        self._RecentFoundTime = None
        self._Status = None
        self._ClassLoaderName = None
        self._SuperClassName = None
        self._Md5 = None
        self._Interfaces = None
        self._Annotations = None
        self._Pid = None
        self._Exe = None
        self._Args = None
        self._ClassName = None
        self._ClassContent = None
        self._ClassContentPretty = None
        self._EventDescription = None
        self._SecurityAdvice = None
        self._MachineExtraInfo = None
        self._MachineState = None

    @property
    def InstanceName(self):
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def InstanceState(self):
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def PrivateIp(self):
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RecentFoundTime(self):
        return self._RecentFoundTime

    @RecentFoundTime.setter
    def RecentFoundTime(self, RecentFoundTime):
        self._RecentFoundTime = RecentFoundTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ClassLoaderName(self):
        return self._ClassLoaderName

    @ClassLoaderName.setter
    def ClassLoaderName(self, ClassLoaderName):
        self._ClassLoaderName = ClassLoaderName

    @property
    def SuperClassName(self):
        return self._SuperClassName

    @SuperClassName.setter
    def SuperClassName(self, SuperClassName):
        self._SuperClassName = SuperClassName

    @property
    def Md5(self):
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def Interfaces(self):
        return self._Interfaces

    @Interfaces.setter
    def Interfaces(self, Interfaces):
        self._Interfaces = Interfaces

    @property
    def Annotations(self):
        return self._Annotations

    @Annotations.setter
    def Annotations(self, Annotations):
        self._Annotations = Annotations

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Exe(self):
        return self._Exe

    @Exe.setter
    def Exe(self, Exe):
        self._Exe = Exe

    @property
    def Args(self):
        return self._Args

    @Args.setter
    def Args(self, Args):
        self._Args = Args

    @property
    def ClassName(self):
        return self._ClassName

    @ClassName.setter
    def ClassName(self, ClassName):
        self._ClassName = ClassName

    @property
    def ClassContent(self):
        return self._ClassContent

    @ClassContent.setter
    def ClassContent(self, ClassContent):
        self._ClassContent = ClassContent

    @property
    def ClassContentPretty(self):
        return self._ClassContentPretty

    @ClassContentPretty.setter
    def ClassContentPretty(self, ClassContentPretty):
        self._ClassContentPretty = ClassContentPretty

    @property
    def EventDescription(self):
        return self._EventDescription

    @EventDescription.setter
    def EventDescription(self, EventDescription):
        self._EventDescription = EventDescription

    @property
    def SecurityAdvice(self):
        return self._SecurityAdvice

    @SecurityAdvice.setter
    def SecurityAdvice(self, SecurityAdvice):
        self._SecurityAdvice = SecurityAdvice

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def MachineState(self):
        return self._MachineState

    @MachineState.setter
    def MachineState(self, MachineState):
        self._MachineState = MachineState


    def _deserialize(self, params):
        self._InstanceName = params.get("InstanceName")
        self._InstanceState = params.get("InstanceState")
        self._PrivateIp = params.get("PrivateIp")
        self._PublicIp = params.get("PublicIp")
        self._Type = params.get("Type")
        self._Description = params.get("Description")
        self._CreateTime = params.get("CreateTime")
        self._RecentFoundTime = params.get("RecentFoundTime")
        self._Status = params.get("Status")
        self._ClassLoaderName = params.get("ClassLoaderName")
        self._SuperClassName = params.get("SuperClassName")
        self._Md5 = params.get("Md5")
        self._Interfaces = params.get("Interfaces")
        self._Annotations = params.get("Annotations")
        self._Pid = params.get("Pid")
        self._Exe = params.get("Exe")
        self._Args = params.get("Args")
        self._ClassName = params.get("ClassName")
        self._ClassContent = params.get("ClassContent")
        self._ClassContentPretty = params.get("ClassContentPretty")
        self._EventDescription = params.get("EventDescription")
        self._SecurityAdvice = params.get("SecurityAdvice")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._MachineState = params.get("MachineState")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class JavaMemShellInfo(AbstractModel):
    """java内存马事件信息

    """

    def __init__(self):
        r"""
        :param _Id: 事件ID
        :type Id: int
        :param _Alias: 服务器名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Alias: str
        :param _HostIp: 服务器IP
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIp: str
        :param _Type: 内存马类型  0:Filter型 1:Listener型 2:Servlet型 3:Interceptors型 4:Agent型 5:其他
        :type Type: int
        :param _Description: 说明
        :type Description: str
        :param _CreateTime: 首次发现时间
        :type CreateTime: str
        :param _RecentFoundTime: 最近检测时间
        :type RecentFoundTime: str
        :param _Status: 处理状态  0 -- 待处理 1 -- 已加白 2 -- 已删除 3 - 已忽略  4 - 已手动处理
        :type Status: int
        :param _Quuid: 服务器quuid
        :type Quuid: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Uuid: 服务器uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        """
        self._Id = None
        self._Alias = None
        self._HostIp = None
        self._Type = None
        self._Description = None
        self._CreateTime = None
        self._RecentFoundTime = None
        self._Status = None
        self._Quuid = None
        self._MachineExtraInfo = None
        self._Uuid = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RecentFoundTime(self):
        return self._RecentFoundTime

    @RecentFoundTime.setter
    def RecentFoundTime(self, RecentFoundTime):
        self._RecentFoundTime = RecentFoundTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Alias = params.get("Alias")
        self._HostIp = params.get("HostIp")
        self._Type = params.get("Type")
        self._Description = params.get("Description")
        self._CreateTime = params.get("CreateTime")
        self._RecentFoundTime = params.get("RecentFoundTime")
        self._Status = params.get("Status")
        self._Quuid = params.get("Quuid")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class JavaMemShellPluginInfo(AbstractModel):
    """Java内存马插件信息

    """

    def __init__(self):
        r"""
        :param _Pid: 注入进程pid
        :type Pid: int
        :param _MainClass: 注入进程主类
        :type MainClass: str
        :param _Status: 注入状态：0: 注入中, 1: 注入成功, 2: 插件超时, 3: 插件退出, 4: 注入失败 5: 软删除
        :type Status: int
        :param _ErrorLog: 错误日志
        :type ErrorLog: str
        """
        self._Pid = None
        self._MainClass = None
        self._Status = None
        self._ErrorLog = None

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def MainClass(self):
        return self._MainClass

    @MainClass.setter
    def MainClass(self, MainClass):
        self._MainClass = MainClass

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ErrorLog(self):
        return self._ErrorLog

    @ErrorLog.setter
    def ErrorLog(self, ErrorLog):
        self._ErrorLog = ErrorLog


    def _deserialize(self, params):
        self._Pid = params.get("Pid")
        self._MainClass = params.get("MainClass")
        self._Status = params.get("Status")
        self._ErrorLog = params.get("ErrorLog")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class JavaMemShellPluginSetting(AbstractModel):
    """Java内存马插件配置

    """

    def __init__(self):
        r"""
        :param _Quuid: 容器quuid
        :type Quuid: str
        :param _Alias: 服务器名
        :type Alias: str
        :param _HostIp: 服务器ip
        :type HostIp: str
        :param _JavaShellStatus: javashell插件开关 0: 关闭 1: 开启
        :type JavaShellStatus: int
        :param _Exception: 插件是否存在异常 0: 正常 1: 异常
        :type Exception: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        :param _Uuid: 服务器uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Quuid = None
        self._Alias = None
        self._HostIp = None
        self._JavaShellStatus = None
        self._Exception = None
        self._CreateTime = None
        self._ModifyTime = None
        self._Uuid = None
        self._MachineExtraInfo = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def JavaShellStatus(self):
        return self._JavaShellStatus

    @JavaShellStatus.setter
    def JavaShellStatus(self, JavaShellStatus):
        self._JavaShellStatus = JavaShellStatus

    @property
    def Exception(self):
        return self._Exception

    @Exception.setter
    def Exception(self, Exception):
        self._Exception = Exception

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Alias = params.get("Alias")
        self._HostIp = params.get("HostIp")
        self._JavaShellStatus = params.get("JavaShellStatus")
        self._Exception = params.get("Exception")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._Uuid = params.get("Uuid")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class KeyValueArrayInfo(AbstractModel):
    """索引键值信息

    """

    def __init__(self):
        r"""
        :param _Key: 需要配置键值或者元字段索引的字段
        :type Key: str
        :param _Value: 字段的索引描述信息
        :type Value: :class:`tencentcloud.cwp.v20180228.models.ValueInfo`
        """
        self._Key = None
        self._Value = None

    @property
    def Key(self):
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value


    def _deserialize(self, params):
        self._Key = params.get("Key")
        if params.get("Value") is not None:
            self._Value = ValueInfo()
            self._Value._deserialize(params.get("Value"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class KeyValueInfo(AbstractModel):
    """键值索引配置

    """

    def __init__(self):
        r"""
        :param _CaseSensitive: 是否大小写敏感
        :type CaseSensitive: bool
        :param _KeyValues: 需要建立索引的键值对信息
注意：此字段可能返回 null，表示取不到有效值。
        :type KeyValues: list of KeyValueArrayInfo
        """
        self._CaseSensitive = None
        self._KeyValues = None

    @property
    def CaseSensitive(self):
        return self._CaseSensitive

    @CaseSensitive.setter
    def CaseSensitive(self, CaseSensitive):
        self._CaseSensitive = CaseSensitive

    @property
    def KeyValues(self):
        return self._KeyValues

    @KeyValues.setter
    def KeyValues(self, KeyValues):
        self._KeyValues = KeyValues


    def _deserialize(self, params):
        self._CaseSensitive = params.get("CaseSensitive")
        if params.get("KeyValues") is not None:
            self._KeyValues = []
            for item in params.get("KeyValues"):
                obj = KeyValueArrayInfo()
                obj._deserialize(item)
                self._KeyValues.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class KeysLocalStorageRequest(AbstractModel):
    """KeysLocalStorage请求参数结构体

    """


class KeysLocalStorageResponse(AbstractModel):
    """KeysLocalStorage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Keys: 键列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Keys: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Keys = None
        self._RequestId = None

    @property
    def Keys(self):
        return self._Keys

    @Keys.setter
    def Keys(self, Keys):
        self._Keys = Keys

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Keys = params.get("Keys")
        self._RequestId = params.get("RequestId")


class LicenseBindDetail(AbstractModel):
    """授权绑定详情信息

    """

    def __init__(self):
        r"""
        :param _MachineName: 机器别名
        :type MachineName: str
        :param _MachineWanIp: 机器公网IP
        :type MachineWanIp: str
        :param _MachineIp: 机器内网IP
        :type MachineIp: str
        :param _Quuid: 云服务器UUID
        :type Quuid: str
        :param _Uuid: 主机安全客户端UUID
        :type Uuid: str
        :param _Tags: 标签信息
        :type Tags: list of str
        :param _AgentStatus: 主机安全客户端状态,OFFLINE 离线,ONLINE 在线,UNINSTALL 未安装
        :type AgentStatus: str
        :param _IsUnBind: 是否允许解绑,false 不允许解绑
        :type IsUnBind: bool
        :param _IsSwitchBind: 是否允许换绑,false 不允许换绑
        :type IsSwitchBind: bool
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineName = None
        self._MachineWanIp = None
        self._MachineIp = None
        self._Quuid = None
        self._Uuid = None
        self._Tags = None
        self._AgentStatus = None
        self._IsUnBind = None
        self._IsSwitchBind = None
        self._MachineExtraInfo = None

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def AgentStatus(self):
        return self._AgentStatus

    @AgentStatus.setter
    def AgentStatus(self, AgentStatus):
        self._AgentStatus = AgentStatus

    @property
    def IsUnBind(self):
        return self._IsUnBind

    @IsUnBind.setter
    def IsUnBind(self, IsUnBind):
        self._IsUnBind = IsUnBind

    @property
    def IsSwitchBind(self):
        return self._IsSwitchBind

    @IsSwitchBind.setter
    def IsSwitchBind(self, IsSwitchBind):
        self._IsSwitchBind = IsSwitchBind

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineName = params.get("MachineName")
        self._MachineWanIp = params.get("MachineWanIp")
        self._MachineIp = params.get("MachineIp")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._Tags = params.get("Tags")
        self._AgentStatus = params.get("AgentStatus")
        self._IsUnBind = params.get("IsUnBind")
        self._IsSwitchBind = params.get("IsSwitchBind")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LicenseBindTaskDetail(AbstractModel):
    """授权绑定任务详情

    """

    def __init__(self):
        r"""
        :param _Quuid: 云服务器UUID
        :type Quuid: str
        :param _ErrMsg: 错误信息
        :type ErrMsg: str
        :param _Status: 0 执行中, 1 成功,2失败
        :type Status: int
        :param _FixMessage: 修复建议
        :type FixMessage: str
        :param _MachineExtraInfo: 机器额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Quuid = None
        self._ErrMsg = None
        self._Status = None
        self._FixMessage = None
        self._MachineExtraInfo = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def FixMessage(self):
        return self._FixMessage

    @FixMessage.setter
    def FixMessage(self, FixMessage):
        self._FixMessage = FixMessage

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._ErrMsg = params.get("ErrMsg")
        self._Status = params.get("Status")
        self._FixMessage = params.get("FixMessage")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LicenseDetail(AbstractModel):
    """授权订单列表对象

    """

    def __init__(self):
        r"""
        :param _LicenseId: 授权ID
        :type LicenseId: int
        :param _LicenseType: 授权类型,0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        :type LicenseType: int
        :param _LicenseStatus: 授权状态 0 未使用,1 部分使用, 2 已用完, 3 不可用
注意：此字段可能返回 null，表示取不到有效值。
        :type LicenseStatus: int
        :param _LicenseCnt: 总授权数
        :type LicenseCnt: int
        :param _UsedLicenseCnt: 已使用授权数
        :type UsedLicenseCnt: int
        :param _OrderStatus: 订单状态 1 正常 2隔离, 3销毁
        :type OrderStatus: int
        :param _Deadline: 截止日期
        :type Deadline: str
        :param _ResourceId: 订单资源ID
        :type ResourceId: str
        :param _AutoRenewFlag: 0 初始化,1 自动续费,2 不自动续费
        :type AutoRenewFlag: int
        :param _ProjectId: 项目ID
        :type ProjectId: int
        :param _TaskId: 任务ID ,默认0 ,查询绑定进度用
        :type TaskId: int
        :param _BuyTime: 购买时间
        :type BuyTime: str
        :param _SourceType: 是否试用订单.
        :type SourceType: int
        :param _Alias: 资源别名
        :type Alias: str
        :param _Tags: 平台标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tags: list of Tags
        :param _FreezeNum: 冻结数,当为0时 为未冻结,非0 则表示冻结授权数额
注意：此字段可能返回 null，表示取不到有效值。
        :type FreezeNum: int
        """
        self._LicenseId = None
        self._LicenseType = None
        self._LicenseStatus = None
        self._LicenseCnt = None
        self._UsedLicenseCnt = None
        self._OrderStatus = None
        self._Deadline = None
        self._ResourceId = None
        self._AutoRenewFlag = None
        self._ProjectId = None
        self._TaskId = None
        self._BuyTime = None
        self._SourceType = None
        self._Alias = None
        self._Tags = None
        self._FreezeNum = None

    @property
    def LicenseId(self):
        return self._LicenseId

    @LicenseId.setter
    def LicenseId(self, LicenseId):
        self._LicenseId = LicenseId

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def LicenseStatus(self):
        return self._LicenseStatus

    @LicenseStatus.setter
    def LicenseStatus(self, LicenseStatus):
        self._LicenseStatus = LicenseStatus

    @property
    def LicenseCnt(self):
        return self._LicenseCnt

    @LicenseCnt.setter
    def LicenseCnt(self, LicenseCnt):
        self._LicenseCnt = LicenseCnt

    @property
    def UsedLicenseCnt(self):
        return self._UsedLicenseCnt

    @UsedLicenseCnt.setter
    def UsedLicenseCnt(self, UsedLicenseCnt):
        self._UsedLicenseCnt = UsedLicenseCnt

    @property
    def OrderStatus(self):
        return self._OrderStatus

    @OrderStatus.setter
    def OrderStatus(self, OrderStatus):
        self._OrderStatus = OrderStatus

    @property
    def Deadline(self):
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def AutoRenewFlag(self):
        return self._AutoRenewFlag

    @AutoRenewFlag.setter
    def AutoRenewFlag(self, AutoRenewFlag):
        self._AutoRenewFlag = AutoRenewFlag

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def BuyTime(self):
        return self._BuyTime

    @BuyTime.setter
    def BuyTime(self, BuyTime):
        self._BuyTime = BuyTime

    @property
    def SourceType(self):
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def FreezeNum(self):
        return self._FreezeNum

    @FreezeNum.setter
    def FreezeNum(self, FreezeNum):
        self._FreezeNum = FreezeNum


    def _deserialize(self, params):
        self._LicenseId = params.get("LicenseId")
        self._LicenseType = params.get("LicenseType")
        self._LicenseStatus = params.get("LicenseStatus")
        self._LicenseCnt = params.get("LicenseCnt")
        self._UsedLicenseCnt = params.get("UsedLicenseCnt")
        self._OrderStatus = params.get("OrderStatus")
        self._Deadline = params.get("Deadline")
        self._ResourceId = params.get("ResourceId")
        self._AutoRenewFlag = params.get("AutoRenewFlag")
        self._ProjectId = params.get("ProjectId")
        self._TaskId = params.get("TaskId")
        self._BuyTime = params.get("BuyTime")
        self._SourceType = params.get("SourceType")
        self._Alias = params.get("Alias")
        if params.get("Tags") is not None:
            self._Tags = []
            for item in params.get("Tags"):
                obj = Tags()
                obj._deserialize(item)
                self._Tags.append(obj)
        self._FreezeNum = params.get("FreezeNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LicenseOrder(AbstractModel):
    """授权订单对象内容

    """

    def __init__(self):
        r"""
        :param _LicenseId: 授权ID
        :type LicenseId: int
        :param _LicenseType: 授权类型
        :type LicenseType: int
        :param _Status: 授权订单资源状态
        :type Status: int
        :param _SourceType: 订单类型
        :type SourceType: int
        :param _ResourceId: 资源ID
        :type ResourceId: str
        """
        self._LicenseId = None
        self._LicenseType = None
        self._Status = None
        self._SourceType = None
        self._ResourceId = None

    @property
    def LicenseId(self):
        return self._LicenseId

    @LicenseId.setter
    def LicenseId(self, LicenseId):
        self._LicenseId = LicenseId

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def SourceType(self):
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId


    def _deserialize(self, params):
        self._LicenseId = params.get("LicenseId")
        self._LicenseType = params.get("LicenseType")
        self._Status = params.get("Status")
        self._SourceType = params.get("SourceType")
        self._ResourceId = params.get("ResourceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LicenseUnBindRsp(AbstractModel):
    """授权解绑信息

    """

    def __init__(self):
        r"""
        :param _Quuid: QUUID 云服务器uuid,轻量服务器uuid,边缘计算 uuid
        :type Quuid: str
        :param _ErrMsg: 失败原因
        :type ErrMsg: str
        """
        self._Quuid = None
        self._ErrMsg = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._ErrMsg = params.get("ErrMsg")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LogHistogram(AbstractModel):
    """直方图周期内统计结果详情

    """

    def __init__(self):
        r"""
        :param _Count: 统计周期内的日志条数
        :type Count: int
        :param _TimeStamp: 按 period 取整后的 unix timestamp： 单位毫秒
        :type TimeStamp: int
        """
        self._Count = None
        self._TimeStamp = None

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def TimeStamp(self):
        return self._TimeStamp

    @TimeStamp.setter
    def TimeStamp(self, TimeStamp):
        self._TimeStamp = TimeStamp


    def _deserialize(self, params):
        self._Count = params.get("Count")
        self._TimeStamp = params.get("TimeStamp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LogInfo(AbstractModel):
    """日志详情

    """

    def __init__(self):
        r"""
        :param _Content: 日志内容的Json序列化字符串
        :type Content: str
        :param _FileName: 日志文件名称
        :type FileName: str
        :param _Source: 日志来源IP
        :type Source: str
        :param _TimeStamp: 日志时间，单位ms
        :type TimeStamp: int
        """
        self._Content = None
        self._FileName = None
        self._Source = None
        self._TimeStamp = None

    @property
    def Content(self):
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def Source(self):
        return self._Source

    @Source.setter
    def Source(self, Source):
        self._Source = Source

    @property
    def TimeStamp(self):
        return self._TimeStamp

    @TimeStamp.setter
    def TimeStamp(self, TimeStamp):
        self._TimeStamp = TimeStamp


    def _deserialize(self, params):
        self._Content = params.get("Content")
        self._FileName = params.get("FileName")
        self._Source = params.get("Source")
        self._TimeStamp = params.get("TimeStamp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LogStorageRecord(AbstractModel):
    """日志存储量记录

    """

    def __init__(self):
        r"""
        :param _Month: 年月份
注意：此字段可能返回 null，表示取不到有效值。
        :type Month: str
        :param _UsedSize: 存储量，字节
注意：此字段可能返回 null，表示取不到有效值。
        :type UsedSize: int
        :param _InquireSize: 总量，字节
注意：此字段可能返回 null，表示取不到有效值。
        :type InquireSize: int
        """
        self._Month = None
        self._UsedSize = None
        self._InquireSize = None

    @property
    def Month(self):
        return self._Month

    @Month.setter
    def Month(self, Month):
        self._Month = Month

    @property
    def UsedSize(self):
        return self._UsedSize

    @UsedSize.setter
    def UsedSize(self, UsedSize):
        self._UsedSize = UsedSize

    @property
    def InquireSize(self):
        return self._InquireSize

    @InquireSize.setter
    def InquireSize(self, InquireSize):
        self._InquireSize = InquireSize


    def _deserialize(self, params):
        self._Month = params.get("Month")
        self._UsedSize = params.get("UsedSize")
        self._InquireSize = params.get("InquireSize")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LoginWhiteCombinedInfo(AbstractModel):
    """异地登录合并后白名单

    """

    def __init__(self):
        r"""
        :param _Places: 白名单地域
注意：此字段可能返回 null，表示取不到有效值。
        :type Places: list of Place
        :param _UserName: 白名单用户（多个用户逗号隔开）
        :type UserName: str
        :param _SrcIp: 白名单IP（多个IP逗号隔开）
        :type SrcIp: str
        :param _Locale: 地域字符串
        :type Locale: str
        :param _Remark: 备注
        :type Remark: str
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        :param _IsGlobal: 是否对全局生效, 1：全局有效 0: 对指定主机列表生效'
        :type IsGlobal: int
        :param _Name: 白名单名字：IsLocal=1时固定为：全部服务器；单台机器时为机器内网IP，多台服务器时为服务器数量，如：11台
        :type Name: str
        :param _Desc: 仅在单台服务器时，返回服务器名称
        :type Desc: str
        :param _Id: 白名单ID
        :type Id: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 最近修改时间
        :type ModifyTime: str
        :param _Uuid: 服务器Uuid
        :type Uuid: str
        :param _Locations: 登陆地
        :type Locations: str
        """
        self._Places = None
        self._UserName = None
        self._SrcIp = None
        self._Locale = None
        self._Remark = None
        self._StartTime = None
        self._EndTime = None
        self._IsGlobal = None
        self._Name = None
        self._Desc = None
        self._Id = None
        self._CreateTime = None
        self._ModifyTime = None
        self._Uuid = None
        self._Locations = None

    @property
    def Places(self):
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def Locale(self):
        return self._Locale

    @Locale.setter
    def Locale(self, Locale):
        self._Locale = Locale

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Desc(self):
        return self._Desc

    @Desc.setter
    def Desc(self, Desc):
        self._Desc = Desc

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Locations(self):
        return self._Locations

    @Locations.setter
    def Locations(self, Locations):
        self._Locations = Locations


    def _deserialize(self, params):
        if params.get("Places") is not None:
            self._Places = []
            for item in params.get("Places"):
                obj = Place()
                obj._deserialize(item)
                self._Places.append(obj)
        self._UserName = params.get("UserName")
        self._SrcIp = params.get("SrcIp")
        self._Locale = params.get("Locale")
        self._Remark = params.get("Remark")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._IsGlobal = params.get("IsGlobal")
        self._Name = params.get("Name")
        self._Desc = params.get("Desc")
        self._Id = params.get("Id")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._Uuid = params.get("Uuid")
        self._Locations = params.get("Locations")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class LoginWhiteLists(AbstractModel):
    """异地登录白名单

    """

    def __init__(self):
        r"""
        :param _Id: 记录ID
        :type Id: int
        :param _Uuid: 云镜客户端ID
        :type Uuid: str
        :param _Places: 白名单地域
        :type Places: list of Place
        :param _UserName: 白名单用户（多个用户逗号隔开）
        :type UserName: str
        :param _SrcIp: 白名单IP（多个IP逗号隔开）
        :type SrcIp: str
        :param _IsGlobal: 是否为全局规则
        :type IsGlobal: bool
        :param _CreateTime: 创建白名单时间
        :type CreateTime: str
        :param _ModifyTime: 修改白名单时间
        :type ModifyTime: str
        :param _MachineName: 机器名
        :type MachineName: str
        :param _HostIp: 机器IP
        :type HostIp: str
        :param _StartTime: 起始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        """
        self._Id = None
        self._Uuid = None
        self._Places = None
        self._UserName = None
        self._SrcIp = None
        self._IsGlobal = None
        self._CreateTime = None
        self._ModifyTime = None
        self._MachineName = None
        self._HostIp = None
        self._StartTime = None
        self._EndTime = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Places(self):
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        if params.get("Places") is not None:
            self._Places = []
            for item in params.get("Places"):
                obj = Place()
                obj._deserialize(item)
                self._Places.append(obj)
        self._UserName = params.get("UserName")
        self._SrcIp = params.get("SrcIp")
        self._IsGlobal = params.get("IsGlobal")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._MachineName = params.get("MachineName")
        self._HostIp = params.get("HostIp")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Machine(AbstractModel):
    """主机列表

    """

    def __init__(self):
        r"""
        :param _MachineName: 主机名称。
        :type MachineName: str
        :param _MachineOs: 主机系统。
        :type MachineOs: str
        :param _MachineStatus: 主机状态。
<li>OFFLINE: 离线  </li>
<li>ONLINE: 在线</li>
<li>SHUTDOWN: 已关机</li>
<li>UNINSTALLED: 未防护</li>
        :type MachineStatus: str
        :param _Uuid: 云镜客户端唯一Uuid，若客户端长时间不在线将返回空字符。
        :type Uuid: str
        :param _Quuid: CVM或BM机器唯一Uuid。
        :type Quuid: str
        :param _VulNum: 漏洞数。
        :type VulNum: int
        :param _MachineIp: 主机IP。
        :type MachineIp: str
        :param _IsProVersion: 是否是专业版。
<li>true： 是</li>
<li>false：否</li>
        :type IsProVersion: bool
        :param _MachineWanIp: 主机外网IP。
        :type MachineWanIp: str
        :param _PayMode: 主机状态。
<li>POSTPAY: 表示后付费，即按量计费  </li>
<li>PREPAY: 表示预付费，即包年包月</li>
        :type PayMode: str
        :param _MalwareNum: 木马数。
        :type MalwareNum: int
        :param _Tag: 标签信息
        :type Tag: list of MachineTag
        :param _BaselineNum: 基线风险数。
        :type BaselineNum: int
        :param _CyberAttackNum: 网络风险数。
        :type CyberAttackNum: int
        :param _SecurityStatus: 风险状态。
<li>SAFE：安全</li>
<li>RISK：风险</li>
<li>UNKNOWN：未知</li>
        :type SecurityStatus: str
        :param _InvasionNum: 入侵事件数
        :type InvasionNum: int
        :param _RegionInfo: 地域信息
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        :param _InstanceState: 实例状态 TERMINATED_PRO_VERSION 已销毁
        :type InstanceState: str
        :param _LicenseStatus: 防篡改 授权状态 1 授权 0 未授权
        :type LicenseStatus: int
        :param _ProjectId: 项目ID
        :type ProjectId: int
        :param _HasAssetScan: 是否有资产扫描接口，0无，1有
        :type HasAssetScan: int
        :param _MachineType: 机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :type MachineType: str
        :param _KernelVersion: 内核版本
        :type KernelVersion: str
        :param _ProtectType: 防护版本：BASIC_VERSION 基础版， PRO_VERSION 专业版，Flagship 旗舰版，GENERAL_DISCOUNT 普惠版
        :type ProtectType: str
        :param _CloudTags: 云标签信息
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudTags: list of Tags
        :param _IsAddedOnTheFifteen: 是否15天内新增的主机 0：非15天内新增的主机，1：15天内增加的主机
注意：此字段可能返回 null，表示取不到有效值。
        :type IsAddedOnTheFifteen: int
        :param _IpList: 主机ip列表
注意：此字段可能返回 null，表示取不到有效值。
        :type IpList: str
        :param _VpcId: 所属网络
注意：此字段可能返回 null，表示取不到有效值。
        :type VpcId: str
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _InstanceId: 实例ID
        :type InstanceId: str
        :param _Remark: 备注信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._MachineName = None
        self._MachineOs = None
        self._MachineStatus = None
        self._Uuid = None
        self._Quuid = None
        self._VulNum = None
        self._MachineIp = None
        self._IsProVersion = None
        self._MachineWanIp = None
        self._PayMode = None
        self._MalwareNum = None
        self._Tag = None
        self._BaselineNum = None
        self._CyberAttackNum = None
        self._SecurityStatus = None
        self._InvasionNum = None
        self._RegionInfo = None
        self._InstanceState = None
        self._LicenseStatus = None
        self._ProjectId = None
        self._HasAssetScan = None
        self._MachineType = None
        self._KernelVersion = None
        self._ProtectType = None
        self._CloudTags = None
        self._IsAddedOnTheFifteen = None
        self._IpList = None
        self._VpcId = None
        self._MachineExtraInfo = None
        self._InstanceId = None
        self._Remark = None

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineOs(self):
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def VulNum(self):
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def IsProVersion(self):
        return self._IsProVersion

    @IsProVersion.setter
    def IsProVersion(self, IsProVersion):
        self._IsProVersion = IsProVersion

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def PayMode(self):
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def MalwareNum(self):
        return self._MalwareNum

    @MalwareNum.setter
    def MalwareNum(self, MalwareNum):
        self._MalwareNum = MalwareNum

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def BaselineNum(self):
        return self._BaselineNum

    @BaselineNum.setter
    def BaselineNum(self, BaselineNum):
        self._BaselineNum = BaselineNum

    @property
    def CyberAttackNum(self):
        return self._CyberAttackNum

    @CyberAttackNum.setter
    def CyberAttackNum(self, CyberAttackNum):
        self._CyberAttackNum = CyberAttackNum

    @property
    def SecurityStatus(self):
        return self._SecurityStatus

    @SecurityStatus.setter
    def SecurityStatus(self, SecurityStatus):
        self._SecurityStatus = SecurityStatus

    @property
    def InvasionNum(self):
        return self._InvasionNum

    @InvasionNum.setter
    def InvasionNum(self, InvasionNum):
        self._InvasionNum = InvasionNum

    @property
    def RegionInfo(self):
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def InstanceState(self):
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def LicenseStatus(self):
        return self._LicenseStatus

    @LicenseStatus.setter
    def LicenseStatus(self, LicenseStatus):
        self._LicenseStatus = LicenseStatus

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def HasAssetScan(self):
        return self._HasAssetScan

    @HasAssetScan.setter
    def HasAssetScan(self, HasAssetScan):
        self._HasAssetScan = HasAssetScan

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def KernelVersion(self):
        return self._KernelVersion

    @KernelVersion.setter
    def KernelVersion(self, KernelVersion):
        self._KernelVersion = KernelVersion

    @property
    def ProtectType(self):
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def CloudTags(self):
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def IsAddedOnTheFifteen(self):
        return self._IsAddedOnTheFifteen

    @IsAddedOnTheFifteen.setter
    def IsAddedOnTheFifteen(self, IsAddedOnTheFifteen):
        self._IsAddedOnTheFifteen = IsAddedOnTheFifteen

    @property
    def IpList(self):
        return self._IpList

    @IpList.setter
    def IpList(self, IpList):
        self._IpList = IpList

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._MachineName = params.get("MachineName")
        self._MachineOs = params.get("MachineOs")
        self._MachineStatus = params.get("MachineStatus")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._VulNum = params.get("VulNum")
        self._MachineIp = params.get("MachineIp")
        self._IsProVersion = params.get("IsProVersion")
        self._MachineWanIp = params.get("MachineWanIp")
        self._PayMode = params.get("PayMode")
        self._MalwareNum = params.get("MalwareNum")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._BaselineNum = params.get("BaselineNum")
        self._CyberAttackNum = params.get("CyberAttackNum")
        self._SecurityStatus = params.get("SecurityStatus")
        self._InvasionNum = params.get("InvasionNum")
        if params.get("RegionInfo") is not None:
            self._RegionInfo = RegionInfo()
            self._RegionInfo._deserialize(params.get("RegionInfo"))
        self._InstanceState = params.get("InstanceState")
        self._LicenseStatus = params.get("LicenseStatus")
        self._ProjectId = params.get("ProjectId")
        self._HasAssetScan = params.get("HasAssetScan")
        self._MachineType = params.get("MachineType")
        self._KernelVersion = params.get("KernelVersion")
        self._ProtectType = params.get("ProtectType")
        if params.get("CloudTags") is not None:
            self._CloudTags = []
            for item in params.get("CloudTags"):
                obj = Tags()
                obj._deserialize(item)
                self._CloudTags.append(obj)
        self._IsAddedOnTheFifteen = params.get("IsAddedOnTheFifteen")
        self._IpList = params.get("IpList")
        self._VpcId = params.get("VpcId")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._InstanceId = params.get("InstanceId")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MachineClearHistory(AbstractModel):
    """机器清理记录对象

    """

    def __init__(self):
        r"""
        :param _Id: ID值
        :type Id: int
        :param _InstanceId: 实例ID
        :type InstanceId: str
        :param _InstanceName: 实例名称
        :type InstanceName: str
        :param _PublicIp: 公网IP
        :type PublicIp: str
        :param _PrivateIp: 内网IP
        :type PrivateIp: str
        :param _AgentLastOfflineTime: 客户端最后离线时间
        :type AgentLastOfflineTime: str
        :param _CreateTime: 创建时间
        :type CreateTime: str
        """
        self._Id = None
        self._InstanceId = None
        self._InstanceName = None
        self._PublicIp = None
        self._PrivateIp = None
        self._AgentLastOfflineTime = None
        self._CreateTime = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def InstanceName(self):
        return self._InstanceName

    @InstanceName.setter
    def InstanceName(self, InstanceName):
        self._InstanceName = InstanceName

    @property
    def PublicIp(self):
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def PrivateIp(self):
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def AgentLastOfflineTime(self):
        return self._AgentLastOfflineTime

    @AgentLastOfflineTime.setter
    def AgentLastOfflineTime(self, AgentLastOfflineTime):
        self._AgentLastOfflineTime = AgentLastOfflineTime

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._InstanceId = params.get("InstanceId")
        self._InstanceName = params.get("InstanceName")
        self._PublicIp = params.get("PublicIp")
        self._PrivateIp = params.get("PrivateIp")
        self._AgentLastOfflineTime = params.get("AgentLastOfflineTime")
        self._CreateTime = params.get("CreateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MachineExtraInfo(AbstractModel):
    """服务器基础信息

    """

    def __init__(self):
        r"""
        :param _WanIP: 公网IP
注意：此字段可能返回 null，表示取不到有效值。
        :type WanIP: str
        :param _PrivateIP: 内网IP
注意：此字段可能返回 null，表示取不到有效值。
        :type PrivateIP: str
        :param _NetworkType: 网络类型，1:vpc网络 2:基础网络 3:非腾讯云网络
注意：此字段可能返回 null，表示取不到有效值。
        :type NetworkType: int
        :param _NetworkName: 网络名，vpc网络情况下会返回vpc_id
注意：此字段可能返回 null，表示取不到有效值。
        :type NetworkName: str
        :param _InstanceID: 实例ID
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceID: str
        :param _HostName: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        """
        self._WanIP = None
        self._PrivateIP = None
        self._NetworkType = None
        self._NetworkName = None
        self._InstanceID = None
        self._HostName = None

    @property
    def WanIP(self):
        return self._WanIP

    @WanIP.setter
    def WanIP(self, WanIP):
        self._WanIP = WanIP

    @property
    def PrivateIP(self):
        return self._PrivateIP

    @PrivateIP.setter
    def PrivateIP(self, PrivateIP):
        self._PrivateIP = PrivateIP

    @property
    def NetworkType(self):
        return self._NetworkType

    @NetworkType.setter
    def NetworkType(self, NetworkType):
        self._NetworkType = NetworkType

    @property
    def NetworkName(self):
        return self._NetworkName

    @NetworkName.setter
    def NetworkName(self, NetworkName):
        self._NetworkName = NetworkName

    @property
    def InstanceID(self):
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName


    def _deserialize(self, params):
        self._WanIP = params.get("WanIP")
        self._PrivateIP = params.get("PrivateIP")
        self._NetworkType = params.get("NetworkType")
        self._NetworkName = params.get("NetworkName")
        self._InstanceID = params.get("InstanceID")
        self._HostName = params.get("HostName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MachineFileTamperRule(AbstractModel):
    """查询主机相关核心文件监控规则详情

    """

    def __init__(self):
        r"""
        :param _Name: 规则名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _RuleCategory: 规则类型 0 ：系统规则  1：用户规则
        :type RuleCategory: int
        :param _Rule: 规则
        :type Rule: list of FileTamperRule
        :param _Id: 唯一id
        :type Id: int
        """
        self._Name = None
        self._RuleCategory = None
        self._Rule = None
        self._Id = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def RuleCategory(self):
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._RuleCategory = params.get("RuleCategory")
        if params.get("Rule") is not None:
            self._Rule = []
            for item in params.get("Rule"):
                obj = FileTamperRule()
                obj._deserialize(item)
                self._Rule.append(obj)
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MachineLicenseDetail(AbstractModel):
    """机器绑定授权信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _PayMode: xx
        :type PayMode: int
        :param _ResourceId: xxx
        :type ResourceId: str
        :param _InquireKey: xxx
        :type InquireKey: str
        :param _SourceType: xxx
        :type SourceType: int
        """
        self._Quuid = None
        self._PayMode = None
        self._ResourceId = None
        self._InquireKey = None
        self._SourceType = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def PayMode(self):
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def InquireKey(self):
        return self._InquireKey

    @InquireKey.setter
    def InquireKey(self, InquireKey):
        self._InquireKey = InquireKey

    @property
    def SourceType(self):
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._PayMode = params.get("PayMode")
        self._ResourceId = params.get("ResourceId")
        self._InquireKey = params.get("InquireKey")
        self._SourceType = params.get("SourceType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MachineSimple(AbstractModel):
    """主机列表穿梭框

    """

    def __init__(self):
        r"""
        :param _MachineName: 主机名称。
        :type MachineName: str
        :param _MachineOs: 主机系统。
        :type MachineOs: str
        :param _Uuid: 云镜客户端唯一Uuid，若客户端长时间不在线将返回空字符。
        :type Uuid: str
        :param _Quuid: CVM或BM机器唯一Uuid。
        :type Quuid: str
        :param _MachineIp: 主机IP。
        :type MachineIp: str
        :param _IsProVersion: 是否是专业版。
<li>true： 是</li>
<li>false：否</li>
        :type IsProVersion: bool
        :param _MachineWanIp: 主机外网IP。
        :type MachineWanIp: str
        :param _PayMode: 主机状态。
<li>POSTPAY: 表示后付费，即按量计费  </li>
<li>PREPAY: 表示预付费，即包年包月</li>
        :type PayMode: str
        :param _Tag: 标签信息
        :type Tag: list of MachineTag
        :param _RegionInfo: 地域信息
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        :param _InstanceState: 实例状态 TERMINATED_PRO_VERSION 已销毁
        :type InstanceState: str
        :param _ProjectId: 项目ID
        :type ProjectId: int
        :param _MachineType: 机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :type MachineType: str
        :param _KernelVersion: 内核版本
        :type KernelVersion: str
        :param _ProtectType: 防护版本 BASIC_VERSION 基础版， PRO_VERSION 专业版，Flagship 旗舰版，GENERAL_DISCOUNT 普惠版.
        :type ProtectType: str
        :param _LicenseOrder: 授权订单对象
注意：此字段可能返回 null，表示取不到有效值。
        :type LicenseOrder: :class:`tencentcloud.cwp.v20180228.models.LicenseOrder`
        :param _CloudTags: 云标签信息
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudTags: list of Tags
        :param _InstanceId: 实例ID
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceId: str
        """
        self._MachineName = None
        self._MachineOs = None
        self._Uuid = None
        self._Quuid = None
        self._MachineIp = None
        self._IsProVersion = None
        self._MachineWanIp = None
        self._PayMode = None
        self._Tag = None
        self._RegionInfo = None
        self._InstanceState = None
        self._ProjectId = None
        self._MachineType = None
        self._KernelVersion = None
        self._ProtectType = None
        self._LicenseOrder = None
        self._CloudTags = None
        self._InstanceId = None

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineOs(self):
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def IsProVersion(self):
        return self._IsProVersion

    @IsProVersion.setter
    def IsProVersion(self, IsProVersion):
        self._IsProVersion = IsProVersion

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def PayMode(self):
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def RegionInfo(self):
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def InstanceState(self):
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def KernelVersion(self):
        return self._KernelVersion

    @KernelVersion.setter
    def KernelVersion(self, KernelVersion):
        self._KernelVersion = KernelVersion

    @property
    def ProtectType(self):
        return self._ProtectType

    @ProtectType.setter
    def ProtectType(self, ProtectType):
        self._ProtectType = ProtectType

    @property
    def LicenseOrder(self):
        return self._LicenseOrder

    @LicenseOrder.setter
    def LicenseOrder(self, LicenseOrder):
        self._LicenseOrder = LicenseOrder

    @property
    def CloudTags(self):
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId


    def _deserialize(self, params):
        self._MachineName = params.get("MachineName")
        self._MachineOs = params.get("MachineOs")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._MachineIp = params.get("MachineIp")
        self._IsProVersion = params.get("IsProVersion")
        self._MachineWanIp = params.get("MachineWanIp")
        self._PayMode = params.get("PayMode")
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        if params.get("RegionInfo") is not None:
            self._RegionInfo = RegionInfo()
            self._RegionInfo._deserialize(params.get("RegionInfo"))
        self._InstanceState = params.get("InstanceState")
        self._ProjectId = params.get("ProjectId")
        self._MachineType = params.get("MachineType")
        self._KernelVersion = params.get("KernelVersion")
        self._ProtectType = params.get("ProtectType")
        if params.get("LicenseOrder") is not None:
            self._LicenseOrder = LicenseOrder()
            self._LicenseOrder._deserialize(params.get("LicenseOrder"))
        if params.get("CloudTags") is not None:
            self._CloudTags = []
            for item in params.get("CloudTags"):
                obj = Tags()
                obj._deserialize(item)
                self._CloudTags.append(obj)
        self._InstanceId = params.get("InstanceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MachineSnapshotInfo(AbstractModel):
    """机器快照信息

    """

    def __init__(self):
        r"""
        :param _Quuid: cvm id
        :type Quuid: str
        :param _HostName: 主机名称
        :type HostName: str
        :param _HostIp: 主机ip
        :type HostIp: str
        :param _SnapshotName: 快照名称
        :type SnapshotName: str
        :param _CreateTime: 快照创建时间
        :type CreateTime: str
        :param _DiskId: 磁盘id
        :type DiskId: str
        :param _InstanceId: 实例Id
        :type InstanceId: str
        :param _RegionId: 地区id
        :type RegionId: int
        :param _SnapshotId: 快照id
        :type SnapshotId: str
        """
        self._Quuid = None
        self._HostName = None
        self._HostIp = None
        self._SnapshotName = None
        self._CreateTime = None
        self._DiskId = None
        self._InstanceId = None
        self._RegionId = None
        self._SnapshotId = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def SnapshotName(self):
        return self._SnapshotName

    @SnapshotName.setter
    def SnapshotName(self, SnapshotName):
        self._SnapshotName = SnapshotName

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def DiskId(self):
        return self._DiskId

    @DiskId.setter
    def DiskId(self, DiskId):
        self._DiskId = DiskId

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def RegionId(self):
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def SnapshotId(self):
        return self._SnapshotId

    @SnapshotId.setter
    def SnapshotId(self, SnapshotId):
        self._SnapshotId = SnapshotId


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._SnapshotName = params.get("SnapshotName")
        self._CreateTime = params.get("CreateTime")
        self._DiskId = params.get("DiskId")
        self._InstanceId = params.get("InstanceId")
        self._RegionId = params.get("RegionId")
        self._SnapshotId = params.get("SnapshotId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MachineTag(AbstractModel):
    """服务器标签信息

    """

    def __init__(self):
        r"""
        :param _Rid: 关联标签ID
        :type Rid: int
        :param _Name: 标签名
        :type Name: str
        :param _TagId: 标签ID
        :type TagId: int
        """
        self._Rid = None
        self._Name = None
        self._TagId = None

    @property
    def Rid(self):
        return self._Rid

    @Rid.setter
    def Rid(self, Rid):
        self._Rid = Rid

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def TagId(self):
        return self._TagId

    @TagId.setter
    def TagId(self, TagId):
        self._TagId = TagId


    def _deserialize(self, params):
        self._Rid = params.get("Rid")
        self._Name = params.get("Name")
        self._TagId = params.get("TagId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MalWareList(AbstractModel):
    """木马列表集合

    """

    def __init__(self):
        r"""
        :param _HostIp: 服务器ip
        :type HostIp: str
        :param _Uuid: 唯一UUID
        :type Uuid: str
        :param _FilePath: 路径
        :type FilePath: str
        :param _VirusName: 描述
        :type VirusName: str
        :param _Status: 状态；4-:待处理，5-已信任，6-已隔离，8-文件已删除, 14:已处理
        :type Status: int
        :param _Id: 唯一ID
注意：此字段可能返回 null，表示取不到有效值。
        :type Id: int
        :param _Alias: 主机别名
        :type Alias: str
        :param _Tags: 特性标签，已废弃字段，不会再返回标签，详情中才会返回标签信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Tags: list of str
        :param _FileCreateTime: 首次运行时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FileCreateTime: str
        :param _FileModifierTime: 最近运行时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FileModifierTime: str
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _LatestScanTime: 最近扫描时间
        :type LatestScanTime: str
        :param _Level: 风险等级 0未知、1低、2中、3高、4严重
        :type Level: int
        :param _CheckPlatform: '木马检测平台用,分割 1云查杀引擎、2TAV、3binaryAi、4异常行为、5威胁情报
        :type CheckPlatform: str
        :param _ProcessExists: 木马进程是否存在 0:不存在，1:存在
        :type ProcessExists: int
        :param _FileExists: 木马文件是否存在 0:不存在，1:存在
        :type FileExists: int
        :param _Quuid: cvm quuid
        :type Quuid: str
        :param _MD5: 木马样本md5
        :type MD5: str
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._HostIp = None
        self._Uuid = None
        self._FilePath = None
        self._VirusName = None
        self._Status = None
        self._Id = None
        self._Alias = None
        self._Tags = None
        self._FileCreateTime = None
        self._FileModifierTime = None
        self._CreateTime = None
        self._LatestScanTime = None
        self._Level = None
        self._CheckPlatform = None
        self._ProcessExists = None
        self._FileExists = None
        self._Quuid = None
        self._MD5 = None
        self._MachineExtraInfo = None

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def VirusName(self):
        return self._VirusName

    @VirusName.setter
    def VirusName(self, VirusName):
        self._VirusName = VirusName

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def FileCreateTime(self):
        return self._FileCreateTime

    @FileCreateTime.setter
    def FileCreateTime(self, FileCreateTime):
        self._FileCreateTime = FileCreateTime

    @property
    def FileModifierTime(self):
        return self._FileModifierTime

    @FileModifierTime.setter
    def FileModifierTime(self, FileModifierTime):
        self._FileModifierTime = FileModifierTime

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def LatestScanTime(self):
        return self._LatestScanTime

    @LatestScanTime.setter
    def LatestScanTime(self, LatestScanTime):
        self._LatestScanTime = LatestScanTime

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CheckPlatform(self):
        return self._CheckPlatform

    @CheckPlatform.setter
    def CheckPlatform(self, CheckPlatform):
        self._CheckPlatform = CheckPlatform

    @property
    def ProcessExists(self):
        return self._ProcessExists

    @ProcessExists.setter
    def ProcessExists(self, ProcessExists):
        self._ProcessExists = ProcessExists

    @property
    def FileExists(self):
        return self._FileExists

    @FileExists.setter
    def FileExists(self, FileExists):
        self._FileExists = FileExists

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MD5(self):
        return self._MD5

    @MD5.setter
    def MD5(self, MD5):
        self._MD5 = MD5

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._HostIp = params.get("HostIp")
        self._Uuid = params.get("Uuid")
        self._FilePath = params.get("FilePath")
        self._VirusName = params.get("VirusName")
        self._Status = params.get("Status")
        self._Id = params.get("Id")
        self._Alias = params.get("Alias")
        self._Tags = params.get("Tags")
        self._FileCreateTime = params.get("FileCreateTime")
        self._FileModifierTime = params.get("FileModifierTime")
        self._CreateTime = params.get("CreateTime")
        self._LatestScanTime = params.get("LatestScanTime")
        self._Level = params.get("Level")
        self._CheckPlatform = params.get("CheckPlatform")
        self._ProcessExists = params.get("ProcessExists")
        self._FileExists = params.get("FileExists")
        self._Quuid = params.get("Quuid")
        self._MD5 = params.get("MD5")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MaliciousRequestWhiteListInfo(AbstractModel):
    """恶意请求白名单列表信息

    """

    def __init__(self):
        r"""
        :param _Id: 白名单id
        :type Id: int
        :param _Domain: 域名
        :type Domain: str
        :param _Mark: 备注
        :type Mark: str
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 更新时间
        :type ModifyTime: str
        """
        self._Id = None
        self._Domain = None
        self._Mark = None
        self._CreateTime = None
        self._ModifyTime = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Domain(self):
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def Mark(self):
        return self._Mark

    @Mark.setter
    def Mark(self, Mark):
        self._Mark = Mark

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Domain = params.get("Domain")
        self._Mark = params.get("Mark")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MalwareInfo(AbstractModel):
    """恶意文件详情

    """

    def __init__(self):
        r"""
        :param _VirusName: 病毒名称
        :type VirusName: str
        :param _FileSize: 文件大小
        :type FileSize: int
        :param _MD5: 文件MD5
        :type MD5: str
        :param _FilePath: 文件地址
        :type FilePath: str
        :param _FileCreateTime: 首次运行时间
        :type FileCreateTime: str
        :param _FileModifierTime: 最近一次运行时间
        :type FileModifierTime: str
        :param _HarmDescribe: 危害描述
        :type HarmDescribe: str
        :param _SuggestScheme: 建议方案
        :type SuggestScheme: str
        :param _ServersName: 服务器名称
        :type ServersName: str
        :param _HostIp: 服务器IP
        :type HostIp: str
        :param _ProcessName: 进程名称
        :type ProcessName: str
        :param _ProcessID: 进程ID
        :type ProcessID: str
        :param _Tags: 标签特性
        :type Tags: list of str
        :param _Breadth: 影响广度 // 暂时不提供
注意：此字段可能返回 null，表示取不到有效值。
        :type Breadth: str
        :param _Heat: 查询热度 // 暂时不提供
注意：此字段可能返回 null，表示取不到有效值。
        :type Heat: str
        :param _Id: 唯一ID
        :type Id: int
        :param _FileName: 文件名称
        :type FileName: str
        :param _CreateTime: 首次发现时间
        :type CreateTime: str
        :param _LatestScanTime: 最近扫描时间
        :type LatestScanTime: str
        :param _Reference: 参考链接
        :type Reference: str
        :param _MachineWanIp: 外网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineWanIp: str
        :param _PsTree: 进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
注意：此字段可能返回 null，表示取不到有效值。
        :type PsTree: str
        :param _MachineStatus: 主机在线状态 OFFLINE  ONLINE
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineStatus: str
        :param _Status: 状态；4-:待处理，5-已信任，6-已隔离
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _Level: 风险等级 0提示、1低、2中、3高、4严重
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _CheckPlatform: 木马检测平台用,分割 1云查杀引擎、2TAV、3binaryAi、4异常行为、5威胁情报
注意：此字段可能返回 null，表示取不到有效值。
        :type CheckPlatform: str
        :param _Uuid: 主机uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _ModifyTime: 最近修改时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _StrFileAccessTime: 最近访问时间
注意：此字段可能返回 null，表示取不到有效值。
        :type StrFileAccessTime: str
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._VirusName = None
        self._FileSize = None
        self._MD5 = None
        self._FilePath = None
        self._FileCreateTime = None
        self._FileModifierTime = None
        self._HarmDescribe = None
        self._SuggestScheme = None
        self._ServersName = None
        self._HostIp = None
        self._ProcessName = None
        self._ProcessID = None
        self._Tags = None
        self._Breadth = None
        self._Heat = None
        self._Id = None
        self._FileName = None
        self._CreateTime = None
        self._LatestScanTime = None
        self._Reference = None
        self._MachineWanIp = None
        self._PsTree = None
        self._MachineStatus = None
        self._Status = None
        self._Level = None
        self._CheckPlatform = None
        self._Uuid = None
        self._ModifyTime = None
        self._StrFileAccessTime = None
        self._MachineExtraInfo = None

    @property
    def VirusName(self):
        return self._VirusName

    @VirusName.setter
    def VirusName(self, VirusName):
        self._VirusName = VirusName

    @property
    def FileSize(self):
        return self._FileSize

    @FileSize.setter
    def FileSize(self, FileSize):
        self._FileSize = FileSize

    @property
    def MD5(self):
        return self._MD5

    @MD5.setter
    def MD5(self, MD5):
        self._MD5 = MD5

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def FileCreateTime(self):
        return self._FileCreateTime

    @FileCreateTime.setter
    def FileCreateTime(self, FileCreateTime):
        self._FileCreateTime = FileCreateTime

    @property
    def FileModifierTime(self):
        return self._FileModifierTime

    @FileModifierTime.setter
    def FileModifierTime(self, FileModifierTime):
        self._FileModifierTime = FileModifierTime

    @property
    def HarmDescribe(self):
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def SuggestScheme(self):
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def ServersName(self):
        return self._ServersName

    @ServersName.setter
    def ServersName(self, ServersName):
        self._ServersName = ServersName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def ProcessID(self):
        return self._ProcessID

    @ProcessID.setter
    def ProcessID(self, ProcessID):
        self._ProcessID = ProcessID

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Breadth(self):
        return self._Breadth

    @Breadth.setter
    def Breadth(self, Breadth):
        self._Breadth = Breadth

    @property
    def Heat(self):
        return self._Heat

    @Heat.setter
    def Heat(self, Heat):
        self._Heat = Heat

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def LatestScanTime(self):
        return self._LatestScanTime

    @LatestScanTime.setter
    def LatestScanTime(self, LatestScanTime):
        self._LatestScanTime = LatestScanTime

    @property
    def Reference(self):
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def PsTree(self):
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CheckPlatform(self):
        return self._CheckPlatform

    @CheckPlatform.setter
    def CheckPlatform(self, CheckPlatform):
        self._CheckPlatform = CheckPlatform

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def StrFileAccessTime(self):
        return self._StrFileAccessTime

    @StrFileAccessTime.setter
    def StrFileAccessTime(self, StrFileAccessTime):
        self._StrFileAccessTime = StrFileAccessTime

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._VirusName = params.get("VirusName")
        self._FileSize = params.get("FileSize")
        self._MD5 = params.get("MD5")
        self._FilePath = params.get("FilePath")
        self._FileCreateTime = params.get("FileCreateTime")
        self._FileModifierTime = params.get("FileModifierTime")
        self._HarmDescribe = params.get("HarmDescribe")
        self._SuggestScheme = params.get("SuggestScheme")
        self._ServersName = params.get("ServersName")
        self._HostIp = params.get("HostIp")
        self._ProcessName = params.get("ProcessName")
        self._ProcessID = params.get("ProcessID")
        self._Tags = params.get("Tags")
        self._Breadth = params.get("Breadth")
        self._Heat = params.get("Heat")
        self._Id = params.get("Id")
        self._FileName = params.get("FileName")
        self._CreateTime = params.get("CreateTime")
        self._LatestScanTime = params.get("LatestScanTime")
        self._Reference = params.get("Reference")
        self._MachineWanIp = params.get("MachineWanIp")
        self._PsTree = params.get("PsTree")
        self._MachineStatus = params.get("MachineStatus")
        self._Status = params.get("Status")
        self._Level = params.get("Level")
        self._CheckPlatform = params.get("CheckPlatform")
        self._Uuid = params.get("Uuid")
        self._ModifyTime = params.get("ModifyTime")
        self._StrFileAccessTime = params.get("StrFileAccessTime")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MalwareRisk(AbstractModel):
    """恶意文件风险提示列表信息

    """

    def __init__(self):
        r"""
        :param _MachineIp: 机器IP
        :type MachineIp: str
        :param _VirusName: 病毒名
        :type VirusName: str
        :param _CreateTime: 发现时间
        :type CreateTime: str
        :param _Id: 唯一ID
        :type Id: int
        """
        self._MachineIp = None
        self._VirusName = None
        self._CreateTime = None
        self._Id = None

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def VirusName(self):
        return self._VirusName

    @VirusName.setter
    def VirusName(self, VirusName):
        self._VirusName = VirusName

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._MachineIp = params.get("MachineIp")
        self._VirusName = params.get("VirusName")
        self._CreateTime = params.get("CreateTime")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MalwareRiskOverview(AbstractModel):
    """文件查杀概览信息

    """

    def __init__(self):
        r"""
        :param _HostCount: 影响主机数
        :type HostCount: int
        :param _ProcessCount: 异常进程数
        :type ProcessCount: int
        :param _FileCount: 恶意文件数
        :type FileCount: int
        :param _IsFirstScan: 是否首次扫描[false:否|true:是]
        :type IsFirstScan: bool
        :param _ScanTime: 最后扫描时间
        :type ScanTime: str
        """
        self._HostCount = None
        self._ProcessCount = None
        self._FileCount = None
        self._IsFirstScan = None
        self._ScanTime = None

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ProcessCount(self):
        return self._ProcessCount

    @ProcessCount.setter
    def ProcessCount(self, ProcessCount):
        self._ProcessCount = ProcessCount

    @property
    def FileCount(self):
        return self._FileCount

    @FileCount.setter
    def FileCount(self, FileCount):
        self._FileCount = FileCount

    @property
    def IsFirstScan(self):
        return self._IsFirstScan

    @IsFirstScan.setter
    def IsFirstScan(self, IsFirstScan):
        self._IsFirstScan = IsFirstScan

    @property
    def ScanTime(self):
        return self._ScanTime

    @ScanTime.setter
    def ScanTime(self, ScanTime):
        self._ScanTime = ScanTime


    def _deserialize(self, params):
        self._HostCount = params.get("HostCount")
        self._ProcessCount = params.get("ProcessCount")
        self._FileCount = params.get("FileCount")
        self._IsFirstScan = params.get("IsFirstScan")
        self._ScanTime = params.get("ScanTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MalwareWhiteListAffectEvent(AbstractModel):
    """木马白名单影响事件信息

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID。
        :type Id: int
        :param _HostIp: 主机ip
        :type HostIp: str
        :param _Md5: 影响的md5
        :type Md5: str
        :param _FilePath: 文件路径
        :type FilePath: str
        :param _CreateTime: 添加时间
        :type CreateTime: str
        """
        self._Id = None
        self._HostIp = None
        self._Md5 = None
        self._FilePath = None
        self._CreateTime = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Md5(self):
        return self._Md5

    @Md5.setter
    def Md5(self, Md5):
        self._Md5 = Md5

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._HostIp = params.get("HostIp")
        self._Md5 = params.get("Md5")
        self._FilePath = params.get("FilePath")
        self._CreateTime = params.get("CreateTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MalwareWhiteListInfo(AbstractModel):
    """木马白名单信息

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID。
        :type Id: int
        :param _QuuidList: cvm quuid 按,分割。
        :type QuuidList: str
        :param _Md5List: md5列表 按,分割
        :type Md5List: str
        :param _IsGlobal: 是否全部主机； 0否，1是
        :type IsGlobal: int
        :param _Mode: 白名单模式；0 MD5 ，1自定义
        :type Mode: int
        :param _MatchType: 匹配模式；0精确匹配，1模糊匹配
        :type MatchType: int
        :param _FileName: 文件名；按,分割
        :type FileName: str
        :param _FileDirectory: 文件目录；按,分割
        :type FileDirectory: str
        :param _FileExtension: 文件后缀；按,分割
        :type FileExtension: str
        :param _CreateTime: 规则创建时间
        :type CreateTime: str
        :param _EventsCount: 受影响记录
        :type EventsCount: int
        """
        self._Id = None
        self._QuuidList = None
        self._Md5List = None
        self._IsGlobal = None
        self._Mode = None
        self._MatchType = None
        self._FileName = None
        self._FileDirectory = None
        self._FileExtension = None
        self._CreateTime = None
        self._EventsCount = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def Md5List(self):
        return self._Md5List

    @Md5List.setter
    def Md5List(self, Md5List):
        self._Md5List = Md5List

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Mode(self):
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def MatchType(self):
        return self._MatchType

    @MatchType.setter
    def MatchType(self, MatchType):
        self._MatchType = MatchType

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileDirectory(self):
        return self._FileDirectory

    @FileDirectory.setter
    def FileDirectory(self, FileDirectory):
        self._FileDirectory = FileDirectory

    @property
    def FileExtension(self):
        return self._FileExtension

    @FileExtension.setter
    def FileExtension(self, FileExtension):
        self._FileExtension = FileExtension

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def EventsCount(self):
        return self._EventsCount

    @EventsCount.setter
    def EventsCount(self, EventsCount):
        self._EventsCount = EventsCount


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._QuuidList = params.get("QuuidList")
        self._Md5List = params.get("Md5List")
        self._IsGlobal = params.get("IsGlobal")
        self._Mode = params.get("Mode")
        self._MatchType = params.get("MatchType")
        self._FileName = params.get("FileName")
        self._FileDirectory = params.get("FileDirectory")
        self._FileExtension = params.get("FileExtension")
        self._CreateTime = params.get("CreateTime")
        self._EventsCount = params.get("EventsCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAutoOpenProVersionConfigRequest(AbstractModel):
    """ModifyAutoOpenProVersionConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 设置自动开通状态。
<li>CLOSE：关闭</li>
<li>OPEN：打开</li>
        :type Status: str
        :param _AutoRepurchaseSwitch: 自动加购/扩容授权开关,默认 1, 0关闭, 1开启
        :type AutoRepurchaseSwitch: int
        :param _AutoRepurchaseRenewSwitch: 自动加购的订单是否自动续费,默认0 ,0关闭, 1开启
        :type AutoRepurchaseRenewSwitch: int
        """
        self._Status = None
        self._AutoRepurchaseSwitch = None
        self._AutoRepurchaseRenewSwitch = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def AutoRepurchaseSwitch(self):
        return self._AutoRepurchaseSwitch

    @AutoRepurchaseSwitch.setter
    def AutoRepurchaseSwitch(self, AutoRepurchaseSwitch):
        self._AutoRepurchaseSwitch = AutoRepurchaseSwitch

    @property
    def AutoRepurchaseRenewSwitch(self):
        return self._AutoRepurchaseRenewSwitch

    @AutoRepurchaseRenewSwitch.setter
    def AutoRepurchaseRenewSwitch(self, AutoRepurchaseRenewSwitch):
        self._AutoRepurchaseRenewSwitch = AutoRepurchaseRenewSwitch


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._AutoRepurchaseSwitch = params.get("AutoRepurchaseSwitch")
        self._AutoRepurchaseRenewSwitch = params.get("AutoRepurchaseRenewSwitch")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAutoOpenProVersionConfigResponse(AbstractModel):
    """ModifyAutoOpenProVersionConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBanModeRequest(AbstractModel):
    """ModifyBanMode请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: 阻断模式，STANDARD_MODE：标准阻断，DEEP_MODE：深度阻断
        :type Mode: str
        :param _Ttl: 阻断时间，用于标准阻断模式
        :type Ttl: int
        """
        self._Mode = None
        self._Ttl = None

    @property
    def Mode(self):
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def Ttl(self):
        return self._Ttl

    @Ttl.setter
    def Ttl(self, Ttl):
        self._Ttl = Ttl


    def _deserialize(self, params):
        self._Mode = params.get("Mode")
        self._Ttl = params.get("Ttl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBanModeResponse(AbstractModel):
    """ModifyBanMode返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBanStatusRequest(AbstractModel):
    """ModifyBanStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 阻断状态 0:关闭 1:开启
        :type Status: int
        """
        self._Status = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBanStatusResponse(AbstractModel):
    """ModifyBanStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBanWhiteListRequest(AbstractModel):
    """ModifyBanWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Rules: 修改白名单规则项
        :type Rules: :class:`tencentcloud.cwp.v20180228.models.BanWhiteList`
        """
        self._Rules = None

    @property
    def Rules(self):
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules


    def _deserialize(self, params):
        if params.get("Rules") is not None:
            self._Rules = BanWhiteList()
            self._Rules._deserialize(params.get("Rules"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBanWhiteListResponse(AbstractModel):
    """ModifyBanWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselinePolicyRequest(AbstractModel):
    """ModifyBaselinePolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :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: list of Filter
        :param _SelectAll: 是否按照过滤的全选
        :type SelectAll: int
        """
        self._Data = None
        self._Filters = None
        self._SelectAll = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def SelectAll(self):
        return self._SelectAll

    @SelectAll.setter
    def SelectAll(self, SelectAll):
        self._SelectAll = SelectAll


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = BaselinePolicy()
            self._Data._deserialize(params.get("Data"))
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._SelectAll = params.get("SelectAll")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBaselinePolicyResponse(AbstractModel):
    """ModifyBaselinePolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselinePolicyStateRequest(AbstractModel):
    """ModifyBaselinePolicyState请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略Id
        :type PolicyId: int
        :param _IsEnabled: 开启状态[1:开启|0:未开启]
        :type IsEnabled: int
        """
        self._PolicyId = None
        self._IsEnabled = None

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def IsEnabled(self):
        return self._IsEnabled

    @IsEnabled.setter
    def IsEnabled(self, IsEnabled):
        self._IsEnabled = IsEnabled


    def _deserialize(self, params):
        self._PolicyId = params.get("PolicyId")
        self._IsEnabled = params.get("IsEnabled")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBaselinePolicyStateResponse(AbstractModel):
    """ModifyBaselinePolicyState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselineRuleIgnoreRequest(AbstractModel):
    """ModifyBaselineRuleIgnore请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _AssetType: 资产类型[0:所有专业版旗舰版|1:id|2:ip]
        :type AssetType: int
        :param _RuleId: 规则Id
        :type RuleId: int
        :param _ItemIds: 关联项
        :type ItemIds: list of int
        :param _HostIds: 主机Id
        :type HostIds: list of str
        :param _HostIps: 主机Ip
        :type HostIps: list of str
        :param _SelectAll: 是否全选过滤
        :type SelectAll: int
        :param _Filters: <li>ItemName - string - 是否必填：否 - 项名称</li>
        :type Filters: list of Filter
        """
        self._RuleName = None
        self._AssetType = None
        self._RuleId = None
        self._ItemIds = None
        self._HostIds = None
        self._HostIps = None
        self._SelectAll = None
        self._Filters = None

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def AssetType(self):
        return self._AssetType

    @AssetType.setter
    def AssetType(self, AssetType):
        self._AssetType = AssetType

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def ItemIds(self):
        return self._ItemIds

    @ItemIds.setter
    def ItemIds(self, ItemIds):
        self._ItemIds = ItemIds

    @property
    def HostIds(self):
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def HostIps(self):
        return self._HostIps

    @HostIps.setter
    def HostIps(self, HostIps):
        self._HostIps = HostIps

    @property
    def SelectAll(self):
        return self._SelectAll

    @SelectAll.setter
    def SelectAll(self, SelectAll):
        self._SelectAll = SelectAll

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._RuleName = params.get("RuleName")
        self._AssetType = params.get("AssetType")
        self._RuleId = params.get("RuleId")
        self._ItemIds = params.get("ItemIds")
        self._HostIds = params.get("HostIds")
        self._HostIps = params.get("HostIps")
        self._SelectAll = params.get("SelectAll")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBaselineRuleIgnoreResponse(AbstractModel):
    """ModifyBaselineRuleIgnore返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselineRuleRequest(AbstractModel):
    """ModifyBaselineRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 无
        :type Data: :class:`tencentcloud.cwp.v20180228.models.BaselineRule`
        :param _SelectAll: 是否过滤全选
        :type SelectAll: int
        :param _Filters: <li>ItemName - string - 是否必填：否 - 项名称</li>
        :type Filters: list of Filter
        """
        self._Data = None
        self._SelectAll = None
        self._Filters = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def SelectAll(self):
        return self._SelectAll

    @SelectAll.setter
    def SelectAll(self, SelectAll):
        self._SelectAll = SelectAll

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = BaselineRule()
            self._Data._deserialize(params.get("Data"))
        self._SelectAll = params.get("SelectAll")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filter()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBaselineRuleResponse(AbstractModel):
    """ModifyBaselineRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBaselineWeakPasswordRequest(AbstractModel):
    """ModifyBaselineWeakPassword请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 无
        :type Data: list of BaselineWeakPassword
        """
        self._Data = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = []
            for item in params.get("Data"):
                obj = BaselineWeakPassword()
                obj._deserialize(item)
                self._Data.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBaselineWeakPasswordResponse(AbstractModel):
    """ModifyBaselineWeakPassword返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBashPolicyRequest(AbstractModel):
    """ModifyBashPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Policy: 具体的策略配置
        :type Policy: :class:`tencentcloud.cwp.v20180228.models.BashPolicy`
        """
        self._Policy = None

    @property
    def Policy(self):
        return self._Policy

    @Policy.setter
    def Policy(self, Policy):
        self._Policy = Policy


    def _deserialize(self, params):
        if params.get("Policy") is not None:
            self._Policy = BashPolicy()
            self._Policy._deserialize(params.get("Policy"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBashPolicyResponse(AbstractModel):
    """ModifyBashPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBashPolicyStatusRequest(AbstractModel):
    """ModifyBashPolicyStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _Enable: 是否禁用
        :type Enable: int
        """
        self._Id = None
        self._Enable = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Enable(self):
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Enable = params.get("Enable")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBashPolicyStatusResponse(AbstractModel):
    """ModifyBashPolicyStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyBruteAttackRulesRequest(AbstractModel):
    """ModifyBruteAttackRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Rules: 暴力破解判断规则
        :type Rules: list of BruteAttackRule
        """
        self._Rules = None

    @property
    def Rules(self):
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules


    def _deserialize(self, params):
        if params.get("Rules") is not None:
            self._Rules = []
            for item in params.get("Rules"):
                obj = BruteAttackRule()
                obj._deserialize(item)
                self._Rules.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBruteAttackRulesResponse(AbstractModel):
    """ModifyBruteAttackRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyEventAttackStatusRequest(AbstractModel):
    """ModifyEventAttackStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 需要修改的事件id 数组，支持批量
        :type Ids: list of int non-negative
        :param _All: 是否更新全部，即是否对所有的事件进行操作，当ids 不为空时，此参数无效
        :type All: bool
        :param _Status: 0：待处理 1：已处理 2： 已加白 3： 已忽略 4：已删除 
        :type Status: int
        :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: list of Filters
        :param _ExcludeId: 排除的id
        :type ExcludeId: list of int non-negative
        """
        self._Ids = None
        self._All = None
        self._Status = None
        self._Filters = None
        self._ExcludeId = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def All(self):
        return self._All

    @All.setter
    def All(self, All):
        self._All = All

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters

    @property
    def ExcludeId(self):
        return self._ExcludeId

    @ExcludeId.setter
    def ExcludeId(self, ExcludeId):
        self._ExcludeId = ExcludeId


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._All = params.get("All")
        self._Status = params.get("Status")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        self._ExcludeId = params.get("ExcludeId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyEventAttackStatusResponse(AbstractModel):
    """ModifyEventAttackStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyFileTamperEventsRequest(AbstractModel):
    """ModifyFileTamperEvents请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: Status 1 -- 加白 2 -- 删除 3 - 忽略
        :type Status: int
        :param _Ids: 对应事件id
        :type Ids: list of int non-negative
        """
        self._Status = None
        self._Ids = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyFileTamperEventsResponse(AbstractModel):
    """ModifyFileTamperEvents返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyFileTamperRuleRequest(AbstractModel):
    """ModifyFileTamperRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Name: 规则名称
        :type Name: str
        :param _Rules: 规则内容
        :type Rules: list of FileTamperRule
        :param _IsGlobal: 是否全局规则(默认否) 0：否 ，1：是，全局是Uuids 可为空
        :type IsGlobal: int
        :param _Status: 启用状态 0: 启用 1: 已关闭
        :type Status: int
        :param _Id: 规则id  不填或者0表示新增
        :type Id: int
        :param _Uuids: 影响的主机uuid集合
        :type Uuids: list of str
        :param _Level: 风险等级 0：无， 1: 高危， 2:中危， 3: 低危
        :type Level: int
        :param _AddWhiteType: 加白处理类型
<li>cur 仅对当前加白</li>
<li>all 所有符合条件加白</li>
        :type AddWhiteType: str
        """
        self._Name = None
        self._Rules = None
        self._IsGlobal = None
        self._Status = None
        self._Id = None
        self._Uuids = None
        self._Level = None
        self._AddWhiteType = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Rules(self):
        return self._Rules

    @Rules.setter
    def Rules(self, Rules):
        self._Rules = Rules

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def AddWhiteType(self):
        return self._AddWhiteType

    @AddWhiteType.setter
    def AddWhiteType(self, AddWhiteType):
        self._AddWhiteType = AddWhiteType


    def _deserialize(self, params):
        self._Name = params.get("Name")
        if params.get("Rules") is not None:
            self._Rules = []
            for item in params.get("Rules"):
                obj = FileTamperRule()
                obj._deserialize(item)
                self._Rules.append(obj)
        self._IsGlobal = params.get("IsGlobal")
        self._Status = params.get("Status")
        self._Id = params.get("Id")
        self._Uuids = params.get("Uuids")
        self._Level = params.get("Level")
        self._AddWhiteType = params.get("AddWhiteType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyFileTamperRuleResponse(AbstractModel):
    """ModifyFileTamperRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyFileTamperRuleStatusRequest(AbstractModel):
    """ModifyFileTamperRuleStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Status: 0: 启用1: 关闭2：删除
        :type Status: int
        :param _Ids: 对应事件id
        :type Ids: list of int non-negative
        :param _RuleCategory: 是否是系统规则 0=系统规则 1=用户自定义规则，系统规则Status 不支持删除
        :type RuleCategory: int
        """
        self._Status = None
        self._Ids = None
        self._RuleCategory = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def RuleCategory(self):
        return self._RuleCategory

    @RuleCategory.setter
    def RuleCategory(self, RuleCategory):
        self._RuleCategory = RuleCategory


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._Ids = params.get("Ids")
        self._RuleCategory = params.get("RuleCategory")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyFileTamperRuleStatusResponse(AbstractModel):
    """ModifyFileTamperRuleStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyJavaMemShellPluginSwitchRequest(AbstractModel):
    """ModifyJavaMemShellPluginSwitch请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuids: 主机quuid数组
        :type Quuids: list of str
        :param _JavaShellStatus: 插件目标状态：0: 关闭 1: 开启
        :type JavaShellStatus: int
        """
        self._Quuids = None
        self._JavaShellStatus = None

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def JavaShellStatus(self):
        return self._JavaShellStatus

    @JavaShellStatus.setter
    def JavaShellStatus(self, JavaShellStatus):
        self._JavaShellStatus = JavaShellStatus


    def _deserialize(self, params):
        self._Quuids = params.get("Quuids")
        self._JavaShellStatus = params.get("JavaShellStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyJavaMemShellPluginSwitchResponse(AbstractModel):
    """ModifyJavaMemShellPluginSwitch返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyJavaMemShellsStatusRequest(AbstractModel):
    """ModifyJavaMemShellsStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 事件Id数组
        :type Ids: list of int non-negative
        :param _Status: 目标处理状态： 0 - 待处理 1 - 已加白 2 - 已删除 3 - 已忽略 4 - 已手动处理
        :type Status: int
        """
        self._Ids = None
        self._Status = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyJavaMemShellsStatusResponse(AbstractModel):
    """ModifyJavaMemShellsStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLicenseBindsRequest(AbstractModel):
    """ModifyLicenseBinds请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _LicenseType: 授权类型
        :type LicenseType: int
        :param _IsAll: 是否全部机器(当全部机器数大于当前订单可用授权数时,多余机器会被跳过)
        :type IsAll: bool
        :param _QuuidList: 需要绑定的机器quuid列表, 当IsAll = false 时必填,反之忽略该参数. 最大长度=2000
        :type QuuidList: list of str
        """
        self._ResourceId = None
        self._LicenseType = None
        self._IsAll = None
        self._QuuidList = None

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def IsAll(self):
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList


    def _deserialize(self, params):
        self._ResourceId = params.get("ResourceId")
        self._LicenseType = params.get("LicenseType")
        self._IsAll = params.get("IsAll")
        self._QuuidList = params.get("QuuidList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLicenseBindsResponse(AbstractModel):
    """ModifyLicenseBinds返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务ID
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ModifyLicenseOrderRequest(AbstractModel):
    """ModifyLicenseOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _InquireNum: 预期值,如果当前为10,扩容则输入原来大的值, 缩容则比原来小的值(缩容时不允许预期值比使用量小),如果保持不变则填写原值,
        :type InquireNum: int
        :param _ProjectId: 项目ID,不修改则输入原值.
        :type ProjectId: int
        :param _Alias: 资源别名,不修改则输入原值.
        :type Alias: str
        """
        self._ResourceId = None
        self._InquireNum = None
        self._ProjectId = None
        self._Alias = None

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def InquireNum(self):
        return self._InquireNum

    @InquireNum.setter
    def InquireNum(self, InquireNum):
        self._InquireNum = InquireNum

    @property
    def ProjectId(self):
        return self._ProjectId

    @ProjectId.setter
    def ProjectId(self, ProjectId):
        self._ProjectId = ProjectId

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias


    def _deserialize(self, params):
        self._ResourceId = params.get("ResourceId")
        self._InquireNum = params.get("InquireNum")
        self._ProjectId = params.get("ProjectId")
        self._Alias = params.get("Alias")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLicenseOrderResponse(AbstractModel):
    """ModifyLicenseOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DealNames: 订单号
        :type DealNames: list of str
        :param _ResourceIds: 资源ID
        :type ResourceIds: list of str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DealNames = None
        self._ResourceIds = None
        self._RequestId = None

    @property
    def DealNames(self):
        return self._DealNames

    @DealNames.setter
    def DealNames(self, DealNames):
        self._DealNames = DealNames

    @property
    def ResourceIds(self):
        return self._ResourceIds

    @ResourceIds.setter
    def ResourceIds(self, ResourceIds):
        self._ResourceIds = ResourceIds

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DealNames = params.get("DealNames")
        self._ResourceIds = params.get("ResourceIds")
        self._RequestId = params.get("RequestId")


class ModifyLicenseUnBindsRequest(AbstractModel):
    """ModifyLicenseUnBinds请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _LicenseType: 授权类型
        :type LicenseType: int
        :param _IsAll: 是否全部机器(当全部机器数大于当前订单可用授权数时,多余机器会被跳过)
        :type IsAll: bool
        :param _QuuidList: 需要绑定的机器quuid列表, 当IsAll = false 时必填,反之忽略该参数.
最大长度=100
        :type QuuidList: list of str
        """
        self._ResourceId = None
        self._LicenseType = None
        self._IsAll = None
        self._QuuidList = None

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def IsAll(self):
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList


    def _deserialize(self, params):
        self._ResourceId = params.get("ResourceId")
        self._LicenseType = params.get("LicenseType")
        self._IsAll = params.get("IsAll")
        self._QuuidList = params.get("QuuidList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLicenseUnBindsResponse(AbstractModel):
    """ModifyLicenseUnBinds返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMsg: 只有解绑失败的才有该值.
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMsg: list of LicenseUnBindRsp
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMsg = None
        self._RequestId = None

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ErrMsg") is not None:
            self._ErrMsg = []
            for item in params.get("ErrMsg"):
                obj = LicenseUnBindRsp()
                obj._deserialize(item)
                self._ErrMsg.append(obj)
        self._RequestId = params.get("RequestId")


class ModifyLogKafkaAccessRequest(AbstractModel):
    """ModifyLogKafkaAccess请求参数结构体

    """

    def __init__(self):
        r"""
        :param _KafkaEnvName: 实例名称 如 云镜测试环境
        :type KafkaEnvName: str
        :param _KafkaId: 实例ID
        :type KafkaId: str
        :param _AccessType: 接入方式，1公网域名接入，2支撑环境接入
        :type AccessType: int
        :param _AccessAddr: 接入地址
        :type AccessAddr: str
        :param _Username: 用户名
        :type Username: str
        :param _HasPwd: 0不用密码，1有密码
        :type HasPwd: int
        :param _DeliverTypeDetails: 日志投递类型配置细节
        :type DeliverTypeDetails: list of DeliverTypeDetails
        :param _InsVersion: kafka版本
        :type InsVersion: str
        :param _Zone: 地域
        :type Zone: str
        :param _Az: 可用区
        :type Az: str
        :param _VpcId: vpcid地址
        :type VpcId: str
        :param _SubnetId: 子网id
        :type SubnetId: str
        :param _DeliverStatus: 投递状态，1：健康，2：告警，3：异常
        :type DeliverStatus: int
        :param _BandWidth: 峰值带宽
        :type BandWidth: int
        :param _DiskSize: 磁盘容量
        :type DiskSize: int
        :param _Pwd: 密码，aes加密
        :type Pwd: str
        """
        self._KafkaEnvName = None
        self._KafkaId = None
        self._AccessType = None
        self._AccessAddr = None
        self._Username = None
        self._HasPwd = None
        self._DeliverTypeDetails = None
        self._InsVersion = None
        self._Zone = None
        self._Az = None
        self._VpcId = None
        self._SubnetId = None
        self._DeliverStatus = None
        self._BandWidth = None
        self._DiskSize = None
        self._Pwd = None

    @property
    def KafkaEnvName(self):
        return self._KafkaEnvName

    @KafkaEnvName.setter
    def KafkaEnvName(self, KafkaEnvName):
        self._KafkaEnvName = KafkaEnvName

    @property
    def KafkaId(self):
        return self._KafkaId

    @KafkaId.setter
    def KafkaId(self, KafkaId):
        self._KafkaId = KafkaId

    @property
    def AccessType(self):
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType

    @property
    def AccessAddr(self):
        return self._AccessAddr

    @AccessAddr.setter
    def AccessAddr(self, AccessAddr):
        self._AccessAddr = AccessAddr

    @property
    def Username(self):
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def HasPwd(self):
        return self._HasPwd

    @HasPwd.setter
    def HasPwd(self, HasPwd):
        self._HasPwd = HasPwd

    @property
    def DeliverTypeDetails(self):
        return self._DeliverTypeDetails

    @DeliverTypeDetails.setter
    def DeliverTypeDetails(self, DeliverTypeDetails):
        self._DeliverTypeDetails = DeliverTypeDetails

    @property
    def InsVersion(self):
        return self._InsVersion

    @InsVersion.setter
    def InsVersion(self, InsVersion):
        self._InsVersion = InsVersion

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Az(self):
        return self._Az

    @Az.setter
    def Az(self, Az):
        self._Az = Az

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def DeliverStatus(self):
        return self._DeliverStatus

    @DeliverStatus.setter
    def DeliverStatus(self, DeliverStatus):
        self._DeliverStatus = DeliverStatus

    @property
    def BandWidth(self):
        return self._BandWidth

    @BandWidth.setter
    def BandWidth(self, BandWidth):
        self._BandWidth = BandWidth

    @property
    def DiskSize(self):
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize

    @property
    def Pwd(self):
        return self._Pwd

    @Pwd.setter
    def Pwd(self, Pwd):
        self._Pwd = Pwd


    def _deserialize(self, params):
        self._KafkaEnvName = params.get("KafkaEnvName")
        self._KafkaId = params.get("KafkaId")
        self._AccessType = params.get("AccessType")
        self._AccessAddr = params.get("AccessAddr")
        self._Username = params.get("Username")
        self._HasPwd = params.get("HasPwd")
        if params.get("DeliverTypeDetails") is not None:
            self._DeliverTypeDetails = []
            for item in params.get("DeliverTypeDetails"):
                obj = DeliverTypeDetails()
                obj._deserialize(item)
                self._DeliverTypeDetails.append(obj)
        self._InsVersion = params.get("InsVersion")
        self._Zone = params.get("Zone")
        self._Az = params.get("Az")
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._DeliverStatus = params.get("DeliverStatus")
        self._BandWidth = params.get("BandWidth")
        self._DiskSize = params.get("DiskSize")
        self._Pwd = params.get("Pwd")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLogKafkaAccessResponse(AbstractModel):
    """ModifyLogKafkaAccess返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLogKafkaDeliverTypeRequest(AbstractModel):
    """ModifyLogKafkaDeliverType请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SecurityType: 安全模块类型 1: 入侵检测 2: 漏洞管理 3: 基线管理 4: 高级防御 5:客户端相关 6: 资产指纹
        :type SecurityType: int
        :param _LogType: 安全模块下的日志类型，http://tapd.woa.com/Teneyes/markdown_wikis/show/#1210131751002328905
        :type LogType: list of int non-negative
        :param _Switch: 投递开关 0关闭 1开启
        :type Switch: int
        :param _TopicId: kafka topic id
        :type TopicId: str
        :param _TopicName: kafka topic name
        :type TopicName: str
        """
        self._SecurityType = None
        self._LogType = None
        self._Switch = None
        self._TopicId = None
        self._TopicName = None

    @property
    def SecurityType(self):
        return self._SecurityType

    @SecurityType.setter
    def SecurityType(self, SecurityType):
        self._SecurityType = SecurityType

    @property
    def LogType(self):
        return self._LogType

    @LogType.setter
    def LogType(self, LogType):
        self._LogType = LogType

    @property
    def Switch(self):
        return self._Switch

    @Switch.setter
    def Switch(self, Switch):
        self._Switch = Switch

    @property
    def TopicId(self):
        return self._TopicId

    @TopicId.setter
    def TopicId(self, TopicId):
        self._TopicId = TopicId

    @property
    def TopicName(self):
        return self._TopicName

    @TopicName.setter
    def TopicName(self, TopicName):
        self._TopicName = TopicName


    def _deserialize(self, params):
        self._SecurityType = params.get("SecurityType")
        self._LogType = params.get("LogType")
        self._Switch = params.get("Switch")
        self._TopicId = params.get("TopicId")
        self._TopicName = params.get("TopicName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLogKafkaDeliverTypeResponse(AbstractModel):
    """ModifyLogKafkaDeliverType返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLogKafkaStateRequest(AbstractModel):
    """ModifyLogKafkaState请求参数结构体

    """

    def __init__(self):
        r"""
        :param _KafkaEnvName: 实例名称 如 云镜测试环境
        :type KafkaEnvName: str
        :param _KafkaId: 实例ID
        :type KafkaId: str
        :param _AccessType: 接入方式，1公网域名接入，2支撑环境接入
        :type AccessType: int
        :param _AccessAddr: 接入地址
        :type AccessAddr: str
        :param _Username: 用户名
        :type Username: str
        :param _Zone: 区域
        :type Zone: str
        :param _Az: 可用区
        :type Az: str
        :param _VpcId: 所属网络
        :type VpcId: str
        :param _SubnetId: 所在子网
        :type SubnetId: str
        :param _DeliverStatus: 投递状态，1：健康，2：告警，3：异常
        :type DeliverStatus: int
        :param _InsVersion: kafka版本
        :type InsVersion: str
        :param _BandWidth: 峰值带宽
        :type BandWidth: int
        :param _DiskSize: 磁盘容量
        :type DiskSize: int
        """
        self._KafkaEnvName = None
        self._KafkaId = None
        self._AccessType = None
        self._AccessAddr = None
        self._Username = None
        self._Zone = None
        self._Az = None
        self._VpcId = None
        self._SubnetId = None
        self._DeliverStatus = None
        self._InsVersion = None
        self._BandWidth = None
        self._DiskSize = None

    @property
    def KafkaEnvName(self):
        return self._KafkaEnvName

    @KafkaEnvName.setter
    def KafkaEnvName(self, KafkaEnvName):
        self._KafkaEnvName = KafkaEnvName

    @property
    def KafkaId(self):
        return self._KafkaId

    @KafkaId.setter
    def KafkaId(self, KafkaId):
        self._KafkaId = KafkaId

    @property
    def AccessType(self):
        return self._AccessType

    @AccessType.setter
    def AccessType(self, AccessType):
        self._AccessType = AccessType

    @property
    def AccessAddr(self):
        return self._AccessAddr

    @AccessAddr.setter
    def AccessAddr(self, AccessAddr):
        self._AccessAddr = AccessAddr

    @property
    def Username(self):
        return self._Username

    @Username.setter
    def Username(self, Username):
        self._Username = Username

    @property
    def Zone(self):
        return self._Zone

    @Zone.setter
    def Zone(self, Zone):
        self._Zone = Zone

    @property
    def Az(self):
        return self._Az

    @Az.setter
    def Az(self, Az):
        self._Az = Az

    @property
    def VpcId(self):
        return self._VpcId

    @VpcId.setter
    def VpcId(self, VpcId):
        self._VpcId = VpcId

    @property
    def SubnetId(self):
        return self._SubnetId

    @SubnetId.setter
    def SubnetId(self, SubnetId):
        self._SubnetId = SubnetId

    @property
    def DeliverStatus(self):
        return self._DeliverStatus

    @DeliverStatus.setter
    def DeliverStatus(self, DeliverStatus):
        self._DeliverStatus = DeliverStatus

    @property
    def InsVersion(self):
        return self._InsVersion

    @InsVersion.setter
    def InsVersion(self, InsVersion):
        self._InsVersion = InsVersion

    @property
    def BandWidth(self):
        return self._BandWidth

    @BandWidth.setter
    def BandWidth(self, BandWidth):
        self._BandWidth = BandWidth

    @property
    def DiskSize(self):
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize


    def _deserialize(self, params):
        self._KafkaEnvName = params.get("KafkaEnvName")
        self._KafkaId = params.get("KafkaId")
        self._AccessType = params.get("AccessType")
        self._AccessAddr = params.get("AccessAddr")
        self._Username = params.get("Username")
        self._Zone = params.get("Zone")
        self._Az = params.get("Az")
        self._VpcId = params.get("VpcId")
        self._SubnetId = params.get("SubnetId")
        self._DeliverStatus = params.get("DeliverStatus")
        self._InsVersion = params.get("InsVersion")
        self._BandWidth = params.get("BandWidth")
        self._DiskSize = params.get("DiskSize")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLogKafkaStateResponse(AbstractModel):
    """ModifyLogKafkaState返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLogStorageConfigRequest(AbstractModel):
    """ModifyLogStorageConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _IsModifyPeriod: 是否修改有效期
        :type IsModifyPeriod: bool
        :param _Type: 存储类型，string数组
        :type Type: list of str
        :param _Period: 日志存储天数，3640表示不限
        :type Period: int
        """
        self._IsModifyPeriod = None
        self._Type = None
        self._Period = None

    @property
    def IsModifyPeriod(self):
        return self._IsModifyPeriod

    @IsModifyPeriod.setter
    def IsModifyPeriod(self, IsModifyPeriod):
        self._IsModifyPeriod = IsModifyPeriod

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Period(self):
        return self._Period

    @Period.setter
    def Period(self, Period):
        self._Period = Period


    def _deserialize(self, params):
        self._IsModifyPeriod = params.get("IsModifyPeriod")
        self._Type = params.get("Type")
        self._Period = params.get("Period")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLogStorageConfigResponse(AbstractModel):
    """ModifyLogStorageConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLoginWhiteInfoRequest(AbstractModel):
    """ModifyLoginWhiteInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _HostLoginWhiteObj: 更新白名单信息实体
        :type HostLoginWhiteObj: :class:`tencentcloud.cwp.v20180228.models.UpdateHostLoginWhiteObj`
        """
        self._HostLoginWhiteObj = None

    @property
    def HostLoginWhiteObj(self):
        return self._HostLoginWhiteObj

    @HostLoginWhiteObj.setter
    def HostLoginWhiteObj(self, HostLoginWhiteObj):
        self._HostLoginWhiteObj = HostLoginWhiteObj


    def _deserialize(self, params):
        if params.get("HostLoginWhiteObj") is not None:
            self._HostLoginWhiteObj = UpdateHostLoginWhiteObj()
            self._HostLoginWhiteObj._deserialize(params.get("HostLoginWhiteObj"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLoginWhiteInfoResponse(AbstractModel):
    """ModifyLoginWhiteInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyLoginWhiteRecordRequest(AbstractModel):
    """ModifyLoginWhiteRecord请求参数结构体

    """

    def __init__(self):
        r"""
        :param _UserName: 白名单用户（多个用户逗号隔开）
        :type UserName: str
        :param _SrcIp: 更新后记录的白名单维度信息
        :type SrcIp: str
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        :param _Remark: 备注
        :type Remark: str
        :param _IsGlobal: 是否对所有服务器生效，0-否，1-是
        :type IsGlobal: int
        :param _Id: 白名单ID
        :type Id: int
        :param _Hosts: 服务器列表
        :type Hosts: list of HostInfo
        :param _Places: 地域列表
        :type Places: list of Place
        """
        self._UserName = None
        self._SrcIp = None
        self._StartTime = None
        self._EndTime = None
        self._Remark = None
        self._IsGlobal = None
        self._Id = None
        self._Hosts = None
        self._Places = None

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Hosts(self):
        return self._Hosts

    @Hosts.setter
    def Hosts(self, Hosts):
        self._Hosts = Hosts

    @property
    def Places(self):
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places


    def _deserialize(self, params):
        self._UserName = params.get("UserName")
        self._SrcIp = params.get("SrcIp")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._Remark = params.get("Remark")
        self._IsGlobal = params.get("IsGlobal")
        self._Id = params.get("Id")
        if params.get("Hosts") is not None:
            self._Hosts = []
            for item in params.get("Hosts"):
                obj = HostInfo()
                obj._deserialize(item)
                self._Hosts.append(obj)
        if params.get("Places") is not None:
            self._Places = []
            for item in params.get("Places"):
                obj = Place()
                obj._deserialize(item)
                self._Places.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyLoginWhiteRecordResponse(AbstractModel):
    """ModifyLoginWhiteRecord返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMachineAutoClearConfigRequest(AbstractModel):
    """ModifyMachineAutoClearConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ClearRule: 清理规则时间, 0 表示关闭, 单位为天, 最大为 30天
        :type ClearRule: int
        """
        self._ClearRule = None

    @property
    def ClearRule(self):
        return self._ClearRule

    @ClearRule.setter
    def ClearRule(self, ClearRule):
        self._ClearRule = ClearRule


    def _deserialize(self, params):
        self._ClearRule = params.get("ClearRule")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyMachineAutoClearConfigResponse(AbstractModel):
    """ModifyMachineAutoClearConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMachineRemarkRequest(AbstractModel):
    """ModifyMachineRemark请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _Remark: 备注信息
        :type Remark: str
        """
        self._Quuid = None
        self._Remark = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyMachineRemarkResponse(AbstractModel):
    """ModifyMachineRemark返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMaliciousRequestWhiteListRequest(AbstractModel):
    """ModifyMaliciousRequestWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 白名单id
        :type Id: int
        :param _Domain: 白名单域名
        :type Domain: str
        :param _Mark: 备注
        :type Mark: str
        """
        self._Id = None
        self._Domain = None
        self._Mark = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Domain(self):
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def Mark(self):
        return self._Mark

    @Mark.setter
    def Mark(self, Mark):
        self._Mark = Mark


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Domain = params.get("Domain")
        self._Mark = params.get("Mark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyMaliciousRequestWhiteListResponse(AbstractModel):
    """ModifyMaliciousRequestWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMalwareTimingScanSettingsRequest(AbstractModel):
    """ModifyMalwareTimingScanSettings请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CheckPattern: 检测模式 0 全盘检测  1快速检测
        :type CheckPattern: int
        :param _StartTime: 检测周期 开始时间，如：02:00:00
        :type StartTime: str
        :param _EndTime: 检测周期 超时结束时间，如：04:00:00
        :type EndTime: str
        :param _IsGlobal: 是否全部服务器 1 全部 2 自选
        :type IsGlobal: int
        :param _EnableScan: 定时检测开关 0 关闭 1开启
        :type EnableScan: int
        :param _MonitoringPattern: 监控模式 0 标准 1深度
        :type MonitoringPattern: int
        :param _Cycle: 扫描周期 默认每天 1
        :type Cycle: int
        :param _RealTimeMonitoring: 实时监控 0 关闭 1开启
        :type RealTimeMonitoring: int
        :param _QuuidList: 自选服务器时必须 主机quuid的string数组
        :type QuuidList: list of str
        :param _AutoIsolation: 是否自动隔离 1隔离 0 不隔离
        :type AutoIsolation: int
        :param _KillProcess: 是否杀掉进程 1杀掉 0不杀掉
        :type KillProcess: int
        :param _EngineType: 1标准模式（只报严重、高危）、2增强模式（报严重、高危、中危）、3严格模式（报严重、高、中、低、提示）
        :type EngineType: int
        :param _EnableInspiredEngine: 启发引擎开关 0 关闭 1开启
        :type EnableInspiredEngine: int
        :param _EnableMemShellScan: 是否开启恶意进程查杀[0:未开启,1:开启]
        :type EnableMemShellScan: int
        """
        self._CheckPattern = None
        self._StartTime = None
        self._EndTime = None
        self._IsGlobal = None
        self._EnableScan = None
        self._MonitoringPattern = None
        self._Cycle = None
        self._RealTimeMonitoring = None
        self._QuuidList = None
        self._AutoIsolation = None
        self._KillProcess = None
        self._EngineType = None
        self._EnableInspiredEngine = None
        self._EnableMemShellScan = None

    @property
    def CheckPattern(self):
        return self._CheckPattern

    @CheckPattern.setter
    def CheckPattern(self, CheckPattern):
        self._CheckPattern = CheckPattern

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def EnableScan(self):
        return self._EnableScan

    @EnableScan.setter
    def EnableScan(self, EnableScan):
        self._EnableScan = EnableScan

    @property
    def MonitoringPattern(self):
        return self._MonitoringPattern

    @MonitoringPattern.setter
    def MonitoringPattern(self, MonitoringPattern):
        self._MonitoringPattern = MonitoringPattern

    @property
    def Cycle(self):
        return self._Cycle

    @Cycle.setter
    def Cycle(self, Cycle):
        self._Cycle = Cycle

    @property
    def RealTimeMonitoring(self):
        return self._RealTimeMonitoring

    @RealTimeMonitoring.setter
    def RealTimeMonitoring(self, RealTimeMonitoring):
        self._RealTimeMonitoring = RealTimeMonitoring

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def AutoIsolation(self):
        return self._AutoIsolation

    @AutoIsolation.setter
    def AutoIsolation(self, AutoIsolation):
        self._AutoIsolation = AutoIsolation

    @property
    def KillProcess(self):
        return self._KillProcess

    @KillProcess.setter
    def KillProcess(self, KillProcess):
        self._KillProcess = KillProcess

    @property
    def EngineType(self):
        return self._EngineType

    @EngineType.setter
    def EngineType(self, EngineType):
        self._EngineType = EngineType

    @property
    def EnableInspiredEngine(self):
        return self._EnableInspiredEngine

    @EnableInspiredEngine.setter
    def EnableInspiredEngine(self, EnableInspiredEngine):
        self._EnableInspiredEngine = EnableInspiredEngine

    @property
    def EnableMemShellScan(self):
        return self._EnableMemShellScan

    @EnableMemShellScan.setter
    def EnableMemShellScan(self, EnableMemShellScan):
        self._EnableMemShellScan = EnableMemShellScan


    def _deserialize(self, params):
        self._CheckPattern = params.get("CheckPattern")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._IsGlobal = params.get("IsGlobal")
        self._EnableScan = params.get("EnableScan")
        self._MonitoringPattern = params.get("MonitoringPattern")
        self._Cycle = params.get("Cycle")
        self._RealTimeMonitoring = params.get("RealTimeMonitoring")
        self._QuuidList = params.get("QuuidList")
        self._AutoIsolation = params.get("AutoIsolation")
        self._KillProcess = params.get("KillProcess")
        self._EngineType = params.get("EngineType")
        self._EnableInspiredEngine = params.get("EnableInspiredEngine")
        self._EnableMemShellScan = params.get("EnableMemShellScan")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyMalwareTimingScanSettingsResponse(AbstractModel):
    """ModifyMalwareTimingScanSettings返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMalwareWhiteListRequest(AbstractModel):
    """ModifyMalwareWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Mode: 白名单模式； 0MD5白名单，1自定义
        :type Mode: int
        :param _Id: 规则唯一ID
        :type Id: int
        :param _QuuidList: quuid 列表
        :type QuuidList: list of str
        :param _IsGlobal: 是否全部主机； 0否，1是。
        :type IsGlobal: int
        :param _MatchType: 匹配模式 ；0 精确匹配，1模糊匹配(废弃)
        :type MatchType: int
        :param _FileName: 文件名称(正则)；长度不超过200个
        :type FileName: list of str
        :param _FileDirectory: 文件目录(正则)；长度不超过200个，内容base64转义
        :type FileDirectory: list of str
        :param _FileExtension: 文件后缀；长度不超过200个，内容base64转义（废弃）
        :type FileExtension: list of str
        :param _Md5List: MD5列表
        :type Md5List: list of str
        """
        self._Mode = None
        self._Id = None
        self._QuuidList = None
        self._IsGlobal = None
        self._MatchType = None
        self._FileName = None
        self._FileDirectory = None
        self._FileExtension = None
        self._Md5List = None

    @property
    def Mode(self):
        return self._Mode

    @Mode.setter
    def Mode(self, Mode):
        self._Mode = Mode

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MatchType(self):
        return self._MatchType

    @MatchType.setter
    def MatchType(self, MatchType):
        self._MatchType = MatchType

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileDirectory(self):
        return self._FileDirectory

    @FileDirectory.setter
    def FileDirectory(self, FileDirectory):
        self._FileDirectory = FileDirectory

    @property
    def FileExtension(self):
        return self._FileExtension

    @FileExtension.setter
    def FileExtension(self, FileExtension):
        self._FileExtension = FileExtension

    @property
    def Md5List(self):
        return self._Md5List

    @Md5List.setter
    def Md5List(self, Md5List):
        self._Md5List = Md5List


    def _deserialize(self, params):
        self._Mode = params.get("Mode")
        self._Id = params.get("Id")
        self._QuuidList = params.get("QuuidList")
        self._IsGlobal = params.get("IsGlobal")
        self._MatchType = params.get("MatchType")
        self._FileName = params.get("FileName")
        self._FileDirectory = params.get("FileDirectory")
        self._FileExtension = params.get("FileExtension")
        self._Md5List = params.get("Md5List")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyMalwareWhiteListResponse(AbstractModel):
    """ModifyMalwareWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetAttackSettingRequest(AbstractModel):
    """ModifyNetAttackSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _NetAttackEnable: 0 关闭网络攻击检测，1开启网络攻击检测
        :type NetAttackEnable: int
        :param _NetAttackAlarmStatus: 0 新增告警事件默认待处理，1新增告警事件默认已处理，3新增告警事件默认忽略
        :type NetAttackAlarmStatus: int
        """
        self._NetAttackEnable = None
        self._NetAttackAlarmStatus = None

    @property
    def NetAttackEnable(self):
        return self._NetAttackEnable

    @NetAttackEnable.setter
    def NetAttackEnable(self, NetAttackEnable):
        self._NetAttackEnable = NetAttackEnable

    @property
    def NetAttackAlarmStatus(self):
        return self._NetAttackAlarmStatus

    @NetAttackAlarmStatus.setter
    def NetAttackAlarmStatus(self, NetAttackAlarmStatus):
        self._NetAttackAlarmStatus = NetAttackAlarmStatus


    def _deserialize(self, params):
        self._NetAttackEnable = params.get("NetAttackEnable")
        self._NetAttackAlarmStatus = params.get("NetAttackAlarmStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNetAttackSettingResponse(AbstractModel):
    """ModifyNetAttackSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyNetAttackWhiteListRequest(AbstractModel):
    """ModifyNetAttackWhiteList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Scope: 是否全部主机； 0否，1是。
        :type Scope: int
        :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: list of str
        :param _DealOldEvents: 是否加白所有符合该规则的告警 ，1:处理,0:不处理
        :type DealOldEvents: int
        :param _Id: 规则id
        :type Id: int
        :param _QuuidList: quuid 列表
        :type QuuidList: list of str
        :param _Description: 规则描述
        :type Description: str
        """
        self._Scope = None
        self._SrcIp = None
        self._DealOldEvents = None
        self._Id = None
        self._QuuidList = None
        self._Description = None

    @property
    def Scope(self):
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def DealOldEvents(self):
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._Scope = params.get("Scope")
        self._SrcIp = params.get("SrcIp")
        self._DealOldEvents = params.get("DealOldEvents")
        self._Id = params.get("Id")
        self._QuuidList = params.get("QuuidList")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyNetAttackWhiteListResponse(AbstractModel):
    """ModifyNetAttackWhiteList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyOrderAttributeRequest(AbstractModel):
    """ModifyOrderAttribute请求参数结构体

    """

    def __init__(self):
        r"""
        :param _LicenseType: 授权类型 0 专业版-按量计费, 1专业版-包年包月 , 2 旗舰版-包年包月
        :type LicenseType: int
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _AttrName: 可编辑的属性名称 ,当前支持的有: alias 资源别名
        :type AttrName: str
        :param _AttrValue: 属性值
        :type AttrValue: str
        """
        self._LicenseType = None
        self._ResourceId = None
        self._AttrName = None
        self._AttrValue = None

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def AttrName(self):
        return self._AttrName

    @AttrName.setter
    def AttrName(self, AttrName):
        self._AttrName = AttrName

    @property
    def AttrValue(self):
        return self._AttrValue

    @AttrValue.setter
    def AttrValue(self, AttrValue):
        self._AttrValue = AttrValue


    def _deserialize(self, params):
        self._LicenseType = params.get("LicenseType")
        self._ResourceId = params.get("ResourceId")
        self._AttrName = params.get("AttrName")
        self._AttrValue = params.get("AttrValue")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyOrderAttributeResponse(AbstractModel):
    """ModifyOrderAttribute返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRansomDefenseEventsStatusRequest(AbstractModel):
    """ModifyRansomDefenseEventsStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 需要修改的事件id 数组，支持批量
        :type Ids: list of int non-negative
        :param _Status: 操作 0待处理，1已处理,2信任,9:删除记录
        :type Status: int
        :param _All: 是否更新所有同路径事件
        :type All: bool
        """
        self._Ids = None
        self._Status = None
        self._All = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def All(self):
        return self._All

    @All.setter
    def All(self, All):
        self._All = All


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._Status = params.get("Status")
        self._All = params.get("All")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyRansomDefenseEventsStatusResponse(AbstractModel):
    """ModifyRansomDefenseEventsStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRansomDefenseStrategyStatusRequest(AbstractModel):
    """ModifyRansomDefenseStrategyStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _IsAll: 是否对全部策略生效: 0否，1是
        :type IsAll: int
        :param _Status: 0关闭，1开启，9删除
        :type Status: int
        :param _IdList: 策略ID列表
        :type IdList: list of int non-negative
        """
        self._IsAll = None
        self._Status = None
        self._IdList = None

    @property
    def IsAll(self):
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IdList(self):
        return self._IdList

    @IdList.setter
    def IdList(self, IdList):
        self._IdList = IdList


    def _deserialize(self, params):
        self._IsAll = params.get("IsAll")
        self._Status = params.get("Status")
        self._IdList = params.get("IdList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyRansomDefenseStrategyStatusResponse(AbstractModel):
    """ModifyRansomDefenseStrategyStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRiskDnsPolicyRequest(AbstractModel):
    """ModifyRiskDnsPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 策略
        :type Data: :class:`tencentcloud.cwp.v20180228.models.RiskDnsPolicy`
        """
        self._Data = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = RiskDnsPolicy()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyRiskDnsPolicyResponse(AbstractModel):
    """ModifyRiskDnsPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRiskDnsPolicyStatusRequest(AbstractModel):
    """ModifyRiskDnsPolicyStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PolicyId: 策略ID
        :type PolicyId: int
        :param _IsEnabled: 是否生效[0:生效,1:不生效]
        :type IsEnabled: int
        """
        self._PolicyId = None
        self._IsEnabled = None

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def IsEnabled(self):
        return self._IsEnabled

    @IsEnabled.setter
    def IsEnabled(self, IsEnabled):
        self._IsEnabled = IsEnabled


    def _deserialize(self, params):
        self._PolicyId = params.get("PolicyId")
        self._IsEnabled = params.get("IsEnabled")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyRiskDnsPolicyStatusResponse(AbstractModel):
    """ModifyRiskDnsPolicyStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyRiskEventsStatusRequest(AbstractModel):
    """ModifyRiskEventsStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Operate: 操作-0:标记已处理,1:忽略,2:删除记录,3:木马隔离,4:木马恢复隔离,5:木马信任,6:木马取消信任,7:查杀异常进程
        :type Operate: int
        :param _RiskType: 操作事件类型，文件查杀：MALWARE，异常登录：HOST_LOGIN，密码破解：BRUTE_ATTACK，恶意请求：MALICIOUS_REQUEST，高危命令：BASH_EVENT，本地提权：PRIVILEGE_EVENT，反弹shell：REVERSE_SHELL. 异常进程:PROCESS
        :type RiskType: str
        :param _Ids: 需要修改的事件id 数组，支持批量
        :type Ids: list of int non-negative
        :param _UpdateAll: 是否更新全部，即是否对所有的事件进行操作，当ids 不为空时，此参数无效
        :type UpdateAll: bool
        :param _ExcludeId: 排除的事件id,当操作全部事件时，需要排除这次id
        :type ExcludeId: list of int non-negative
        :param _KillProcess: 当Operate 是木马隔离时，表示是否要杀进程，其他操作无效
        :type KillProcess: bool
        :param _Ip: 当RiskType 为异地登录且ids为空时，可以修改所有来源ip的事件的状态
        :type Ip: list of str
        :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: list of Filters
        """
        self._Operate = None
        self._RiskType = None
        self._Ids = None
        self._UpdateAll = None
        self._ExcludeId = None
        self._KillProcess = None
        self._Ip = None
        self._Filters = None

    @property
    def Operate(self):
        return self._Operate

    @Operate.setter
    def Operate(self, Operate):
        self._Operate = Operate

    @property
    def RiskType(self):
        return self._RiskType

    @RiskType.setter
    def RiskType(self, RiskType):
        self._RiskType = RiskType

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def UpdateAll(self):
        return self._UpdateAll

    @UpdateAll.setter
    def UpdateAll(self, UpdateAll):
        self._UpdateAll = UpdateAll

    @property
    def ExcludeId(self):
        return self._ExcludeId

    @ExcludeId.setter
    def ExcludeId(self, ExcludeId):
        self._ExcludeId = ExcludeId

    @property
    def KillProcess(self):
        return self._KillProcess

    @KillProcess.setter
    def KillProcess(self, KillProcess):
        self._KillProcess = KillProcess

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def Filters(self):
        return self._Filters

    @Filters.setter
    def Filters(self, Filters):
        self._Filters = Filters


    def _deserialize(self, params):
        self._Operate = params.get("Operate")
        self._RiskType = params.get("RiskType")
        self._Ids = params.get("Ids")
        self._UpdateAll = params.get("UpdateAll")
        self._ExcludeId = params.get("ExcludeId")
        self._KillProcess = params.get("KillProcess")
        self._Ip = params.get("Ip")
        if params.get("Filters") is not None:
            self._Filters = []
            for item in params.get("Filters"):
                obj = Filters()
                obj._deserialize(item)
                self._Filters.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyRiskEventsStatusResponse(AbstractModel):
    """ModifyRiskEventsStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsSync: 此次操作是否是异步操作，0：操作已完成，1：正在异步操作中，前端需要通过DescribeRiskBatchStatus 查询操作是否完成
注意：此字段可能返回 null，表示取不到有效值。
        :type IsSync: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsSync = None
        self._RequestId = None

    @property
    def IsSync(self):
        return self._IsSync

    @IsSync.setter
    def IsSync(self, IsSync):
        self._IsSync = IsSync

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._IsSync = params.get("IsSync")
        self._RequestId = params.get("RequestId")


class ModifyUsersConfigRequest(AbstractModel):
    """ModifyUsersConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ConfigName: 配置名称
<li>license_monitor 新增授权监控配置 0 关闭, 1开启</li>
        :type ConfigName: str
        :param _ConfigValue: 配置值
        :type ConfigValue: str
        """
        self._ConfigName = None
        self._ConfigValue = None

    @property
    def ConfigName(self):
        return self._ConfigName

    @ConfigName.setter
    def ConfigName(self, ConfigName):
        self._ConfigName = ConfigName

    @property
    def ConfigValue(self):
        return self._ConfigValue

    @ConfigValue.setter
    def ConfigValue(self, ConfigValue):
        self._ConfigValue = ConfigValue


    def _deserialize(self, params):
        self._ConfigName = params.get("ConfigName")
        self._ConfigValue = params.get("ConfigValue")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyUsersConfigResponse(AbstractModel):
    """ModifyUsersConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVulDefenceEventStatusRequest(AbstractModel):
    """ModifyVulDefenceEventStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 事件id
        :type Ids: list of int non-negative
        :param _Status: 0: 待处理  2:已处理 3: 已忽略 4: 已删除
        :type Status: int
        """
        self._Ids = None
        self._Status = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVulDefenceEventStatusResponse(AbstractModel):
    """ModifyVulDefenceEventStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyVulDefenceSettingRequest(AbstractModel):
    """ModifyVulDefenceSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Enable: 防御开关，0 关闭 1 开启
        :type Enable: int
        :param _Scope: 1 全部旗舰版主机，0 Quuids列表主机
        :type Scope: int
        :param _Quuids: 作用弄范围内旗舰版主机列表
        :type Quuids: list of str
        """
        self._Enable = None
        self._Scope = None
        self._Quuids = None

    @property
    def Enable(self):
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def Scope(self):
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._Enable = params.get("Enable")
        self._Scope = params.get("Scope")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyVulDefenceSettingResponse(AbstractModel):
    """ModifyVulDefenceSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWarningHostConfigRequest(AbstractModel):
    """ModifyWarningHostConfig请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Type: 告警类型
        :type Type: int
        :param _HostRange: 告警主机范围类型，0:全部主机，1:按所属项目选，2:按腾讯云标签选，3:按主机安全标签选，4:自选主机
        :type HostRange: int
        :param _ItemLabels: 项目或标签的名称列表，自选主机时为空
        :type ItemLabels: list of str
        :param _Quuids: 机器列表
        :type Quuids: list of str
        :param _ItemLabelIds: 项目或标签的id列表，自选主机时为空
        :type ItemLabelIds: list of str
        """
        self._Type = None
        self._HostRange = None
        self._ItemLabels = None
        self._Quuids = None
        self._ItemLabelIds = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def HostRange(self):
        return self._HostRange

    @HostRange.setter
    def HostRange(self, HostRange):
        self._HostRange = HostRange

    @property
    def ItemLabels(self):
        return self._ItemLabels

    @ItemLabels.setter
    def ItemLabels(self, ItemLabels):
        self._ItemLabels = ItemLabels

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def ItemLabelIds(self):
        return self._ItemLabelIds

    @ItemLabelIds.setter
    def ItemLabelIds(self, ItemLabelIds):
        self._ItemLabelIds = ItemLabelIds


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._HostRange = params.get("HostRange")
        self._ItemLabels = params.get("ItemLabels")
        self._Quuids = params.get("Quuids")
        self._ItemLabelIds = params.get("ItemLabelIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWarningHostConfigResponse(AbstractModel):
    """ModifyWarningHostConfig返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWarningSettingRequest(AbstractModel):
    """ModifyWarningSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _WarningObjects: 告警设置的修改内容
        :type WarningObjects: list of WarningObject
        """
        self._WarningObjects = None

    @property
    def WarningObjects(self):
        return self._WarningObjects

    @WarningObjects.setter
    def WarningObjects(self, WarningObjects):
        self._WarningObjects = WarningObjects


    def _deserialize(self, params):
        if params.get("WarningObjects") is not None:
            self._WarningObjects = []
            for item in params.get("WarningObjects"):
                obj = WarningObject()
                obj._deserialize(item)
                self._WarningObjects.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWarningSettingResponse(AbstractModel):
    """ModifyWarningSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookPolicyRequest(AbstractModel):
    """ModifyWebHookPolicy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: id
        :type Id: int
        :param _Name: 策略名称
        :type Name: str
        :param _Events: 事件类型
        :type Events: list of WebHookEventKv
        :param _HostLabels: 主机范围
        :type HostLabels: list of WebHookHostLabel
        :param _Receivers: 接收人
        :type Receivers: list of WebHookReceiver
        :param _Format: 格式 0text 1json
        :type Format: int
        :param _CustomFields: 自定义透传字段
        :type CustomFields: list of WebHookCustomField
        :param _IsDisabled: 是否启用[1:禁用|0:启用]
        :type IsDisabled: int
        :param _Quuids: 主机列表
        :type Quuids: list of str
        """
        self._Id = None
        self._Name = None
        self._Events = None
        self._HostLabels = None
        self._Receivers = None
        self._Format = None
        self._CustomFields = None
        self._IsDisabled = None
        self._Quuids = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Events(self):
        return self._Events

    @Events.setter
    def Events(self, Events):
        self._Events = Events

    @property
    def HostLabels(self):
        return self._HostLabels

    @HostLabels.setter
    def HostLabels(self, HostLabels):
        self._HostLabels = HostLabels

    @property
    def Receivers(self):
        return self._Receivers

    @Receivers.setter
    def Receivers(self, Receivers):
        self._Receivers = Receivers

    @property
    def Format(self):
        return self._Format

    @Format.setter
    def Format(self, Format):
        self._Format = Format

    @property
    def CustomFields(self):
        return self._CustomFields

    @CustomFields.setter
    def CustomFields(self, CustomFields):
        self._CustomFields = CustomFields

    @property
    def IsDisabled(self):
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        if params.get("Events") is not None:
            self._Events = []
            for item in params.get("Events"):
                obj = WebHookEventKv()
                obj._deserialize(item)
                self._Events.append(obj)
        if params.get("HostLabels") is not None:
            self._HostLabels = []
            for item in params.get("HostLabels"):
                obj = WebHookHostLabel()
                obj._deserialize(item)
                self._HostLabels.append(obj)
        if params.get("Receivers") is not None:
            self._Receivers = []
            for item in params.get("Receivers"):
                obj = WebHookReceiver()
                obj._deserialize(item)
                self._Receivers.append(obj)
        self._Format = params.get("Format")
        if params.get("CustomFields") is not None:
            self._CustomFields = []
            for item in params.get("CustomFields"):
                obj = WebHookCustomField()
                obj._deserialize(item)
                self._CustomFields.append(obj)
        self._IsDisabled = params.get("IsDisabled")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWebHookPolicyResponse(AbstractModel):
    """ModifyWebHookPolicy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookPolicyStatusRequest(AbstractModel):
    """ModifyWebHookPolicyStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: id
        :type Id: int
        :param _IsDisabled: 开关, 1禁用 0启用
        :type IsDisabled: int
        """
        self._Id = None
        self._IsDisabled = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def IsDisabled(self):
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._IsDisabled = params.get("IsDisabled")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWebHookPolicyStatusResponse(AbstractModel):
    """ModifyWebHookPolicyStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookReceiverRequest(AbstractModel):
    """ModifyWebHookReceiver请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: id
        :type Id: int
        :param _Name: 接收人名称
        :type Name: str
        :param _Addr: webhook地址
        :type Addr: str
        :param _IsModify: 是否修改
        :type IsModify: bool
        """
        self._Id = None
        self._Name = None
        self._Addr = None
        self._IsModify = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Addr(self):
        return self._Addr

    @Addr.setter
    def Addr(self, Addr):
        self._Addr = Addr

    @property
    def IsModify(self):
        return self._IsModify

    @IsModify.setter
    def IsModify(self, IsModify):
        self._IsModify = IsModify


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        self._Addr = params.get("Addr")
        self._IsModify = params.get("IsModify")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWebHookReceiverResponse(AbstractModel):
    """ModifyWebHookReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookRuleRequest(AbstractModel):
    """ModifyWebHookRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Data: 规则内容
        :type Data: :class:`tencentcloud.cwp.v20180228.models.WebHookRuleDetail`
        """
        self._Data = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = WebHookRuleDetail()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWebHookRuleResponse(AbstractModel):
    """ModifyWebHookRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebHookRuleStatusRequest(AbstractModel):
    """ModifyWebHookRuleStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则Id
        :type Id: int
        :param _IsDisabled: 开启状态[0:开启|1:关闭]
        :type IsDisabled: int
        """
        self._Id = None
        self._IsDisabled = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def IsDisabled(self):
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._IsDisabled = params.get("IsDisabled")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWebHookRuleStatusResponse(AbstractModel):
    """ModifyWebHookRuleStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebPageProtectDirRequest(AbstractModel):
    """ModifyWebPageProtectDir请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ProtectDirAddr: 网站防护目录地址
        :type ProtectDirAddr: str
        :param _ProtectDirName: 网站防护目录名称
        :type ProtectDirName: str
        :param _ProtectFileType: 防护文件类型,分号分割 ;
        :type ProtectFileType: str
        :param _HostConfig: 防护机器列表信息
        :type HostConfig: list of ProtectHostConfig
        """
        self._ProtectDirAddr = None
        self._ProtectDirName = None
        self._ProtectFileType = None
        self._HostConfig = None

    @property
    def ProtectDirAddr(self):
        return self._ProtectDirAddr

    @ProtectDirAddr.setter
    def ProtectDirAddr(self, ProtectDirAddr):
        self._ProtectDirAddr = ProtectDirAddr

    @property
    def ProtectDirName(self):
        return self._ProtectDirName

    @ProtectDirName.setter
    def ProtectDirName(self, ProtectDirName):
        self._ProtectDirName = ProtectDirName

    @property
    def ProtectFileType(self):
        return self._ProtectFileType

    @ProtectFileType.setter
    def ProtectFileType(self, ProtectFileType):
        self._ProtectFileType = ProtectFileType

    @property
    def HostConfig(self):
        return self._HostConfig

    @HostConfig.setter
    def HostConfig(self, HostConfig):
        self._HostConfig = HostConfig


    def _deserialize(self, params):
        self._ProtectDirAddr = params.get("ProtectDirAddr")
        self._ProtectDirName = params.get("ProtectDirName")
        self._ProtectFileType = params.get("ProtectFileType")
        if params.get("HostConfig") is not None:
            self._HostConfig = []
            for item in params.get("HostConfig"):
                obj = ProtectHostConfig()
                obj._deserialize(item)
                self._HostConfig.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWebPageProtectDirResponse(AbstractModel):
    """ModifyWebPageProtectDir返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebPageProtectSettingRequest(AbstractModel):
    """ModifyWebPageProtectSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ModifyType: 需要操作的类型1 目录名称 2 防护文件类型
        :type ModifyType: int
        :param _Value: 提交值
        :type Value: str
        :param _Id: 配置对应的protect_path
        :type Id: str
        """
        self._ModifyType = None
        self._Value = None
        self._Id = None

    @property
    def ModifyType(self):
        return self._ModifyType

    @ModifyType.setter
    def ModifyType(self, ModifyType):
        self._ModifyType = ModifyType

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._ModifyType = params.get("ModifyType")
        self._Value = params.get("Value")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWebPageProtectSettingResponse(AbstractModel):
    """ModifyWebPageProtectSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyWebPageProtectSwitchRequest(AbstractModel):
    """ModifyWebPageProtectSwitch请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SwitchType: 开关类型 1 防护开关  2 自动恢复开关 3 移除防护目录
        :type SwitchType: int
        :param _Ids: 需要操作开关的网站 最大100条
        :type Ids: list of str
        :param _Status: 1 开启 0 关闭 SwitchType 为 1 | 2 必填;
        :type Status: int
        """
        self._SwitchType = None
        self._Ids = None
        self._Status = None

    @property
    def SwitchType(self):
        return self._SwitchType

    @SwitchType.setter
    def SwitchType(self, SwitchType):
        self._SwitchType = SwitchType

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._SwitchType = params.get("SwitchType")
        self._Ids = params.get("Ids")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyWebPageProtectSwitchResponse(AbstractModel):
    """ModifyWebPageProtectSwitch返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class MonthInspectionReport(AbstractModel):
    """专家服务-月巡检报告

    """

    def __init__(self):
        r"""
        :param _ReportName: 巡检报告名称
        :type ReportName: str
        :param _ReportPath: 巡检报告下载地址
        :type ReportPath: str
        :param _ModifyTime: 巡检报告更新时间
        :type ModifyTime: str
        """
        self._ReportName = None
        self._ReportPath = None
        self._ModifyTime = None

    @property
    def ReportName(self):
        return self._ReportName

    @ReportName.setter
    def ReportName(self, ReportName):
        self._ReportName = ReportName

    @property
    def ReportPath(self):
        return self._ReportPath

    @ReportPath.setter
    def ReportPath(self, ReportPath):
        self._ReportPath = ReportPath

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._ReportName = params.get("ReportName")
        self._ReportPath = params.get("ReportPath")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetAttackEvent(AbstractModel):
    """网络攻击事件

    """

    def __init__(self):
        r"""
        :param _Id: 日志ID
        :type Id: int
        :param _Uuid: 客户端ID
        :type Uuid: str
        :param _DstPort: 目标端口
        :type DstPort: int
        :param _SrcIP: 来源IP
        :type SrcIP: str
        :param _Location: 来源地
        :type Location: str
        :param _VulId: 漏洞id
        :type VulId: int
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _MergeTime: 攻击时间
        :type MergeTime: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Type: 攻击状态，0: 尝试攻击 1: 实锤攻击(攻击成功)
        :type Type: int
        :param _Status: 处理状态，0 待处理 1 已处理 2 已加白  3 已忽略 4 已删除 5: 已开启防御
        :type Status: int
        :param _VulSupportDefense: 漏洞是否支持防御，0:不支持 1:支持
        :type VulSupportDefense: int
        :param _VulDefenceStatus: 是否开启漏洞防御，0关1开
        :type VulDefenceStatus: int
        :param _PayVersion: 机器付费版本，0 基础版，1专业版，2旗舰版，3普惠版
        :type PayVersion: int
        :param _Quuid: cvm uuid
        :type Quuid: str
        :param _Count: 攻击次数
        :type Count: int
        :param _New: 是否今日新增主机
        :type New: bool
        """
        self._Id = None
        self._Uuid = None
        self._DstPort = None
        self._SrcIP = None
        self._Location = None
        self._VulId = None
        self._VulName = None
        self._MergeTime = None
        self._MachineExtraInfo = None
        self._Type = None
        self._Status = None
        self._VulSupportDefense = None
        self._VulDefenceStatus = None
        self._PayVersion = None
        self._Quuid = None
        self._Count = None
        self._New = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def SrcIP(self):
        return self._SrcIP

    @SrcIP.setter
    def SrcIP(self, SrcIP):
        self._SrcIP = SrcIP

    @property
    def Location(self):
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def MergeTime(self):
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def VulSupportDefense(self):
        return self._VulSupportDefense

    @VulSupportDefense.setter
    def VulSupportDefense(self, VulSupportDefense):
        self._VulSupportDefense = VulSupportDefense

    @property
    def VulDefenceStatus(self):
        return self._VulDefenceStatus

    @VulDefenceStatus.setter
    def VulDefenceStatus(self, VulDefenceStatus):
        self._VulDefenceStatus = VulDefenceStatus

    @property
    def PayVersion(self):
        return self._PayVersion

    @PayVersion.setter
    def PayVersion(self, PayVersion):
        self._PayVersion = PayVersion

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def New(self):
        return self._New

    @New.setter
    def New(self, New):
        self._New = New


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._DstPort = params.get("DstPort")
        self._SrcIP = params.get("SrcIP")
        self._Location = params.get("Location")
        self._VulId = params.get("VulId")
        self._VulName = params.get("VulName")
        self._MergeTime = params.get("MergeTime")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Type = params.get("Type")
        self._Status = params.get("Status")
        self._VulSupportDefense = params.get("VulSupportDefense")
        self._VulDefenceStatus = params.get("VulDefenceStatus")
        self._PayVersion = params.get("PayVersion")
        self._Quuid = params.get("Quuid")
        self._Count = params.get("Count")
        self._New = params.get("New")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetAttackEventInfo(AbstractModel):
    """网络攻击事件详情

    """

    def __init__(self):
        r"""
        :param _Status: 处理状态，0 待处理 1 已处理 2 已加白  3 已忽略 4 已删除 5: 已开启防御
        :type Status: int
        :param _SrcIP: 攻击源ip
        :type SrcIP: str
        :param _Location: 攻击源地
        :type Location: str
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _VulId: 漏洞id
        :type VulId: int
        :param _CVEId: 漏洞CVE编号
        :type CVEId: str
        :param _AttackLevel: 漏洞攻击热度
        :type AttackLevel: int
        :param _VulDefenceStatus: 漏洞防御状态，0关闭，1开启
        :type VulDefenceStatus: int
        :param _VulSupportDefense: 漏洞是否支持防御，0:不支持 1:支持
        :type VulSupportDefense: int
        :param _SvcPs: 服务进程 base64 
        :type SvcPs: str
        :param _NetPayload: 攻击数据包
        :type NetPayload: str
        :param _AbnormalAction: 异常行为
        :type AbnormalAction: str
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _Id: 事件id
        :type Id: int
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _DstPort: 目标端口
        :type DstPort: int
        :param _Count: 攻击次数
        :type Count: int
        :param _PayVersion: 机器付费版本，0 基础版，1专业版，2旗舰版，3普惠版
        :type PayVersion: int
        :param _Quuid: cvm uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _MergeTime: 攻击发生时间
注意：此字段可能返回 null，表示取不到有效值。
        :type MergeTime: str
        :param _Type: 0: 尝试攻击 1:攻击成功
注意：此字段可能返回 null，表示取不到有效值。
        :type Type: int
        :param _HostOpType: 0:无失陷行为 1: rce(命令执行) 2: dnslog 3: writefile
注意：此字段可能返回 null，表示取不到有效值。
        :type HostOpType: int
        :param _HostOpProcessTree: 进程树,需要用base64 解码
注意：此字段可能返回 null，表示取不到有效值。
        :type HostOpProcessTree: str
        """
        self._Status = None
        self._SrcIP = None
        self._Location = None
        self._VulName = None
        self._VulId = None
        self._CVEId = None
        self._AttackLevel = None
        self._VulDefenceStatus = None
        self._VulSupportDefense = None
        self._SvcPs = None
        self._NetPayload = None
        self._AbnormalAction = None
        self._Uuid = None
        self._Id = None
        self._MachineExtraInfo = None
        self._DstPort = None
        self._Count = None
        self._PayVersion = None
        self._Quuid = None
        self._MergeTime = None
        self._Type = None
        self._HostOpType = None
        self._HostOpProcessTree = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def SrcIP(self):
        return self._SrcIP

    @SrcIP.setter
    def SrcIP(self, SrcIP):
        self._SrcIP = SrcIP

    @property
    def Location(self):
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def CVEId(self):
        return self._CVEId

    @CVEId.setter
    def CVEId(self, CVEId):
        self._CVEId = CVEId

    @property
    def AttackLevel(self):
        return self._AttackLevel

    @AttackLevel.setter
    def AttackLevel(self, AttackLevel):
        self._AttackLevel = AttackLevel

    @property
    def VulDefenceStatus(self):
        return self._VulDefenceStatus

    @VulDefenceStatus.setter
    def VulDefenceStatus(self, VulDefenceStatus):
        self._VulDefenceStatus = VulDefenceStatus

    @property
    def VulSupportDefense(self):
        return self._VulSupportDefense

    @VulSupportDefense.setter
    def VulSupportDefense(self, VulSupportDefense):
        self._VulSupportDefense = VulSupportDefense

    @property
    def SvcPs(self):
        return self._SvcPs

    @SvcPs.setter
    def SvcPs(self, SvcPs):
        self._SvcPs = SvcPs

    @property
    def NetPayload(self):
        return self._NetPayload

    @NetPayload.setter
    def NetPayload(self, NetPayload):
        self._NetPayload = NetPayload

    @property
    def AbnormalAction(self):
        return self._AbnormalAction

    @AbnormalAction.setter
    def AbnormalAction(self, AbnormalAction):
        self._AbnormalAction = AbnormalAction

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def PayVersion(self):
        return self._PayVersion

    @PayVersion.setter
    def PayVersion(self, PayVersion):
        self._PayVersion = PayVersion

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MergeTime(self):
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def HostOpType(self):
        return self._HostOpType

    @HostOpType.setter
    def HostOpType(self, HostOpType):
        self._HostOpType = HostOpType

    @property
    def HostOpProcessTree(self):
        return self._HostOpProcessTree

    @HostOpProcessTree.setter
    def HostOpProcessTree(self, HostOpProcessTree):
        self._HostOpProcessTree = HostOpProcessTree


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._SrcIP = params.get("SrcIP")
        self._Location = params.get("Location")
        self._VulName = params.get("VulName")
        self._VulId = params.get("VulId")
        self._CVEId = params.get("CVEId")
        self._AttackLevel = params.get("AttackLevel")
        self._VulDefenceStatus = params.get("VulDefenceStatus")
        self._VulSupportDefense = params.get("VulSupportDefense")
        self._SvcPs = params.get("SvcPs")
        self._NetPayload = params.get("NetPayload")
        self._AbnormalAction = params.get("AbnormalAction")
        self._Uuid = params.get("Uuid")
        self._Id = params.get("Id")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._DstPort = params.get("DstPort")
        self._Count = params.get("Count")
        self._PayVersion = params.get("PayVersion")
        self._Quuid = params.get("Quuid")
        self._MergeTime = params.get("MergeTime")
        self._Type = params.get("Type")
        self._HostOpType = params.get("HostOpType")
        self._HostOpProcessTree = params.get("HostOpProcessTree")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetAttackTopInfo(AbstractModel):
    """网络攻击top统计数据

    """

    def __init__(self):
        r"""
        :param _Agent: 网络攻击主机维度top统计数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Agent: list of TopInfo
        :param _SrcIp: 网络攻击ip来源维度top统计数据
注意：此字段可能返回 null，表示取不到有效值。
        :type SrcIp: list of TopInfo
        :param _DstPort: 网络攻击目标端口维度top统计数据
注意：此字段可能返回 null，表示取不到有效值。
        :type DstPort: list of TopInfo
        :param _Vul: 网络攻击漏洞维度top统计数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Vul: list of TopInfo
        """
        self._Agent = None
        self._SrcIp = None
        self._DstPort = None
        self._Vul = None

    @property
    def Agent(self):
        return self._Agent

    @Agent.setter
    def Agent(self, Agent):
        self._Agent = Agent

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def Vul(self):
        return self._Vul

    @Vul.setter
    def Vul(self, Vul):
        self._Vul = Vul


    def _deserialize(self, params):
        if params.get("Agent") is not None:
            self._Agent = []
            for item in params.get("Agent"):
                obj = TopInfo()
                obj._deserialize(item)
                self._Agent.append(obj)
        if params.get("SrcIp") is not None:
            self._SrcIp = []
            for item in params.get("SrcIp"):
                obj = TopInfo()
                obj._deserialize(item)
                self._SrcIp.append(obj)
        if params.get("DstPort") is not None:
            self._DstPort = []
            for item in params.get("DstPort"):
                obj = TopInfo()
                obj._deserialize(item)
                self._DstPort.append(obj)
        if params.get("Vul") is not None:
            self._Vul = []
            for item in params.get("Vul"):
                obj = TopInfo()
                obj._deserialize(item)
                self._Vul.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetAttackTrend(AbstractModel):
    """攻击趋势统计数据

    """

    def __init__(self):
        r"""
        :param _DateTime: 时间点，如 2023-05-06
注意：此字段可能返回 null，表示取不到有效值。
        :type DateTime: str
        :param _AttackCount: 攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackCount: int
        :param _TryAttackCount: 尝试攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type TryAttackCount: int
        :param _SuccAttackCount: 攻击成功次数
注意：此字段可能返回 null，表示取不到有效值。
        :type SuccAttackCount: int
        """
        self._DateTime = None
        self._AttackCount = None
        self._TryAttackCount = None
        self._SuccAttackCount = None

    @property
    def DateTime(self):
        return self._DateTime

    @DateTime.setter
    def DateTime(self, DateTime):
        self._DateTime = DateTime

    @property
    def AttackCount(self):
        return self._AttackCount

    @AttackCount.setter
    def AttackCount(self, AttackCount):
        self._AttackCount = AttackCount

    @property
    def TryAttackCount(self):
        return self._TryAttackCount

    @TryAttackCount.setter
    def TryAttackCount(self, TryAttackCount):
        self._TryAttackCount = TryAttackCount

    @property
    def SuccAttackCount(self):
        return self._SuccAttackCount

    @SuccAttackCount.setter
    def SuccAttackCount(self, SuccAttackCount):
        self._SuccAttackCount = SuccAttackCount


    def _deserialize(self, params):
        self._DateTime = params.get("DateTime")
        self._AttackCount = params.get("AttackCount")
        self._TryAttackCount = params.get("TryAttackCount")
        self._SuccAttackCount = params.get("SuccAttackCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NetAttackWhiteRule(AbstractModel):
    """网络攻击白名单规则

    """

    def __init__(self):
        r"""
        :param _Id: 规则id
注意：此字段可能返回 null，表示取不到有效值。
        :type Id: int
        :param _Description: 规则描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _Scope: 0: 一组quuid 1: 所有主机
注意：此字段可能返回 null，表示取不到有效值。
        :type Scope: int
        :param _DealOldEvents: 是否处理之前的事件 0: 不处理 1:处理
注意：此字段可能返回 null，表示取不到有效值。
        :type DealOldEvents: int
        :param _Quuids: 主机quuid 多个用;隔开
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuids: str
        :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: str
        :param _CreateTime: 创建时间
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        :param _ModifyTime: 修改时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        """
        self._Id = None
        self._Description = None
        self._Scope = None
        self._DealOldEvents = None
        self._Quuids = None
        self._SrcIP = None
        self._CreateTime = None
        self._ModifyTime = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Scope(self):
        return self._Scope

    @Scope.setter
    def Scope(self, Scope):
        self._Scope = Scope

    @property
    def DealOldEvents(self):
        return self._DealOldEvents

    @DealOldEvents.setter
    def DealOldEvents(self, DealOldEvents):
        self._DealOldEvents = DealOldEvents

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def SrcIP(self):
        return self._SrcIP

    @SrcIP.setter
    def SrcIP(self, SrcIP):
        self._SrcIP = SrcIP

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Description = params.get("Description")
        self._Scope = params.get("Scope")
        self._DealOldEvents = params.get("DealOldEvents")
        self._Quuids = params.get("Quuids")
        self._SrcIP = params.get("SrcIP")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenPortStatistics(AbstractModel):
    """端口统计列表

    """

    def __init__(self):
        r"""
        :param _Port: 端口号
        :type Port: int
        :param _MachineNum: 主机数量
        :type MachineNum: int
        """
        self._Port = None
        self._MachineNum = None

    @property
    def Port(self):
        return self._Port

    @Port.setter
    def Port(self, Port):
        self._Port = Port

    @property
    def MachineNum(self):
        return self._MachineNum

    @MachineNum.setter
    def MachineNum(self, MachineNum):
        self._MachineNum = MachineNum


    def _deserialize(self, params):
        self._Port = params.get("Port")
        self._MachineNum = params.get("MachineNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OrderModifyObject(AbstractModel):
    """订单变配参数对象

    """

    def __init__(self):
        r"""
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _NewSubProductCode: 新产品标识,这里支持PRO_VERSION 专业版,FLAGSHIP 旗舰版
        :type NewSubProductCode: str
        :param _InquireNum: 扩容/缩容数,变配子产品忽略该参数
        :type InquireNum: int
        """
        self._ResourceId = None
        self._NewSubProductCode = None
        self._InquireNum = None

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def NewSubProductCode(self):
        return self._NewSubProductCode

    @NewSubProductCode.setter
    def NewSubProductCode(self, NewSubProductCode):
        self._NewSubProductCode = NewSubProductCode

    @property
    def InquireNum(self):
        return self._InquireNum

    @InquireNum.setter
    def InquireNum(self, InquireNum):
        self._InquireNum = InquireNum


    def _deserialize(self, params):
        self._ResourceId = params.get("ResourceId")
        self._NewSubProductCode = params.get("NewSubProductCode")
        self._InquireNum = params.get("InquireNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OrderResource(AbstractModel):
    """订单资源

    """

    def __init__(self):
        r"""
        :param _Id: 资源主键ID
        :type Id: int
        :param _ResourceId: 资源ID
        :type ResourceId: str
        :param _BeginTime: 开始时间
        :type BeginTime: str
        :param _EndTime: 到期时间
        :type EndTime: str
        :param _LicenseType: 授权类型
        :type LicenseType: int
        """
        self._Id = None
        self._ResourceId = None
        self._BeginTime = None
        self._EndTime = None
        self._LicenseType = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def ResourceId(self):
        return self._ResourceId

    @ResourceId.setter
    def ResourceId(self, ResourceId):
        self._ResourceId = ResourceId

    @property
    def BeginTime(self):
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def LicenseType(self):
        return self._LicenseType

    @LicenseType.setter
    def LicenseType(self, LicenseType):
        self._LicenseType = LicenseType


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._ResourceId = params.get("ResourceId")
        self._BeginTime = params.get("BeginTime")
        self._EndTime = params.get("EndTime")
        self._LicenseType = params.get("LicenseType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OsName(AbstractModel):
    """操作系统名称

    """

    def __init__(self):
        r"""
        :param _Name: 系统名称
        :type Name: str
        :param _MachineOSType: 操作系统类型枚举值
        :type MachineOSType: int
        """
        self._Name = None
        self._MachineOSType = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def MachineOSType(self):
        return self._MachineOSType

    @MachineOSType.setter
    def MachineOSType(self, MachineOSType):
        self._MachineOSType = MachineOSType


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._MachineOSType = params.get("MachineOSType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Place(AbstractModel):
    """登录地信息

    """

    def __init__(self):
        r"""
        :param _CityId: 城市 ID。
        :type CityId: int
        :param _ProvinceId: 省份 ID。
        :type ProvinceId: int
        :param _CountryId: 国家ID，暂只支持国内：1。
        :type CountryId: int
        :param _Location: 位置名称
        :type Location: str
        """
        self._CityId = None
        self._ProvinceId = None
        self._CountryId = None
        self._Location = None

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def ProvinceId(self):
        return self._ProvinceId

    @ProvinceId.setter
    def ProvinceId(self, ProvinceId):
        self._ProvinceId = ProvinceId

    @property
    def CountryId(self):
        return self._CountryId

    @CountryId.setter
    def CountryId(self, CountryId):
        self._CountryId = CountryId

    @property
    def Location(self):
        return self._Location

    @Location.setter
    def Location(self, Location):
        self._Location = Location


    def _deserialize(self, params):
        self._CityId = params.get("CityId")
        self._ProvinceId = params.get("ProvinceId")
        self._CountryId = params.get("CountryId")
        self._Location = params.get("Location")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PrivilegeEscalationProcess(AbstractModel):
    """本地提权数据

    """

    def __init__(self):
        r"""
        :param _Id: 数据ID
        :type Id: int
        :param _Uuid: 主机安全ID
        :type Uuid: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _Hostip: 主机内网IP
        :type Hostip: str
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _FullPath: 进程路径
        :type FullPath: str
        :param _CmdLine: 执行命令
        :type CmdLine: str
        :param _UserName: 用户名
        :type UserName: str
        :param _UserGroup: 用户组
        :type UserGroup: str
        :param _ProcFilePrivilege: 进程文件权限
        :type ProcFilePrivilege: str
        :param _ParentProcName: 父进程名
        :type ParentProcName: str
        :param _ParentProcUser: 父进程用户名
        :type ParentProcUser: str
        :param _ParentProcGroup: 父进程用户组
        :type ParentProcGroup: str
        :param _ParentProcPath: 父进程路径
        :type ParentProcPath: str
        :param _ProcTree: 进程树
        :type ProcTree: str
        :param _Status: 处理状态：0-待处理 2-白名单 3-已处理 4-已忽略
        :type Status: int
        :param _CreateTime: 发生时间
        :type CreateTime: str
        :param _MachineName: 机器名
        :type MachineName: str
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Pid: 进程id
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: int
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._Hostip = None
        self._ProcessName = None
        self._FullPath = None
        self._CmdLine = None
        self._UserName = None
        self._UserGroup = None
        self._ProcFilePrivilege = None
        self._ParentProcName = None
        self._ParentProcUser = None
        self._ParentProcGroup = None
        self._ParentProcPath = None
        self._ProcTree = None
        self._Status = None
        self._CreateTime = None
        self._MachineName = None
        self._MachineExtraInfo = None
        self._Pid = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Hostip(self):
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def FullPath(self):
        return self._FullPath

    @FullPath.setter
    def FullPath(self, FullPath):
        self._FullPath = FullPath

    @property
    def CmdLine(self):
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ProcFilePrivilege(self):
        return self._ProcFilePrivilege

    @ProcFilePrivilege.setter
    def ProcFilePrivilege(self, ProcFilePrivilege):
        self._ProcFilePrivilege = ProcFilePrivilege

    @property
    def ParentProcName(self):
        return self._ParentProcName

    @ParentProcName.setter
    def ParentProcName(self, ParentProcName):
        self._ParentProcName = ParentProcName

    @property
    def ParentProcUser(self):
        return self._ParentProcUser

    @ParentProcUser.setter
    def ParentProcUser(self, ParentProcUser):
        self._ParentProcUser = ParentProcUser

    @property
    def ParentProcGroup(self):
        return self._ParentProcGroup

    @ParentProcGroup.setter
    def ParentProcGroup(self, ParentProcGroup):
        self._ParentProcGroup = ParentProcGroup

    @property
    def ParentProcPath(self):
        return self._ParentProcPath

    @ParentProcPath.setter
    def ParentProcPath(self, ParentProcPath):
        self._ParentProcPath = ParentProcPath

    @property
    def ProcTree(self):
        return self._ProcTree

    @ProcTree.setter
    def ProcTree(self, ProcTree):
        self._ProcTree = ProcTree

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Hostip = params.get("Hostip")
        self._ProcessName = params.get("ProcessName")
        self._FullPath = params.get("FullPath")
        self._CmdLine = params.get("CmdLine")
        self._UserName = params.get("UserName")
        self._UserGroup = params.get("UserGroup")
        self._ProcFilePrivilege = params.get("ProcFilePrivilege")
        self._ParentProcName = params.get("ParentProcName")
        self._ParentProcUser = params.get("ParentProcUser")
        self._ParentProcGroup = params.get("ParentProcGroup")
        self._ParentProcPath = params.get("ParentProcPath")
        self._ProcTree = params.get("ProcTree")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MachineName = params.get("MachineName")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Pid = params.get("Pid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PrivilegeEventInfo(AbstractModel):
    """本地提权数据

    """

    def __init__(self):
        r"""
        :param _Id: 数据ID
        :type Id: int
        :param _Uuid: 云镜ID
        :type Uuid: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _HostIp: 主机内网IP
        :type HostIp: str
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _FullPath: 进程路径
        :type FullPath: str
        :param _CmdLine: 执行命令
        :type CmdLine: str
        :param _UserName: 用户名
        :type UserName: str
        :param _UserGroup: 用户组
        :type UserGroup: str
        :param _ProcFilePrivilege: 进程文件权限
        :type ProcFilePrivilege: str
        :param _ParentProcName: 父进程名
        :type ParentProcName: str
        :param _ParentProcUser: 父进程用户名
        :type ParentProcUser: str
        :param _ParentProcGroup: 父进程用户组
        :type ParentProcGroup: str
        :param _ParentProcPath: 父进程路径
        :type ParentProcPath: str
        :param _PsTree: 进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
        :type PsTree: str
        :param _Status: 处理状态：0-待处理 2-白名单 3-已处理 4-已忽略
        :type Status: int
        :param _CreateTime: 发生时间
        :type CreateTime: str
        :param _MachineName: 机器名
        :type MachineName: str
        :param _SuggestScheme: 建议方案
        :type SuggestScheme: str
        :param _HarmDescribe: 危害描述信息
        :type HarmDescribe: str
        :param _Tags: 标签
        :type Tags: list of str
        :param _References: 参考链接
        :type References: list of str
        :param _MachineWanIp: 主机外网ip
        :type MachineWanIp: str
        :param _NewCaps: 权限列表|隔开
        :type NewCaps: str
        :param _MachineStatus: 主机在线状态 OFFLINE  ONLINE
        :type MachineStatus: str
        :param _ModifyTime: 处理时间
        :type ModifyTime: str
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._HostIp = None
        self._ProcessName = None
        self._FullPath = None
        self._CmdLine = None
        self._UserName = None
        self._UserGroup = None
        self._ProcFilePrivilege = None
        self._ParentProcName = None
        self._ParentProcUser = None
        self._ParentProcGroup = None
        self._ParentProcPath = None
        self._PsTree = None
        self._Status = None
        self._CreateTime = None
        self._MachineName = None
        self._SuggestScheme = None
        self._HarmDescribe = None
        self._Tags = None
        self._References = None
        self._MachineWanIp = None
        self._NewCaps = None
        self._MachineStatus = None
        self._ModifyTime = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def FullPath(self):
        return self._FullPath

    @FullPath.setter
    def FullPath(self, FullPath):
        self._FullPath = FullPath

    @property
    def CmdLine(self):
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ProcFilePrivilege(self):
        return self._ProcFilePrivilege

    @ProcFilePrivilege.setter
    def ProcFilePrivilege(self, ProcFilePrivilege):
        self._ProcFilePrivilege = ProcFilePrivilege

    @property
    def ParentProcName(self):
        return self._ParentProcName

    @ParentProcName.setter
    def ParentProcName(self, ParentProcName):
        self._ParentProcName = ParentProcName

    @property
    def ParentProcUser(self):
        return self._ParentProcUser

    @ParentProcUser.setter
    def ParentProcUser(self, ParentProcUser):
        self._ParentProcUser = ParentProcUser

    @property
    def ParentProcGroup(self):
        return self._ParentProcGroup

    @ParentProcGroup.setter
    def ParentProcGroup(self, ParentProcGroup):
        self._ParentProcGroup = ParentProcGroup

    @property
    def ParentProcPath(self):
        return self._ParentProcPath

    @ParentProcPath.setter
    def ParentProcPath(self, ParentProcPath):
        self._ParentProcPath = ParentProcPath

    @property
    def PsTree(self):
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def SuggestScheme(self):
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def HarmDescribe(self):
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def References(self):
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def NewCaps(self):
        return self._NewCaps

    @NewCaps.setter
    def NewCaps(self, NewCaps):
        self._NewCaps = NewCaps

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._HostIp = params.get("HostIp")
        self._ProcessName = params.get("ProcessName")
        self._FullPath = params.get("FullPath")
        self._CmdLine = params.get("CmdLine")
        self._UserName = params.get("UserName")
        self._UserGroup = params.get("UserGroup")
        self._ProcFilePrivilege = params.get("ProcFilePrivilege")
        self._ParentProcName = params.get("ParentProcName")
        self._ParentProcUser = params.get("ParentProcUser")
        self._ParentProcGroup = params.get("ParentProcGroup")
        self._ParentProcPath = params.get("ParentProcPath")
        self._PsTree = params.get("PsTree")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MachineName = params.get("MachineName")
        self._SuggestScheme = params.get("SuggestScheme")
        self._HarmDescribe = params.get("HarmDescribe")
        self._Tags = params.get("Tags")
        self._References = params.get("References")
        self._MachineWanIp = params.get("MachineWanIp")
        self._NewCaps = params.get("NewCaps")
        self._MachineStatus = params.get("MachineStatus")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PrivilegeRule(AbstractModel):
    """本地提权规则

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _Uuid: 客户端ID
        :type Uuid: str
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _SMode: 是否S权限
        :type SMode: int
        :param _Operator: 操作人
        :type Operator: str
        :param _IsGlobal: 是否全局规则
        :type IsGlobal: int
        :param _Status: 状态(0: 有效 1: 无效)
        :type Status: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        :param _Hostip: 主机IP
        :type Hostip: str
        """
        self._Id = None
        self._Uuid = None
        self._ProcessName = None
        self._SMode = None
        self._Operator = None
        self._IsGlobal = None
        self._Status = None
        self._CreateTime = None
        self._ModifyTime = None
        self._Hostip = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def SMode(self):
        return self._SMode

    @SMode.setter
    def SMode(self, SMode):
        self._SMode = SMode

    @property
    def Operator(self):
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Hostip(self):
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._ProcessName = params.get("ProcessName")
        self._SMode = params.get("SMode")
        self._Operator = params.get("Operator")
        self._IsGlobal = params.get("IsGlobal")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._Hostip = params.get("Hostip")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProcessStatistics(AbstractModel):
    """进程数据统计数据。

    """

    def __init__(self):
        r"""
        :param _ProcessName: 进程名。
        :type ProcessName: str
        :param _MachineNum: 主机数量。
        :type MachineNum: int
        """
        self._ProcessName = None
        self._MachineNum = None

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def MachineNum(self):
        return self._MachineNum

    @MachineNum.setter
    def MachineNum(self, MachineNum):
        self._MachineNum = MachineNum


    def _deserialize(self, params):
        self._ProcessName = params.get("ProcessName")
        self._MachineNum = params.get("MachineNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProductStatusInfo(AbstractModel):
    """产品试用状态查询接口Data出参

    """

    def __init__(self):
        r"""
        :param _FWUserStatus: 防护状态，1未防护，2防护中，3试用中，4已过期
        :type FWUserStatus: int
        :param _CanApplyTrial: 是否可以申请试用，true可以申请
        :type CanApplyTrial: bool
        :param _CanNotApplyReason: 无法试用原因，可试用为空
        :type CanNotApplyReason: str
        :param _LastTrialTime: 上次试用结束时间（不存在试用记录则为空）
        :type LastTrialTime: str
        """
        self._FWUserStatus = None
        self._CanApplyTrial = None
        self._CanNotApplyReason = None
        self._LastTrialTime = None

    @property
    def FWUserStatus(self):
        return self._FWUserStatus

    @FWUserStatus.setter
    def FWUserStatus(self, FWUserStatus):
        self._FWUserStatus = FWUserStatus

    @property
    def CanApplyTrial(self):
        return self._CanApplyTrial

    @CanApplyTrial.setter
    def CanApplyTrial(self, CanApplyTrial):
        self._CanApplyTrial = CanApplyTrial

    @property
    def CanNotApplyReason(self):
        return self._CanNotApplyReason

    @CanNotApplyReason.setter
    def CanNotApplyReason(self, CanNotApplyReason):
        self._CanNotApplyReason = CanNotApplyReason

    @property
    def LastTrialTime(self):
        return self._LastTrialTime

    @LastTrialTime.setter
    def LastTrialTime(self, LastTrialTime):
        self._LastTrialTime = LastTrialTime


    def _deserialize(self, params):
        self._FWUserStatus = params.get("FWUserStatus")
        self._CanApplyTrial = params.get("CanApplyTrial")
        self._CanNotApplyReason = params.get("CanNotApplyReason")
        self._LastTrialTime = params.get("LastTrialTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProtectDirInfo(AbstractModel):
    """防护目录列表集

    """

    def __init__(self):
        r"""
        :param _DirName: 网站名称
        :type DirName: str
        :param _DirPath: 网站防护目录地址
        :type DirPath: str
        :param _RelatedServerNum: 关联服务器数
        :type RelatedServerNum: int
        :param _ProtectServerNum: 防护服务器数
        :type ProtectServerNum: int
        :param _NoProtectServerNum: 未防护服务器数
        :type NoProtectServerNum: int
        :param _Id: 唯一ID
        :type Id: str
        :param _ProtectStatus: 防护状态
        :type ProtectStatus: int
        :param _ProtectException: 防护异常
        :type ProtectException: int
        :param _AutoRestoreSwitchStatus: 自动恢复开关 (Filters 过滤Quuid 时 返回) 默认0
        :type AutoRestoreSwitchStatus: int
        :param _FirstProtectTime: 首次开启防护时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FirstProtectTime: str
        :param _LatestProtectTime: 最近开启防护时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LatestProtectTime: str
        :param _ProtectFileType: 防护文件类型
注意：此字段可能返回 null，表示取不到有效值。
        :type ProtectFileType: str
        :param _ProtectFilesCount: 防护文件总数
注意：此字段可能返回 null，表示取不到有效值。
        :type ProtectFilesCount: int
        """
        self._DirName = None
        self._DirPath = None
        self._RelatedServerNum = None
        self._ProtectServerNum = None
        self._NoProtectServerNum = None
        self._Id = None
        self._ProtectStatus = None
        self._ProtectException = None
        self._AutoRestoreSwitchStatus = None
        self._FirstProtectTime = None
        self._LatestProtectTime = None
        self._ProtectFileType = None
        self._ProtectFilesCount = None

    @property
    def DirName(self):
        return self._DirName

    @DirName.setter
    def DirName(self, DirName):
        self._DirName = DirName

    @property
    def DirPath(self):
        return self._DirPath

    @DirPath.setter
    def DirPath(self, DirPath):
        self._DirPath = DirPath

    @property
    def RelatedServerNum(self):
        return self._RelatedServerNum

    @RelatedServerNum.setter
    def RelatedServerNum(self, RelatedServerNum):
        self._RelatedServerNum = RelatedServerNum

    @property
    def ProtectServerNum(self):
        return self._ProtectServerNum

    @ProtectServerNum.setter
    def ProtectServerNum(self, ProtectServerNum):
        self._ProtectServerNum = ProtectServerNum

    @property
    def NoProtectServerNum(self):
        return self._NoProtectServerNum

    @NoProtectServerNum.setter
    def NoProtectServerNum(self, NoProtectServerNum):
        self._NoProtectServerNum = NoProtectServerNum

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def ProtectStatus(self):
        return self._ProtectStatus

    @ProtectStatus.setter
    def ProtectStatus(self, ProtectStatus):
        self._ProtectStatus = ProtectStatus

    @property
    def ProtectException(self):
        return self._ProtectException

    @ProtectException.setter
    def ProtectException(self, ProtectException):
        self._ProtectException = ProtectException

    @property
    def AutoRestoreSwitchStatus(self):
        return self._AutoRestoreSwitchStatus

    @AutoRestoreSwitchStatus.setter
    def AutoRestoreSwitchStatus(self, AutoRestoreSwitchStatus):
        self._AutoRestoreSwitchStatus = AutoRestoreSwitchStatus

    @property
    def FirstProtectTime(self):
        return self._FirstProtectTime

    @FirstProtectTime.setter
    def FirstProtectTime(self, FirstProtectTime):
        self._FirstProtectTime = FirstProtectTime

    @property
    def LatestProtectTime(self):
        return self._LatestProtectTime

    @LatestProtectTime.setter
    def LatestProtectTime(self, LatestProtectTime):
        self._LatestProtectTime = LatestProtectTime

    @property
    def ProtectFileType(self):
        return self._ProtectFileType

    @ProtectFileType.setter
    def ProtectFileType(self, ProtectFileType):
        self._ProtectFileType = ProtectFileType

    @property
    def ProtectFilesCount(self):
        return self._ProtectFilesCount

    @ProtectFilesCount.setter
    def ProtectFilesCount(self, ProtectFilesCount):
        self._ProtectFilesCount = ProtectFilesCount


    def _deserialize(self, params):
        self._DirName = params.get("DirName")
        self._DirPath = params.get("DirPath")
        self._RelatedServerNum = params.get("RelatedServerNum")
        self._ProtectServerNum = params.get("ProtectServerNum")
        self._NoProtectServerNum = params.get("NoProtectServerNum")
        self._Id = params.get("Id")
        self._ProtectStatus = params.get("ProtectStatus")
        self._ProtectException = params.get("ProtectException")
        self._AutoRestoreSwitchStatus = params.get("AutoRestoreSwitchStatus")
        self._FirstProtectTime = params.get("FirstProtectTime")
        self._LatestProtectTime = params.get("LatestProtectTime")
        self._ProtectFileType = params.get("ProtectFileType")
        self._ProtectFilesCount = params.get("ProtectFilesCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProtectDirRelatedServer(AbstractModel):
    """防护目录关联服务器列表信息

    """

    def __init__(self):
        r"""
        :param _Id: 唯一ID
        :type Id: str
        :param _HostName: 服务器名称
        :type HostName: str
        :param _HostIp: 服务器IP
        :type HostIp: str
        :param _MachineOs: 服务器系统
        :type MachineOs: str
        :param _RelateDirNum: 关联目录数
        :type RelateDirNum: int
        :param _ProtectStatus: 防护状态
        :type ProtectStatus: int
        :param _ProtectSwitch: 防护开关
        :type ProtectSwitch: int
        :param _AutoRestoreSwitchStatus: 自动恢复开关
        :type AutoRestoreSwitchStatus: int
        :param _Quuid: 服务器唯一ID
        :type Quuid: str
        :param _Authorization: 是否已经授权
        :type Authorization: bool
        :param _Exception: 异常状态
        :type Exception: int
        :param _Progress: 过渡进度
        :type Progress: int
        :param _ExceptionMessage: 异常信息
        :type ExceptionMessage: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._Id = None
        self._HostName = None
        self._HostIp = None
        self._MachineOs = None
        self._RelateDirNum = None
        self._ProtectStatus = None
        self._ProtectSwitch = None
        self._AutoRestoreSwitchStatus = None
        self._Quuid = None
        self._Authorization = None
        self._Exception = None
        self._Progress = None
        self._ExceptionMessage = None
        self._MachineExtraInfo = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def MachineOs(self):
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def RelateDirNum(self):
        return self._RelateDirNum

    @RelateDirNum.setter
    def RelateDirNum(self, RelateDirNum):
        self._RelateDirNum = RelateDirNum

    @property
    def ProtectStatus(self):
        return self._ProtectStatus

    @ProtectStatus.setter
    def ProtectStatus(self, ProtectStatus):
        self._ProtectStatus = ProtectStatus

    @property
    def ProtectSwitch(self):
        return self._ProtectSwitch

    @ProtectSwitch.setter
    def ProtectSwitch(self, ProtectSwitch):
        self._ProtectSwitch = ProtectSwitch

    @property
    def AutoRestoreSwitchStatus(self):
        return self._AutoRestoreSwitchStatus

    @AutoRestoreSwitchStatus.setter
    def AutoRestoreSwitchStatus(self, AutoRestoreSwitchStatus):
        self._AutoRestoreSwitchStatus = AutoRestoreSwitchStatus

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Authorization(self):
        return self._Authorization

    @Authorization.setter
    def Authorization(self, Authorization):
        self._Authorization = Authorization

    @property
    def Exception(self):
        return self._Exception

    @Exception.setter
    def Exception(self, Exception):
        self._Exception = Exception

    @property
    def Progress(self):
        return self._Progress

    @Progress.setter
    def Progress(self, Progress):
        self._Progress = Progress

    @property
    def ExceptionMessage(self):
        return self._ExceptionMessage

    @ExceptionMessage.setter
    def ExceptionMessage(self, ExceptionMessage):
        self._ExceptionMessage = ExceptionMessage

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._MachineOs = params.get("MachineOs")
        self._RelateDirNum = params.get("RelateDirNum")
        self._ProtectStatus = params.get("ProtectStatus")
        self._ProtectSwitch = params.get("ProtectSwitch")
        self._AutoRestoreSwitchStatus = params.get("AutoRestoreSwitchStatus")
        self._Quuid = params.get("Quuid")
        self._Authorization = params.get("Authorization")
        self._Exception = params.get("Exception")
        self._Progress = params.get("Progress")
        self._ExceptionMessage = params.get("ExceptionMessage")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProtectEventLists(AbstractModel):
    """防护事件列表信息

    """

    def __init__(self):
        r"""
        :param _HostName: 服务器名称
        :type HostName: str
        :param _HostIp: 服务器ip
        :type HostIp: str
        :param _EventDir: 事件地址
        :type EventDir: str
        :param _EventType: 事件类型 0-内容被修改恢复；1-权限被修改恢复；2-归属被修改恢复；3-被删除恢复；4-新增删除
        :type EventType: int
        :param _EventStatus: 事件状态 1 已恢复 0 未恢复
        :type EventStatus: int
        :param _CreateTime: 发现时间
        :type CreateTime: str
        :param _RestoreTime: 恢复时间
        :type RestoreTime: str
        :param _Id: 唯一ID
        :type Id: int
        :param _FileType: 文件类型 0-常规文件；1-目录；2-软链
        :type FileType: int
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Quuid: 机器实例uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        """
        self._HostName = None
        self._HostIp = None
        self._EventDir = None
        self._EventType = None
        self._EventStatus = None
        self._CreateTime = None
        self._RestoreTime = None
        self._Id = None
        self._FileType = None
        self._MachineExtraInfo = None
        self._Quuid = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def EventDir(self):
        return self._EventDir

    @EventDir.setter
    def EventDir(self, EventDir):
        self._EventDir = EventDir

    @property
    def EventType(self):
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def EventStatus(self):
        return self._EventStatus

    @EventStatus.setter
    def EventStatus(self, EventStatus):
        self._EventStatus = EventStatus

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RestoreTime(self):
        return self._RestoreTime

    @RestoreTime.setter
    def RestoreTime(self, RestoreTime):
        self._RestoreTime = RestoreTime

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def FileType(self):
        return self._FileType

    @FileType.setter
    def FileType(self, FileType):
        self._FileType = FileType

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._EventDir = params.get("EventDir")
        self._EventType = params.get("EventType")
        self._EventStatus = params.get("EventStatus")
        self._CreateTime = params.get("CreateTime")
        self._RestoreTime = params.get("RestoreTime")
        self._Id = params.get("Id")
        self._FileType = params.get("FileType")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProtectHostConfig(AbstractModel):
    """防护机器信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 机器唯一ID
        :type Quuid: str
        :param _ProtectSwitch: 防护开关 0  关闭 1开启
        :type ProtectSwitch: int
        :param _AutoRecovery: 自动恢复开关 0 关闭 1开启
        :type AutoRecovery: int
        """
        self._Quuid = None
        self._ProtectSwitch = None
        self._AutoRecovery = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def ProtectSwitch(self):
        return self._ProtectSwitch

    @ProtectSwitch.setter
    def ProtectSwitch(self, ProtectSwitch):
        self._ProtectSwitch = ProtectSwitch

    @property
    def AutoRecovery(self):
        return self._AutoRecovery

    @AutoRecovery.setter
    def AutoRecovery(self, AutoRecovery):
        self._AutoRecovery = AutoRecovery


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._ProtectSwitch = params.get("ProtectSwitch")
        self._AutoRecovery = params.get("AutoRecovery")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProtectMachine(AbstractModel):
    """机器授权到期信息

    """

    def __init__(self):
        r"""
        :param _HostName: 机器名称
        :type HostName: str
        :param _HostIp: 机器IP
        :type HostIp: str
        :param _SafeguardDirNum: 防护目录数
        :type SafeguardDirNum: int
        """
        self._HostName = None
        self._HostIp = None
        self._SafeguardDirNum = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def SafeguardDirNum(self):
        return self._SafeguardDirNum

    @SafeguardDirNum.setter
    def SafeguardDirNum(self, SafeguardDirNum):
        self._SafeguardDirNum = SafeguardDirNum


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._SafeguardDirNum = params.get("SafeguardDirNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProtectMachineInfo(AbstractModel):
    """授权机器信息

    """

    def __init__(self):
        r"""
        :param _HostName: 机器名称
        :type HostName: str
        :param _HostIp: 机器IP
        :type HostIp: str
        :param _CreateTime: 开通时间
        :type CreateTime: str
        :param _ExpireTime: 到期时间
        :type ExpireTime: str
        """
        self._HostName = None
        self._HostIp = None
        self._CreateTime = None
        self._ExpireTime = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._CreateTime = params.get("CreateTime")
        self._ExpireTime = params.get("ExpireTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProtectNetInfo(AbstractModel):
    """专家服务-旗舰护网信息

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
        :type TaskId: str
        :param _ProtectDays: 护网天数
        :type ProtectDays: int
        :param _Status: 护网状态 0未启动，1护网中，2已完成
        :type Status: int
        :param _StartTime: 护网启动时间
        :type StartTime: str
        :param _EndTime: 护网完成时间
        :type EndTime: str
        :param _ReportPath: 报告下载地址
        :type ReportPath: str
        """
        self._TaskId = None
        self._ProtectDays = None
        self._Status = None
        self._StartTime = None
        self._EndTime = None
        self._ReportPath = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def ProtectDays(self):
        return self._ProtectDays

    @ProtectDays.setter
    def ProtectDays(self, ProtectDays):
        self._ProtectDays = ProtectDays

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def ReportPath(self):
        return self._ReportPath

    @ReportPath.setter
    def ReportPath(self, ReportPath):
        self._ReportPath = ReportPath


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._ProtectDays = params.get("ProtectDays")
        self._Status = params.get("Status")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._ReportPath = params.get("ReportPath")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ProtectStat(AbstractModel):
    """防护信息统计

    """

    def __init__(self):
        r"""
        :param _Name: 名称
        :type Name: str
        :param _Num: 数量
        :type Num: int
        """
        self._Name = None
        self._Num = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Num(self):
        return self._Num

    @Num.setter
    def Num(self, Num):
        self._Num = Num


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Num = params.get("Num")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseBackup(AbstractModel):
    """主机快照备份列表

    """

    def __init__(self):
        r"""
        :param _BackupTime: 备份时间
        :type BackupTime: str
        :param _EventStatus: 勒索状态：0无告警, 1有告警
        :type EventStatus: int
        :param _BackupStatus: 备份状态：0备份中，1正常，2、3失败，4快照已过期，9快照已删除
        :type BackupStatus: int
        :param _DiskCount: 备份磁盘数量
        :type DiskCount: int
        :param _Disks: 硬盘信息，；分隔
        :type Disks: str
        :param _SnapshotIds: 快照列表，；分隔
        :type SnapshotIds: str
        :param _StrategyId: 策略id
        :type StrategyId: int
        :param _StrategyStatus: 策略状态:0关闭，1开启，9已删除
        :type StrategyStatus: int
        :param _StrategyName: 策略名称
        :type StrategyName: str
        """
        self._BackupTime = None
        self._EventStatus = None
        self._BackupStatus = None
        self._DiskCount = None
        self._Disks = None
        self._SnapshotIds = None
        self._StrategyId = None
        self._StrategyStatus = None
        self._StrategyName = None

    @property
    def BackupTime(self):
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime

    @property
    def EventStatus(self):
        return self._EventStatus

    @EventStatus.setter
    def EventStatus(self, EventStatus):
        self._EventStatus = EventStatus

    @property
    def BackupStatus(self):
        return self._BackupStatus

    @BackupStatus.setter
    def BackupStatus(self, BackupStatus):
        self._BackupStatus = BackupStatus

    @property
    def DiskCount(self):
        return self._DiskCount

    @DiskCount.setter
    def DiskCount(self, DiskCount):
        self._DiskCount = DiskCount

    @property
    def Disks(self):
        return self._Disks

    @Disks.setter
    def Disks(self, Disks):
        self._Disks = Disks

    @property
    def SnapshotIds(self):
        return self._SnapshotIds

    @SnapshotIds.setter
    def SnapshotIds(self, SnapshotIds):
        self._SnapshotIds = SnapshotIds

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def StrategyStatus(self):
        return self._StrategyStatus

    @StrategyStatus.setter
    def StrategyStatus(self, StrategyStatus):
        self._StrategyStatus = StrategyStatus

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName


    def _deserialize(self, params):
        self._BackupTime = params.get("BackupTime")
        self._EventStatus = params.get("EventStatus")
        self._BackupStatus = params.get("BackupStatus")
        self._DiskCount = params.get("DiskCount")
        self._Disks = params.get("Disks")
        self._SnapshotIds = params.get("SnapshotIds")
        self._StrategyId = params.get("StrategyId")
        self._StrategyStatus = params.get("StrategyStatus")
        self._StrategyName = params.get("StrategyName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseEvent(AbstractModel):
    """防勒索诱饵篡改事件

    """

    def __init__(self):
        r"""
        :param _Id: 事件id
        :type Id: int
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _Quuid: cvm uuid
        :type Quuid: str
        :param _HostName: 主机名称
        :type HostName: str
        :param _Status: 事件状态 0待处理，1已处理，2已信任，3处理中，4已恢复备份
        :type Status: int
        :param _BaitFilePath: 被篡改文件路径
        :type BaitFilePath: str
        :param _FilePath: 恶意文件路径
        :type FilePath: str
        :param _Pid: 恶意进程id
        :type Pid: int
        :param _PidParam: 恶意进程参数
        :type PidParam: str
        :param _FileSize: 恶意文件大小
        :type FileSize: int
        :param _FileMd5: 恶意文件md5
        :type FileMd5: str
        :param _Type: 事件类型：0加密勒索，1文件篡改
        :type Type: int
        :param _CreateTime: 事件发送时间
        :type CreateTime: str
        :param _InstanceId: cvm 实例id
        :type InstanceId: str
        :param _ModifyTime: 事件修改事件
        :type ModifyTime: str
        :param _StrategyId: 策略id
        :type StrategyId: int
        :param _StrategyName: 策略名称
        :type StrategyName: str
        :param _HostIp: 主机外网ip
        :type HostIp: str
        :param _WanIp: 主机内网ip
        :type WanIp: str
        :param _PsTree: 进程树 base64 json
        :type PsTree: str
        :param _ProcessStartTime: 进程启动时间
        :type ProcessStartTime: str
        :param _SnapshotNum: 主机拥有快照备份数
        :type SnapshotNum: int
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._HostName = None
        self._Status = None
        self._BaitFilePath = None
        self._FilePath = None
        self._Pid = None
        self._PidParam = None
        self._FileSize = None
        self._FileMd5 = None
        self._Type = None
        self._CreateTime = None
        self._InstanceId = None
        self._ModifyTime = None
        self._StrategyId = None
        self._StrategyName = None
        self._HostIp = None
        self._WanIp = None
        self._PsTree = None
        self._ProcessStartTime = None
        self._SnapshotNum = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def BaitFilePath(self):
        return self._BaitFilePath

    @BaitFilePath.setter
    def BaitFilePath(self, BaitFilePath):
        self._BaitFilePath = BaitFilePath

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def PidParam(self):
        return self._PidParam

    @PidParam.setter
    def PidParam(self, PidParam):
        self._PidParam = PidParam

    @property
    def FileSize(self):
        return self._FileSize

    @FileSize.setter
    def FileSize(self, FileSize):
        self._FileSize = FileSize

    @property
    def FileMd5(self):
        return self._FileMd5

    @FileMd5.setter
    def FileMd5(self, FileMd5):
        self._FileMd5 = FileMd5

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def PsTree(self):
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def ProcessStartTime(self):
        return self._ProcessStartTime

    @ProcessStartTime.setter
    def ProcessStartTime(self, ProcessStartTime):
        self._ProcessStartTime = ProcessStartTime

    @property
    def SnapshotNum(self):
        return self._SnapshotNum

    @SnapshotNum.setter
    def SnapshotNum(self, SnapshotNum):
        self._SnapshotNum = SnapshotNum


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._HostName = params.get("HostName")
        self._Status = params.get("Status")
        self._BaitFilePath = params.get("BaitFilePath")
        self._FilePath = params.get("FilePath")
        self._Pid = params.get("Pid")
        self._PidParam = params.get("PidParam")
        self._FileSize = params.get("FileSize")
        self._FileMd5 = params.get("FileMd5")
        self._Type = params.get("Type")
        self._CreateTime = params.get("CreateTime")
        self._InstanceId = params.get("InstanceId")
        self._ModifyTime = params.get("ModifyTime")
        self._StrategyId = params.get("StrategyId")
        self._StrategyName = params.get("StrategyName")
        self._HostIp = params.get("HostIp")
        self._WanIp = params.get("WanIp")
        self._PsTree = params.get("PsTree")
        self._ProcessStartTime = params.get("ProcessStartTime")
        self._SnapshotNum = params.get("SnapshotNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseRollbackRequest(AbstractModel):
    """RansomDefenseRollback请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BackupTime: 快照时间
        :type BackupTime: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _DiskInfo: 需要回滚的硬盘信息，硬盘直接用;分隔，留空为全部已快照磁盘： disk-id1|disk-name1;disk-id2|disk-name2
        :type DiskInfo: str
        """
        self._BackupTime = None
        self._Quuid = None
        self._DiskInfo = None

    @property
    def BackupTime(self):
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def DiskInfo(self):
        return self._DiskInfo

    @DiskInfo.setter
    def DiskInfo(self, DiskInfo):
        self._DiskInfo = DiskInfo


    def _deserialize(self, params):
        self._BackupTime = params.get("BackupTime")
        self._Quuid = params.get("Quuid")
        self._DiskInfo = params.get("DiskInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseRollbackResponse(AbstractModel):
    """RansomDefenseRollback返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RansomDefenseRollbackTask(AbstractModel):
    """防勒索回滚任务

    """

    def __init__(self):
        r"""
        :param _Id: 任务ID
        :type Id: int
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _Status: 回滚任务状态：0进行中，1成功，2失败
        :type Status: int
        :param _Disks: 硬盘id列表，;分隔
        :type Disks: str
        :param _CreateTime: 操作时间
        :type CreateTime: str
        :param _BackupTime: 快照时间
        :type BackupTime: str
        :param _ModifyTime: Status!=0时为完成时间
        :type ModifyTime: str
        :param _RegionInfo: 可用区信息
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._MachineName = None
        self._Status = None
        self._Disks = None
        self._CreateTime = None
        self._BackupTime = None
        self._ModifyTime = None
        self._RegionInfo = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Disks(self):
        return self._Disks

    @Disks.setter
    def Disks(self, Disks):
        self._Disks = Disks

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def BackupTime(self):
        return self._BackupTime

    @BackupTime.setter
    def BackupTime(self, BackupTime):
        self._BackupTime = BackupTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def RegionInfo(self):
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._MachineName = params.get("MachineName")
        self._Status = params.get("Status")
        self._Disks = params.get("Disks")
        self._CreateTime = params.get("CreateTime")
        self._BackupTime = params.get("BackupTime")
        self._ModifyTime = params.get("ModifyTime")
        if params.get("RegionInfo") is not None:
            self._RegionInfo = RegionInfo()
            self._RegionInfo._deserialize(params.get("RegionInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseStrategy(AbstractModel):
    """主机列表查询接口相应数据HostList的TagList节点

    """

    def __init__(self):
        r"""
        :param _Id: 策略id
        :type Id: int
        :param _Uin: 操作uin
注意：此字段可能返回 null，表示取不到有效值。
        :type Uin: str
        :param _Name: 策略名称
        :type Name: str
        :param _Description: 策略备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _Status: 开启状态：0关闭，1开启
        :type Status: int
        :param _IsAll: 是否对所有主机生效
        :type IsAll: int
        :param _IncludeDir: 包含目录，用;分隔
注意：此字段可能返回 null，表示取不到有效值。
        :type IncludeDir: str
        :param _ExcludeDir: 包含目录，用;分隔
注意：此字段可能返回 null，表示取不到有效值。
        :type ExcludeDir: str
        :param _BackupType: 备份模式： 0按周，1按天
注意：此字段可能返回 null，表示取不到有效值。
        :type BackupType: int
        :param _Weekday: 备份星期天数（1-7）：1;2;3;4
注意：此字段可能返回 null，表示取不到有效值。
        :type Weekday: str
        :param _Hour: 备份执行时间点(0-23): 11:00;12:00
        :type Hour: str
        :param _SaveDay: 保存天数，0永久保存
        :type SaveDay: int
        :param _CreateTime: 创建时间
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        :param _ModifyTime: 最近修改时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _MachineCount: 绑定机器数
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineCount: int
        """
        self._Id = None
        self._Uin = None
        self._Name = None
        self._Description = None
        self._Status = None
        self._IsAll = None
        self._IncludeDir = None
        self._ExcludeDir = None
        self._BackupType = None
        self._Weekday = None
        self._Hour = None
        self._SaveDay = None
        self._CreateTime = None
        self._ModifyTime = None
        self._MachineCount = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uin(self):
        return self._Uin

    @Uin.setter
    def Uin(self, Uin):
        self._Uin = Uin

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IsAll(self):
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def IncludeDir(self):
        return self._IncludeDir

    @IncludeDir.setter
    def IncludeDir(self, IncludeDir):
        self._IncludeDir = IncludeDir

    @property
    def ExcludeDir(self):
        return self._ExcludeDir

    @ExcludeDir.setter
    def ExcludeDir(self, ExcludeDir):
        self._ExcludeDir = ExcludeDir

    @property
    def BackupType(self):
        return self._BackupType

    @BackupType.setter
    def BackupType(self, BackupType):
        self._BackupType = BackupType

    @property
    def Weekday(self):
        return self._Weekday

    @Weekday.setter
    def Weekday(self, Weekday):
        self._Weekday = Weekday

    @property
    def Hour(self):
        return self._Hour

    @Hour.setter
    def Hour(self, Hour):
        self._Hour = Hour

    @property
    def SaveDay(self):
        return self._SaveDay

    @SaveDay.setter
    def SaveDay(self, SaveDay):
        self._SaveDay = SaveDay

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def MachineCount(self):
        return self._MachineCount

    @MachineCount.setter
    def MachineCount(self, MachineCount):
        self._MachineCount = MachineCount


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uin = params.get("Uin")
        self._Name = params.get("Name")
        self._Description = params.get("Description")
        self._Status = params.get("Status")
        self._IsAll = params.get("IsAll")
        self._IncludeDir = params.get("IncludeDir")
        self._ExcludeDir = params.get("ExcludeDir")
        self._BackupType = params.get("BackupType")
        self._Weekday = params.get("Weekday")
        self._Hour = params.get("Hour")
        self._SaveDay = params.get("SaveDay")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._MachineCount = params.get("MachineCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseStrategyDetail(AbstractModel):
    """主机列表查询接口相应数据HostList的TagList节点

    """

    def __init__(self):
        r"""
        :param _Id: 策略id
        :type Id: int
        :param _Uin: 操作uin
注意：此字段可能返回 null，表示取不到有效值。
        :type Uin: str
        :param _Name: 策略名称
        :type Name: str
        :param _Description: 策略备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _Status: 开启状态：0关闭，1开启
        :type Status: int
        :param _IsAll: 是否对所有主机生效
        :type IsAll: int
        :param _IncludeDir: 包含目录，用;分隔
注意：此字段可能返回 null，表示取不到有效值。
        :type IncludeDir: str
        :param _ExcludeDir: 包含目录，用;分隔
注意：此字段可能返回 null，表示取不到有效值。
        :type ExcludeDir: str
        :param _BackupType: 备份模式： 0按周，1按天
注意：此字段可能返回 null，表示取不到有效值。
        :type BackupType: int
        :param _Weekday: 备份星期天数（1-7）：1;2;3;4
注意：此字段可能返回 null，表示取不到有效值。
        :type Weekday: str
        :param _Hour: 备份执行时间点(0-23): 11:00;12:00
        :type Hour: str
        :param _SaveDay: 保存天数，0永久保存
        :type SaveDay: int
        :param _CreateTime: 创建时间
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        :param _ModifyTime: 最近修改时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _MachineCount: 绑定机器数
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineCount: int
        :param _EventCount: 策略关联事件数
注意：此字段可能返回 null，表示取不到有效值。
        :type EventCount: int
        """
        self._Id = None
        self._Uin = None
        self._Name = None
        self._Description = None
        self._Status = None
        self._IsAll = None
        self._IncludeDir = None
        self._ExcludeDir = None
        self._BackupType = None
        self._Weekday = None
        self._Hour = None
        self._SaveDay = None
        self._CreateTime = None
        self._ModifyTime = None
        self._MachineCount = None
        self._EventCount = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uin(self):
        return self._Uin

    @Uin.setter
    def Uin(self, Uin):
        self._Uin = Uin

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def IsAll(self):
        return self._IsAll

    @IsAll.setter
    def IsAll(self, IsAll):
        self._IsAll = IsAll

    @property
    def IncludeDir(self):
        return self._IncludeDir

    @IncludeDir.setter
    def IncludeDir(self, IncludeDir):
        self._IncludeDir = IncludeDir

    @property
    def ExcludeDir(self):
        return self._ExcludeDir

    @ExcludeDir.setter
    def ExcludeDir(self, ExcludeDir):
        self._ExcludeDir = ExcludeDir

    @property
    def BackupType(self):
        return self._BackupType

    @BackupType.setter
    def BackupType(self, BackupType):
        self._BackupType = BackupType

    @property
    def Weekday(self):
        return self._Weekday

    @Weekday.setter
    def Weekday(self, Weekday):
        self._Weekday = Weekday

    @property
    def Hour(self):
        return self._Hour

    @Hour.setter
    def Hour(self, Hour):
        self._Hour = Hour

    @property
    def SaveDay(self):
        return self._SaveDay

    @SaveDay.setter
    def SaveDay(self, SaveDay):
        self._SaveDay = SaveDay

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def MachineCount(self):
        return self._MachineCount

    @MachineCount.setter
    def MachineCount(self, MachineCount):
        self._MachineCount = MachineCount

    @property
    def EventCount(self):
        return self._EventCount

    @EventCount.setter
    def EventCount(self, EventCount):
        self._EventCount = EventCount


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uin = params.get("Uin")
        self._Name = params.get("Name")
        self._Description = params.get("Description")
        self._Status = params.get("Status")
        self._IsAll = params.get("IsAll")
        self._IncludeDir = params.get("IncludeDir")
        self._ExcludeDir = params.get("ExcludeDir")
        self._BackupType = params.get("BackupType")
        self._Weekday = params.get("Weekday")
        self._Hour = params.get("Hour")
        self._SaveDay = params.get("SaveDay")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._MachineCount = params.get("MachineCount")
        self._EventCount = params.get("EventCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseStrategyMachineBackupInfo(AbstractModel):
    """防勒索策略绑定主机备份详情

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _InstanceId: 主机实例id
        :type InstanceId: str
        :param _MachineIp: 内网ip
        :type MachineIp: str
        :param _MachineWanIp: 外网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineWanIp: str
        :param _CloudTags: 云标签
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudTags: list of Tag
        :param _RegionInfo: 可用区信息
注意：此字段可能返回 null，表示取不到有效值。
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        :param _Tag: 主机安全标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _Status: 防护状态：0关闭，1开启
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _StrategyId: 策略id，为0时未绑定策略
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyId: int
        :param _DiskInfo: 硬盘信息，为空时所有硬盘生效：
;分割 diskId1|diskName1;diskId2|diskName2
注意：此字段可能返回 null，表示取不到有效值。
        :type DiskInfo: str
        :param _StrategyName: 策略名称
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyName: str
        :param _BackupCount: 备份数量
注意：此字段可能返回 null，表示取不到有效值。
        :type BackupCount: int
        :param _LastBackupStatus: 最近一次备份状态：0备份中，1正常，2失败，9暂无备份
注意：此字段可能返回 null，表示取不到有效值。
        :type LastBackupStatus: int
        :param _LastBackupMessage: 最近一次备份失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type LastBackupMessage: str
        :param _LastBackupTime: 最近一次备份时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LastBackupTime: str
        :param _RollBackPercent: 最近一次回滚进度百分比
注意：此字段可能返回 null，表示取不到有效值。
        :type RollBackPercent: int
        :param _RollBackStatus: 最近一次回滚状态：0进行中，1成功，2失败
注意：此字段可能返回 null，表示取不到有效值。
        :type RollBackStatus: int
        :param _BackupSuccessCount: 备份成功次数
注意：此字段可能返回 null，表示取不到有效值。
        :type BackupSuccessCount: int
        """
        self._Uuid = None
        self._Quuid = None
        self._MachineName = None
        self._InstanceId = None
        self._MachineIp = None
        self._MachineWanIp = None
        self._CloudTags = None
        self._RegionInfo = None
        self._Tag = None
        self._Status = None
        self._StrategyId = None
        self._DiskInfo = None
        self._StrategyName = None
        self._BackupCount = None
        self._LastBackupStatus = None
        self._LastBackupMessage = None
        self._LastBackupTime = None
        self._RollBackPercent = None
        self._RollBackStatus = None
        self._BackupSuccessCount = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def CloudTags(self):
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def RegionInfo(self):
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def DiskInfo(self):
        return self._DiskInfo

    @DiskInfo.setter
    def DiskInfo(self, DiskInfo):
        self._DiskInfo = DiskInfo

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def BackupCount(self):
        return self._BackupCount

    @BackupCount.setter
    def BackupCount(self, BackupCount):
        self._BackupCount = BackupCount

    @property
    def LastBackupStatus(self):
        return self._LastBackupStatus

    @LastBackupStatus.setter
    def LastBackupStatus(self, LastBackupStatus):
        self._LastBackupStatus = LastBackupStatus

    @property
    def LastBackupMessage(self):
        return self._LastBackupMessage

    @LastBackupMessage.setter
    def LastBackupMessage(self, LastBackupMessage):
        self._LastBackupMessage = LastBackupMessage

    @property
    def LastBackupTime(self):
        return self._LastBackupTime

    @LastBackupTime.setter
    def LastBackupTime(self, LastBackupTime):
        self._LastBackupTime = LastBackupTime

    @property
    def RollBackPercent(self):
        return self._RollBackPercent

    @RollBackPercent.setter
    def RollBackPercent(self, RollBackPercent):
        self._RollBackPercent = RollBackPercent

    @property
    def RollBackStatus(self):
        return self._RollBackStatus

    @RollBackStatus.setter
    def RollBackStatus(self, RollBackStatus):
        self._RollBackStatus = RollBackStatus

    @property
    def BackupSuccessCount(self):
        return self._BackupSuccessCount

    @BackupSuccessCount.setter
    def BackupSuccessCount(self, BackupSuccessCount):
        self._BackupSuccessCount = BackupSuccessCount


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._MachineName = params.get("MachineName")
        self._InstanceId = params.get("InstanceId")
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("CloudTags") is not None:
            self._CloudTags = []
            for item in params.get("CloudTags"):
                obj = Tag()
                obj._deserialize(item)
                self._CloudTags.append(obj)
        if params.get("RegionInfo") is not None:
            self._RegionInfo = RegionInfo()
            self._RegionInfo._deserialize(params.get("RegionInfo"))
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Status = params.get("Status")
        self._StrategyId = params.get("StrategyId")
        self._DiskInfo = params.get("DiskInfo")
        self._StrategyName = params.get("StrategyName")
        self._BackupCount = params.get("BackupCount")
        self._LastBackupStatus = params.get("LastBackupStatus")
        self._LastBackupMessage = params.get("LastBackupMessage")
        self._LastBackupTime = params.get("LastBackupTime")
        self._RollBackPercent = params.get("RollBackPercent")
        self._RollBackStatus = params.get("RollBackStatus")
        self._BackupSuccessCount = params.get("BackupSuccessCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseStrategyMachineDetail(AbstractModel):
    """防勒索主机列表

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _InstanceId: 主机实例id
        :type InstanceId: str
        :param _MachineIp: 内网ip
        :type MachineIp: str
        :param _MachineWanIp: 外网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineWanIp: str
        :param _CloudTags: 云标签
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudTags: list of Tag
        :param _RegionInfo: 可用区信息
注意：此字段可能返回 null，表示取不到有效值。
        :type RegionInfo: :class:`tencentcloud.cwp.v20180228.models.RegionInfo`
        :param _Tag: 主机安全标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: list of MachineTag
        :param _Status: 防护状态：0关闭，1开启
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _StrategyId: 策略id，为0时未绑定策略
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyId: int
        :param _DiskInfo: 硬盘信息，为空时所有硬盘生效：
;分割 diskId1|diskName1;diskId2|diskName2
注意：此字段可能返回 null，表示取不到有效值。
        :type DiskInfo: str
        :param _HostVersion: 版本信息：0-基础版 1-专业版 2-旗舰版 3-普惠版
注意：此字段可能返回 null，表示取不到有效值。
        :type HostVersion: int
        :param _StrategyName: 策略名称
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyName: str
        """
        self._Uuid = None
        self._Quuid = None
        self._MachineName = None
        self._InstanceId = None
        self._MachineIp = None
        self._MachineWanIp = None
        self._CloudTags = None
        self._RegionInfo = None
        self._Tag = None
        self._Status = None
        self._StrategyId = None
        self._DiskInfo = None
        self._HostVersion = None
        self._StrategyName = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def CloudTags(self):
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def RegionInfo(self):
        return self._RegionInfo

    @RegionInfo.setter
    def RegionInfo(self, RegionInfo):
        self._RegionInfo = RegionInfo

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def DiskInfo(self):
        return self._DiskInfo

    @DiskInfo.setter
    def DiskInfo(self, DiskInfo):
        self._DiskInfo = DiskInfo

    @property
    def HostVersion(self):
        return self._HostVersion

    @HostVersion.setter
    def HostVersion(self, HostVersion):
        self._HostVersion = HostVersion

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._MachineName = params.get("MachineName")
        self._InstanceId = params.get("InstanceId")
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("CloudTags") is not None:
            self._CloudTags = []
            for item in params.get("CloudTags"):
                obj = Tag()
                obj._deserialize(item)
                self._CloudTags.append(obj)
        if params.get("RegionInfo") is not None:
            self._RegionInfo = RegionInfo()
            self._RegionInfo._deserialize(params.get("RegionInfo"))
        if params.get("Tag") is not None:
            self._Tag = []
            for item in params.get("Tag"):
                obj = MachineTag()
                obj._deserialize(item)
                self._Tag.append(obj)
        self._Status = params.get("Status")
        self._StrategyId = params.get("StrategyId")
        self._DiskInfo = params.get("DiskInfo")
        self._HostVersion = params.get("HostVersion")
        self._StrategyName = params.get("StrategyName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RansomDefenseStrategyMachineInfo(AbstractModel):
    """防勒索机器硬盘配置

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _DiskInfo: 指定硬盘列表，为空时表示所有硬盘：disk_id1|disk_name1;disk_id2|disk_name2
注意：此字段可能返回 null，表示取不到有效值。
        :type DiskInfo: str
        """
        self._Uuid = None
        self._DiskInfo = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def DiskInfo(self):
        return self._DiskInfo

    @DiskInfo.setter
    def DiskInfo(self, DiskInfo):
        self._DiskInfo = DiskInfo


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._DiskInfo = params.get("DiskInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RecordInfo(AbstractModel):
    """客户端异常信息结构

    """

    def __init__(self):
        r"""
        :param _HostIP: 主机ip
        :type HostIP: str
        :param _InstanceID: 主机实例id
        :type InstanceID: str
        :param _OfflineTime: 客户端离线时间
        :type OfflineTime: str
        :param _UninstallTime: 客户端卸载时间
        :type UninstallTime: str
        :param _UninstallCmd: 客户端卸载调用链
        :type UninstallCmd: str
        :param _Uuid: 客户端uuid
        :type Uuid: str
        """
        self._HostIP = None
        self._InstanceID = None
        self._OfflineTime = None
        self._UninstallTime = None
        self._UninstallCmd = None
        self._Uuid = None

    @property
    def HostIP(self):
        return self._HostIP

    @HostIP.setter
    def HostIP(self, HostIP):
        self._HostIP = HostIP

    @property
    def InstanceID(self):
        return self._InstanceID

    @InstanceID.setter
    def InstanceID(self, InstanceID):
        self._InstanceID = InstanceID

    @property
    def OfflineTime(self):
        return self._OfflineTime

    @OfflineTime.setter
    def OfflineTime(self, OfflineTime):
        self._OfflineTime = OfflineTime

    @property
    def UninstallTime(self):
        return self._UninstallTime

    @UninstallTime.setter
    def UninstallTime(self, UninstallTime):
        self._UninstallTime = UninstallTime

    @property
    def UninstallCmd(self):
        return self._UninstallCmd

    @UninstallCmd.setter
    def UninstallCmd(self, UninstallCmd):
        self._UninstallCmd = UninstallCmd

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._HostIP = params.get("HostIP")
        self._InstanceID = params.get("InstanceID")
        self._OfflineTime = params.get("OfflineTime")
        self._UninstallTime = params.get("UninstallTime")
        self._UninstallCmd = params.get("UninstallCmd")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RecoverMalwaresRequest(AbstractModel):
    """RecoverMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马Id数组（最大100条）
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RecoverMalwaresResponse(AbstractModel):
    """RecoverMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SuccessIds: 恢复成功id数组，若无则返回空数组
        :type SuccessIds: list of int non-negative
        :param _FailedIds: 恢复失败id数组，若无则返回空数组
        :type FailedIds: list of int non-negative
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SuccessIds = None
        self._FailedIds = None
        self._RequestId = None

    @property
    def SuccessIds(self):
        return self._SuccessIds

    @SuccessIds.setter
    def SuccessIds(self, SuccessIds):
        self._SuccessIds = SuccessIds

    @property
    def FailedIds(self):
        return self._FailedIds

    @FailedIds.setter
    def FailedIds(self, FailedIds):
        self._FailedIds = FailedIds

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SuccessIds = params.get("SuccessIds")
        self._FailedIds = params.get("FailedIds")
        self._RequestId = params.get("RequestId")


class RegionInfo(AbstractModel):
    """地域信息

    """

    def __init__(self):
        r"""
        :param _Region: 地域标志，如 ap-guangzhou，ap-shanghai，ap-beijing
        :type Region: str
        :param _RegionName: 地域中文名，如华南地区（广州），华东地区（上海金融），华北地区（北京）
        :type RegionName: str
        :param _RegionId: 地域ID
        :type RegionId: int
        :param _RegionCode: 地域代码，如 gz，sh，bj
        :type RegionCode: str
        :param _RegionNameEn: 地域英文名
        :type RegionNameEn: str
        """
        self._Region = None
        self._RegionName = None
        self._RegionId = None
        self._RegionCode = None
        self._RegionNameEn = None

    @property
    def Region(self):
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def RegionName(self):
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def RegionId(self):
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def RegionNameEn(self):
        return self._RegionNameEn

    @RegionNameEn.setter
    def RegionNameEn(self, RegionNameEn):
        self._RegionNameEn = RegionNameEn


    def _deserialize(self, params):
        self._Region = params.get("Region")
        self._RegionName = params.get("RegionName")
        self._RegionId = params.get("RegionId")
        self._RegionCode = params.get("RegionCode")
        self._RegionNameEn = params.get("RegionNameEn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RegionListDetail(AbstractModel):
    """地域列表详情

    """

    def __init__(self):
        r"""
        :param _MachineType: 机器类型
CVM 腾讯云云服务器
LH 腾讯云轻量服务器
ECM 腾讯云边缘计算服务器
BM 腾讯云黑石1.0 服务器
Other  其他服务器(非腾讯云)
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineType: str
        :param _CloudFrom: 0 腾讯云
1 IDC机房
2 阿里云
3 华为云
4 亚马逊
5 微软
6 Google
7 Oracle
8 Digital Ocean
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudFrom: int
        :param _RegionList: 地域列表
注意：此字段可能返回 null，表示取不到有效值。
        :type RegionList: list of RegionInfo
        """
        self._MachineType = None
        self._CloudFrom = None
        self._RegionList = None

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def CloudFrom(self):
        return self._CloudFrom

    @CloudFrom.setter
    def CloudFrom(self, CloudFrom):
        self._CloudFrom = CloudFrom

    @property
    def RegionList(self):
        return self._RegionList

    @RegionList.setter
    def RegionList(self, RegionList):
        self._RegionList = RegionList


    def _deserialize(self, params):
        self._MachineType = params.get("MachineType")
        self._CloudFrom = params.get("CloudFrom")
        if params.get("RegionList") is not None:
            self._RegionList = []
            for item in params.get("RegionList"):
                obj = RegionInfo()
                obj._deserialize(item)
                self._RegionList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RegionSet(AbstractModel):
    """地域信息

    """

    def __init__(self):
        r"""
        :param _RegionName: 地域名称
        :type RegionName: str
        :param _ZoneSet: 可用区信息
        :type ZoneSet: list of ZoneInfo
        """
        self._RegionName = None
        self._ZoneSet = None

    @property
    def RegionName(self):
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def ZoneSet(self):
        return self._ZoneSet

    @ZoneSet.setter
    def ZoneSet(self, ZoneSet):
        self._ZoneSet = ZoneSet


    def _deserialize(self, params):
        self._RegionName = params.get("RegionName")
        if params.get("ZoneSet") is not None:
            self._ZoneSet = []
            for item in params.get("ZoneSet"):
                obj = ZoneInfo()
                obj._deserialize(item)
                self._ZoneSet.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RemoveLocalStorageItemRequest(AbstractModel):
    """RemoveLocalStorageItem请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Key: 键
        :type Key: str
        """
        self._Key = None

    @property
    def Key(self):
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key


    def _deserialize(self, params):
        self._Key = params.get("Key")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RemoveLocalStorageItemResponse(AbstractModel):
    """RemoveLocalStorageItem返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RemoveMachineRequest(AbstractModel):
    """RemoveMachine请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机Uuid
        :type Uuid: str
        :param _Quuid: 主机Quuid
        :type Quuid: str
        """
        self._Uuid = None
        self._Quuid = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RemoveMachineResponse(AbstractModel):
    """RemoveMachine返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RetryCreateSnapshotRequest(AbstractModel):
    """RetryCreateSnapshot请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FixId: 修复任务id
        :type FixId: int
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _Id: 任务进度返回的快照唯一Id
        :type Id: int
        """
        self._FixId = None
        self._Quuid = None
        self._Id = None

    @property
    def FixId(self):
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._FixId = params.get("FixId")
        self._Quuid = params.get("Quuid")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RetryCreateSnapshotResponse(AbstractModel):
    """RetryCreateSnapshot返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RetryVulFixRequest(AbstractModel):
    """RetryVulFix请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FixId: 漏洞id
        :type FixId: int
        :param _Quuid: 主机Quuid
        :type Quuid: str
        :param _VulId: 漏洞id
        :type VulId: int
        """
        self._FixId = None
        self._Quuid = None
        self._VulId = None

    @property
    def FixId(self):
        return self._FixId

    @FixId.setter
    def FixId(self, FixId):
        self._FixId = FixId

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId


    def _deserialize(self, params):
        self._FixId = params.get("FixId")
        self._Quuid = params.get("Quuid")
        self._VulId = params.get("VulId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RetryVulFixResponse(AbstractModel):
    """RetryVulFix返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ReverseShell(AbstractModel):
    """反弹Shell数据

    """

    def __init__(self):
        r"""
        :param _Id: ID 主键
        :type Id: int
        :param _Uuid: 主机安全UUID
        :type Uuid: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _Hostip: 主机内网IP
        :type Hostip: str
        :param _DstIp: 目标IP
        :type DstIp: str
        :param _DstPort: 目标端口
        :type DstPort: int
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _FullPath: 进程路径
        :type FullPath: str
        :param _CmdLine: 命令详情
        :type CmdLine: str
        :param _UserName: 执行用户
        :type UserName: str
        :param _UserGroup: 执行用户组
        :type UserGroup: str
        :param _ParentProcName: 父进程名
        :type ParentProcName: str
        :param _ParentProcUser: 父进程用户
        :type ParentProcUser: str
        :param _ParentProcGroup: 父进程用户组
        :type ParentProcGroup: str
        :param _ParentProcPath: 父进程路径
        :type ParentProcPath: str
        :param _Status: 处理状态：0-待处理 2-白名单 3-已处理 4-已忽略
        :type Status: int
        :param _CreateTime: 产生时间
        :type CreateTime: str
        :param _MachineName: 主机名
        :type MachineName: str
        :param _ProcTree: 进程树
        :type ProcTree: str
        :param _DetectBy: 检测方法: 0行为分析; 1命令特征检测
        :type DetectBy: int
        :param _MachineExtraInfo:  主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Pid: 进程id
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: int
        :param _RiskLevel: 威胁等级：0中危，1高危
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskLevel: int
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._Hostip = None
        self._DstIp = None
        self._DstPort = None
        self._ProcessName = None
        self._FullPath = None
        self._CmdLine = None
        self._UserName = None
        self._UserGroup = None
        self._ParentProcName = None
        self._ParentProcUser = None
        self._ParentProcGroup = None
        self._ParentProcPath = None
        self._Status = None
        self._CreateTime = None
        self._MachineName = None
        self._ProcTree = None
        self._DetectBy = None
        self._MachineExtraInfo = None
        self._Pid = None
        self._RiskLevel = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Hostip(self):
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip

    @property
    def DstIp(self):
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def FullPath(self):
        return self._FullPath

    @FullPath.setter
    def FullPath(self, FullPath):
        self._FullPath = FullPath

    @property
    def CmdLine(self):
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ParentProcName(self):
        return self._ParentProcName

    @ParentProcName.setter
    def ParentProcName(self, ParentProcName):
        self._ParentProcName = ParentProcName

    @property
    def ParentProcUser(self):
        return self._ParentProcUser

    @ParentProcUser.setter
    def ParentProcUser(self, ParentProcUser):
        self._ParentProcUser = ParentProcUser

    @property
    def ParentProcGroup(self):
        return self._ParentProcGroup

    @ParentProcGroup.setter
    def ParentProcGroup(self, ParentProcGroup):
        self._ParentProcGroup = ParentProcGroup

    @property
    def ParentProcPath(self):
        return self._ParentProcPath

    @ParentProcPath.setter
    def ParentProcPath(self, ParentProcPath):
        self._ParentProcPath = ParentProcPath

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def ProcTree(self):
        return self._ProcTree

    @ProcTree.setter
    def ProcTree(self, ProcTree):
        self._ProcTree = ProcTree

    @property
    def DetectBy(self):
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def RiskLevel(self):
        return self._RiskLevel

    @RiskLevel.setter
    def RiskLevel(self, RiskLevel):
        self._RiskLevel = RiskLevel


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Hostip = params.get("Hostip")
        self._DstIp = params.get("DstIp")
        self._DstPort = params.get("DstPort")
        self._ProcessName = params.get("ProcessName")
        self._FullPath = params.get("FullPath")
        self._CmdLine = params.get("CmdLine")
        self._UserName = params.get("UserName")
        self._UserGroup = params.get("UserGroup")
        self._ParentProcName = params.get("ParentProcName")
        self._ParentProcUser = params.get("ParentProcUser")
        self._ParentProcGroup = params.get("ParentProcGroup")
        self._ParentProcPath = params.get("ParentProcPath")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MachineName = params.get("MachineName")
        self._ProcTree = params.get("ProcTree")
        self._DetectBy = params.get("DetectBy")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Pid = params.get("Pid")
        self._RiskLevel = params.get("RiskLevel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReverseShellEventInfo(AbstractModel):
    """反弹Shell数据详情

    """

    def __init__(self):
        r"""
        :param _Id: ID 主键
        :type Id: int
        :param _Uuid: 云镜UUID
        :type Uuid: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _HostIp: 主机内网IP
        :type HostIp: str
        :param _DstIp: 目标IP
        :type DstIp: str
        :param _DstPort: 目标端口
        :type DstPort: int
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _FullPath: 进程路径
        :type FullPath: str
        :param _CmdLine: 命令详情
        :type CmdLine: str
        :param _UserName: 执行用户
        :type UserName: str
        :param _UserGroup: 执行用户组
        :type UserGroup: str
        :param _ParentProcName: 父进程名
        :type ParentProcName: str
        :param _ParentProcUser: 父进程用户
        :type ParentProcUser: str
        :param _ParentProcGroup: 父进程用户组
        :type ParentProcGroup: str
        :param _ParentProcPath: 父进程路径
        :type ParentProcPath: str
        :param _Status: 处理状态：0-待处理 2-白名单 3-已处理 4-已忽略
        :type Status: int
        :param _CreateTime: 产生时间
        :type CreateTime: str
        :param _MachineName: 主机名
        :type MachineName: str
        :param _DetectBy: 检测方法
        :type DetectBy: int
        :param _PsTree: 进程树 json  pid:进程id，exe:文件路径 ，account:进程所属用组和用户 ,cmdline:执行命令，ssh_service: SSH服务ip, ssh_soure:登录源
注意：此字段可能返回 null，表示取不到有效值。
        :type PsTree: str
        :param _SuggestScheme: 建议方案
        :type SuggestScheme: str
        :param _HarmDescribe: 描述
        :type HarmDescribe: str
        :param _Tags: 标签
        :type Tags: list of str
        :param _References: 参考链接
        :type References: list of str
        :param _MachineWanIp: 主机外网ip
        :type MachineWanIp: str
        :param _MachineStatus: 主机在线状态 OFFLINE  ONLINE
        :type MachineStatus: str
        :param _ModifyTime: 处理时间
        :type ModifyTime: str
        """
        self._Id = None
        self._Uuid = None
        self._Quuid = None
        self._HostIp = None
        self._DstIp = None
        self._DstPort = None
        self._ProcessName = None
        self._FullPath = None
        self._CmdLine = None
        self._UserName = None
        self._UserGroup = None
        self._ParentProcName = None
        self._ParentProcUser = None
        self._ParentProcGroup = None
        self._ParentProcPath = None
        self._Status = None
        self._CreateTime = None
        self._MachineName = None
        self._DetectBy = None
        self._PsTree = None
        self._SuggestScheme = None
        self._HarmDescribe = None
        self._Tags = None
        self._References = None
        self._MachineWanIp = None
        self._MachineStatus = None
        self._ModifyTime = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def DstIp(self):
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def FullPath(self):
        return self._FullPath

    @FullPath.setter
    def FullPath(self, FullPath):
        self._FullPath = FullPath

    @property
    def CmdLine(self):
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def UserGroup(self):
        return self._UserGroup

    @UserGroup.setter
    def UserGroup(self, UserGroup):
        self._UserGroup = UserGroup

    @property
    def ParentProcName(self):
        return self._ParentProcName

    @ParentProcName.setter
    def ParentProcName(self, ParentProcName):
        self._ParentProcName = ParentProcName

    @property
    def ParentProcUser(self):
        return self._ParentProcUser

    @ParentProcUser.setter
    def ParentProcUser(self, ParentProcUser):
        self._ParentProcUser = ParentProcUser

    @property
    def ParentProcGroup(self):
        return self._ParentProcGroup

    @ParentProcGroup.setter
    def ParentProcGroup(self, ParentProcGroup):
        self._ParentProcGroup = ParentProcGroup

    @property
    def ParentProcPath(self):
        return self._ParentProcPath

    @ParentProcPath.setter
    def ParentProcPath(self, ParentProcPath):
        self._ParentProcPath = ParentProcPath

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def DetectBy(self):
        return self._DetectBy

    @DetectBy.setter
    def DetectBy(self, DetectBy):
        self._DetectBy = DetectBy

    @property
    def PsTree(self):
        return self._PsTree

    @PsTree.setter
    def PsTree(self, PsTree):
        self._PsTree = PsTree

    @property
    def SuggestScheme(self):
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def HarmDescribe(self):
        return self._HarmDescribe

    @HarmDescribe.setter
    def HarmDescribe(self, HarmDescribe):
        self._HarmDescribe = HarmDescribe

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def References(self):
        return self._References

    @References.setter
    def References(self, References):
        self._References = References

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._HostIp = params.get("HostIp")
        self._DstIp = params.get("DstIp")
        self._DstPort = params.get("DstPort")
        self._ProcessName = params.get("ProcessName")
        self._FullPath = params.get("FullPath")
        self._CmdLine = params.get("CmdLine")
        self._UserName = params.get("UserName")
        self._UserGroup = params.get("UserGroup")
        self._ParentProcName = params.get("ParentProcName")
        self._ParentProcUser = params.get("ParentProcUser")
        self._ParentProcGroup = params.get("ParentProcGroup")
        self._ParentProcPath = params.get("ParentProcPath")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MachineName = params.get("MachineName")
        self._DetectBy = params.get("DetectBy")
        self._PsTree = params.get("PsTree")
        self._SuggestScheme = params.get("SuggestScheme")
        self._HarmDescribe = params.get("HarmDescribe")
        self._Tags = params.get("Tags")
        self._References = params.get("References")
        self._MachineWanIp = params.get("MachineWanIp")
        self._MachineStatus = params.get("MachineStatus")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReverseShellRule(AbstractModel):
    """反弹Shell规则

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _Uuid: 客户端ID
        :type Uuid: str
        :param _ProcessName: 进程名称
        :type ProcessName: str
        :param _DestIp: 目标IP
        :type DestIp: str
        :param _DestPort: 目标端口
        :type DestPort: str
        :param _Operator: 操作人
        :type Operator: str
        :param _IsGlobal: 是否全局规则
        :type IsGlobal: int
        :param _Status: 状态 (0: 有效 1: 无效)
        :type Status: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 修改时间
        :type ModifyTime: str
        :param _Hostip: 主机IP
        :type Hostip: str
        """
        self._Id = None
        self._Uuid = None
        self._ProcessName = None
        self._DestIp = None
        self._DestPort = None
        self._Operator = None
        self._IsGlobal = None
        self._Status = None
        self._CreateTime = None
        self._ModifyTime = None
        self._Hostip = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def DestIp(self):
        return self._DestIp

    @DestIp.setter
    def DestIp(self, DestIp):
        self._DestIp = DestIp

    @property
    def DestPort(self):
        return self._DestPort

    @DestPort.setter
    def DestPort(self, DestPort):
        self._DestPort = DestPort

    @property
    def Operator(self):
        return self._Operator

    @Operator.setter
    def Operator(self, Operator):
        self._Operator = Operator

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def Hostip(self):
        return self._Hostip

    @Hostip.setter
    def Hostip(self, Hostip):
        self._Hostip = Hostip


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._ProcessName = params.get("ProcessName")
        self._DestIp = params.get("DestIp")
        self._DestPort = params.get("DestPort")
        self._Operator = params.get("Operator")
        self._IsGlobal = params.get("IsGlobal")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        self._Hostip = params.get("Hostip")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RiskDnsEvent(AbstractModel):
    """恶意请求事件

    """

    def __init__(self):
        r"""
        :param _Id: 事件Id
        :type Id: int
        :param _PolicyId: 策略ID
        :type PolicyId: int
        :param _PolicyType: 命中策略类型[-1:未知|0系统|1:用户]
        :type PolicyType: int
        :param _PolicyName: 命中策略名称
        :type PolicyName: str
        :param _ProtectLevel: 保护级别[0:基础版|1:专业版|2:旗舰版]
        :type ProtectLevel: int
        :param _HostId: 主机ID
        :type HostId: str
        :param _HostName: 主机名称
        :type HostName: str
        :param _HostIp: 主机IP
        :type HostIp: str
        :param _WanIp: 外网IP
        :type WanIp: str
        :param _AgentId: 客户端ID
        :type AgentId: str
        :param _Domain: 访问域名
        :type Domain: str
        :param _Tags: 标签特性
        :type Tags: list of str
        :param _AccessCount: 访问次数
        :type AccessCount: int
        :param _ThreatDesc: 威胁描述
        :type ThreatDesc: str
        :param _SuggestSolution: 修复方案
        :type SuggestSolution: str
        :param _ReferenceLink: 参考链接
        :type ReferenceLink: str
        :param _HandleStatus: 处理状态；[0:待处理|2:已加白|3:非信任状态|4:已处理|5:已忽略]
        :type HandleStatus: int
        :param _Pid: 进程ID
        :type Pid: int
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _ProcessMd5: 进程MD5
        :type ProcessMd5: str
        :param _CmdLine: 命令行
        :type CmdLine: str
        :param _FirstTime: 首次访问时间
        :type FirstTime: str
        :param _LastTime: 最近访问时间
        :type LastTime: str
        :param _HostStatus: 主机在线状态[OFFLINE:离线|ONLINE:在线|UNKNOWN:未知]
        :type HostStatus: str
        :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: int
        """
        self._Id = None
        self._PolicyId = None
        self._PolicyType = None
        self._PolicyName = None
        self._ProtectLevel = None
        self._HostId = None
        self._HostName = None
        self._HostIp = None
        self._WanIp = None
        self._AgentId = None
        self._Domain = None
        self._Tags = None
        self._AccessCount = None
        self._ThreatDesc = None
        self._SuggestSolution = None
        self._ReferenceLink = None
        self._HandleStatus = None
        self._Pid = None
        self._ProcessName = None
        self._ProcessMd5 = None
        self._CmdLine = None
        self._FirstTime = None
        self._LastTime = None
        self._HostStatus = None
        self._MachineExtraInfo = None
        self._OsType = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def PolicyType(self):
        return self._PolicyType

    @PolicyType.setter
    def PolicyType(self, PolicyType):
        self._PolicyType = PolicyType

    @property
    def PolicyName(self):
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def ProtectLevel(self):
        return self._ProtectLevel

    @ProtectLevel.setter
    def ProtectLevel(self, ProtectLevel):
        self._ProtectLevel = ProtectLevel

    @property
    def HostId(self):
        return self._HostId

    @HostId.setter
    def HostId(self, HostId):
        self._HostId = HostId

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def Domain(self):
        return self._Domain

    @Domain.setter
    def Domain(self, Domain):
        self._Domain = Domain

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def AccessCount(self):
        return self._AccessCount

    @AccessCount.setter
    def AccessCount(self, AccessCount):
        self._AccessCount = AccessCount

    @property
    def ThreatDesc(self):
        return self._ThreatDesc

    @ThreatDesc.setter
    def ThreatDesc(self, ThreatDesc):
        self._ThreatDesc = ThreatDesc

    @property
    def SuggestSolution(self):
        return self._SuggestSolution

    @SuggestSolution.setter
    def SuggestSolution(self, SuggestSolution):
        self._SuggestSolution = SuggestSolution

    @property
    def ReferenceLink(self):
        return self._ReferenceLink

    @ReferenceLink.setter
    def ReferenceLink(self, ReferenceLink):
        self._ReferenceLink = ReferenceLink

    @property
    def HandleStatus(self):
        return self._HandleStatus

    @HandleStatus.setter
    def HandleStatus(self, HandleStatus):
        self._HandleStatus = HandleStatus

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def ProcessMd5(self):
        return self._ProcessMd5

    @ProcessMd5.setter
    def ProcessMd5(self, ProcessMd5):
        self._ProcessMd5 = ProcessMd5

    @property
    def CmdLine(self):
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def FirstTime(self):
        return self._FirstTime

    @FirstTime.setter
    def FirstTime(self, FirstTime):
        self._FirstTime = FirstTime

    @property
    def LastTime(self):
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def HostStatus(self):
        return self._HostStatus

    @HostStatus.setter
    def HostStatus(self, HostStatus):
        self._HostStatus = HostStatus

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def OsType(self):
        return self._OsType

    @OsType.setter
    def OsType(self, OsType):
        self._OsType = OsType


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._PolicyId = params.get("PolicyId")
        self._PolicyType = params.get("PolicyType")
        self._PolicyName = params.get("PolicyName")
        self._ProtectLevel = params.get("ProtectLevel")
        self._HostId = params.get("HostId")
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._WanIp = params.get("WanIp")
        self._AgentId = params.get("AgentId")
        self._Domain = params.get("Domain")
        self._Tags = params.get("Tags")
        self._AccessCount = params.get("AccessCount")
        self._ThreatDesc = params.get("ThreatDesc")
        self._SuggestSolution = params.get("SuggestSolution")
        self._ReferenceLink = params.get("ReferenceLink")
        self._HandleStatus = params.get("HandleStatus")
        self._Pid = params.get("Pid")
        self._ProcessName = params.get("ProcessName")
        self._ProcessMd5 = params.get("ProcessMd5")
        self._CmdLine = params.get("CmdLine")
        self._FirstTime = params.get("FirstTime")
        self._LastTime = params.get("LastTime")
        self._HostStatus = params.get("HostStatus")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._OsType = params.get("OsType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RiskDnsList(AbstractModel):
    """恶意请求列表

    """

    def __init__(self):
        r"""
        :param _Url: 对外访问域名
        :type Url: str
        :param _AccessCount: 访问次数
        :type AccessCount: int
        :param _ProcessName: 进程名
        :type ProcessName: str
        :param _ProcessMd5: 进程MD5
        :type ProcessMd5: str
        :param _GlobalRuleId: 是否为全局规则，0否，1是
        :type GlobalRuleId: int
        :param _UserRuleId: 用户规则id
        :type UserRuleId: int
        :param _Status: 状态；0-待处理，2-已加白，3-非信任状态，4-已处理，5-已忽略
        :type Status: int
        :param _CreateTime: 首次访问时间
        :type CreateTime: str
        :param _MergeTime: 最近访问时间
        :type MergeTime: str
        :param _Quuid: 唯一 Quuid
        :type Quuid: str
        :param _HostIp: 主机ip
        :type HostIp: str
        :param _Alias: 别名
        :type Alias: str
        :param _Description: 描述
        :type Description: str
        :param _Id: 唯一ID
        :type Id: int
        :param _Reference: 参考
        :type Reference: str
        :param _CmdLine: 命令行
        :type CmdLine: str
        :param _Pid: 进程号
        :type Pid: int
        :param _Uuid: 唯一UUID
        :type Uuid: str
        :param _SuggestScheme: 建议方案
        :type SuggestScheme: str
        :param _Tags: 标签特性
        :type Tags: list of str
        :param _MachineWanIp: 外网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineWanIp: str
        :param _MachineStatus: 主机在线状态[OFFLINE:离线|ONLINE:在线|UNKNOWN:未知]
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineStatus: str
        """
        self._Url = None
        self._AccessCount = None
        self._ProcessName = None
        self._ProcessMd5 = None
        self._GlobalRuleId = None
        self._UserRuleId = None
        self._Status = None
        self._CreateTime = None
        self._MergeTime = None
        self._Quuid = None
        self._HostIp = None
        self._Alias = None
        self._Description = None
        self._Id = None
        self._Reference = None
        self._CmdLine = None
        self._Pid = None
        self._Uuid = None
        self._SuggestScheme = None
        self._Tags = None
        self._MachineWanIp = None
        self._MachineStatus = None

    @property
    def Url(self):
        return self._Url

    @Url.setter
    def Url(self, Url):
        self._Url = Url

    @property
    def AccessCount(self):
        return self._AccessCount

    @AccessCount.setter
    def AccessCount(self, AccessCount):
        self._AccessCount = AccessCount

    @property
    def ProcessName(self):
        return self._ProcessName

    @ProcessName.setter
    def ProcessName(self, ProcessName):
        self._ProcessName = ProcessName

    @property
    def ProcessMd5(self):
        return self._ProcessMd5

    @ProcessMd5.setter
    def ProcessMd5(self, ProcessMd5):
        self._ProcessMd5 = ProcessMd5

    @property
    def GlobalRuleId(self):
        return self._GlobalRuleId

    @GlobalRuleId.setter
    def GlobalRuleId(self, GlobalRuleId):
        self._GlobalRuleId = GlobalRuleId

    @property
    def UserRuleId(self):
        return self._UserRuleId

    @UserRuleId.setter
    def UserRuleId(self, UserRuleId):
        self._UserRuleId = UserRuleId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MergeTime(self):
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Reference(self):
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def CmdLine(self):
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def SuggestScheme(self):
        return self._SuggestScheme

    @SuggestScheme.setter
    def SuggestScheme(self, SuggestScheme):
        self._SuggestScheme = SuggestScheme

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus


    def _deserialize(self, params):
        self._Url = params.get("Url")
        self._AccessCount = params.get("AccessCount")
        self._ProcessName = params.get("ProcessName")
        self._ProcessMd5 = params.get("ProcessMd5")
        self._GlobalRuleId = params.get("GlobalRuleId")
        self._UserRuleId = params.get("UserRuleId")
        self._Status = params.get("Status")
        self._CreateTime = params.get("CreateTime")
        self._MergeTime = params.get("MergeTime")
        self._Quuid = params.get("Quuid")
        self._HostIp = params.get("HostIp")
        self._Alias = params.get("Alias")
        self._Description = params.get("Description")
        self._Id = params.get("Id")
        self._Reference = params.get("Reference")
        self._CmdLine = params.get("CmdLine")
        self._Pid = params.get("Pid")
        self._Uuid = params.get("Uuid")
        self._SuggestScheme = params.get("SuggestScheme")
        self._Tags = params.get("Tags")
        self._MachineWanIp = params.get("MachineWanIp")
        self._MachineStatus = params.get("MachineStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RiskDnsPolicy(AbstractModel):
    """恶意请求策略

    """

    def __init__(self):
        r"""
        :param _PolicyName: 策略名称
        :type PolicyName: str
        :param _PolicyType: 策略类型[0:系统,1:用户]
        :type PolicyType: int
        :param _PolicyAction: 策略动作[0:告警,1:放行,2:拦截+告警]
        :type PolicyAction: int
        :param _HostScope: 主机范围[1: 所有专业版+旗舰版|2:所有旗舰版|0: 部分主机]
        :type HostScope: int
        :param _HostIds: 主机ID
        :type HostIds: list of str
        :param _Domains: 域名,作为入参时需要进行base64 encode
        :type Domains: list of str
        :param _IsEnabled: 是否生效[0:生效,1:不生效]
        :type IsEnabled: int
        :param _PolicyId: 策略ID
        :type PolicyId: int
        :param _PolicyDesc: 策略描述
        :type PolicyDesc: str
        :param _IsDealOldEvent: 是否处理之前的事件[0:不处理|1:处理]
        :type IsDealOldEvent: int
        :param _UpdateTime: 更新时间
        :type UpdateTime: str
        :param _EventId: 事件ID
        :type EventId: int
        """
        self._PolicyName = None
        self._PolicyType = None
        self._PolicyAction = None
        self._HostScope = None
        self._HostIds = None
        self._Domains = None
        self._IsEnabled = None
        self._PolicyId = None
        self._PolicyDesc = None
        self._IsDealOldEvent = None
        self._UpdateTime = None
        self._EventId = None

    @property
    def PolicyName(self):
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName

    @property
    def PolicyType(self):
        return self._PolicyType

    @PolicyType.setter
    def PolicyType(self, PolicyType):
        self._PolicyType = PolicyType

    @property
    def PolicyAction(self):
        return self._PolicyAction

    @PolicyAction.setter
    def PolicyAction(self, PolicyAction):
        self._PolicyAction = PolicyAction

    @property
    def HostScope(self):
        return self._HostScope

    @HostScope.setter
    def HostScope(self, HostScope):
        self._HostScope = HostScope

    @property
    def HostIds(self):
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def Domains(self):
        return self._Domains

    @Domains.setter
    def Domains(self, Domains):
        self._Domains = Domains

    @property
    def IsEnabled(self):
        return self._IsEnabled

    @IsEnabled.setter
    def IsEnabled(self, IsEnabled):
        self._IsEnabled = IsEnabled

    @property
    def PolicyId(self):
        return self._PolicyId

    @PolicyId.setter
    def PolicyId(self, PolicyId):
        self._PolicyId = PolicyId

    @property
    def PolicyDesc(self):
        return self._PolicyDesc

    @PolicyDesc.setter
    def PolicyDesc(self, PolicyDesc):
        self._PolicyDesc = PolicyDesc

    @property
    def IsDealOldEvent(self):
        return self._IsDealOldEvent

    @IsDealOldEvent.setter
    def IsDealOldEvent(self, IsDealOldEvent):
        self._IsDealOldEvent = IsDealOldEvent

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId


    def _deserialize(self, params):
        self._PolicyName = params.get("PolicyName")
        self._PolicyType = params.get("PolicyType")
        self._PolicyAction = params.get("PolicyAction")
        self._HostScope = params.get("HostScope")
        self._HostIds = params.get("HostIds")
        self._Domains = params.get("Domains")
        self._IsEnabled = params.get("IsEnabled")
        self._PolicyId = params.get("PolicyId")
        self._PolicyDesc = params.get("PolicyDesc")
        self._IsDealOldEvent = params.get("IsDealOldEvent")
        self._UpdateTime = params.get("UpdateTime")
        self._EventId = params.get("EventId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RiskProcessEvent(AbstractModel):
    """异常进程事件

    """

    def __init__(self):
        r"""
        :param _EventId: 事件ID
        :type EventId: int
        :param _HostName: 主机名称
        :type HostName: str
        :param _HostIp: 主机IP
        :type HostIp: str
        :param _WanIp: 外网IP
        :type WanIp: str
        :param _ProcessId: 进程ID
        :type ProcessId: int
        :param _FilePath: 文件路径
        :type FilePath: str
        :param _CmdLine: 执行命令
        :type CmdLine: str
        :param _StartTime: 进程启动时间
        :type StartTime: str
        :param _DetectTime: 最近检测时间
        :type DetectTime: str
        :param _VirusName: 病毒名称
        :type VirusName: str
        :param _CheckPlatform: 木马检测平台 [1:云查杀引擎|2:TAV|3:binaryAi|4:异常行为|5:威胁情报]
        :type CheckPlatform: list of str
        :param _VirusTags: 病毒标签
        :type VirusTags: list of str
        :param _ThreatDesc: 威胁描述
        :type ThreatDesc: str
        :param _SuggestSolution: 建议方案
        :type SuggestSolution: str
        :param _ReferenceLink: 参考链接
        :type ReferenceLink: str
        :param _HandleStatus: 处理状态[0待处理;1已处理;2查杀中;3已查杀;4已退出;5忽略]
        :type HandleStatus: int
        :param _OnlineStatus: 主机在线状态
        :type OnlineStatus: int
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        :param _Uuid: 主机uuid
        :type Uuid: str
        """
        self._EventId = None
        self._HostName = None
        self._HostIp = None
        self._WanIp = None
        self._ProcessId = None
        self._FilePath = None
        self._CmdLine = None
        self._StartTime = None
        self._DetectTime = None
        self._VirusName = None
        self._CheckPlatform = None
        self._VirusTags = None
        self._ThreatDesc = None
        self._SuggestSolution = None
        self._ReferenceLink = None
        self._HandleStatus = None
        self._OnlineStatus = None
        self._MachineExtraInfo = None
        self._Uuid = None

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def WanIp(self):
        return self._WanIp

    @WanIp.setter
    def WanIp(self, WanIp):
        self._WanIp = WanIp

    @property
    def ProcessId(self):
        return self._ProcessId

    @ProcessId.setter
    def ProcessId(self, ProcessId):
        self._ProcessId = ProcessId

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def CmdLine(self):
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def DetectTime(self):
        return self._DetectTime

    @DetectTime.setter
    def DetectTime(self, DetectTime):
        self._DetectTime = DetectTime

    @property
    def VirusName(self):
        return self._VirusName

    @VirusName.setter
    def VirusName(self, VirusName):
        self._VirusName = VirusName

    @property
    def CheckPlatform(self):
        return self._CheckPlatform

    @CheckPlatform.setter
    def CheckPlatform(self, CheckPlatform):
        self._CheckPlatform = CheckPlatform

    @property
    def VirusTags(self):
        return self._VirusTags

    @VirusTags.setter
    def VirusTags(self, VirusTags):
        self._VirusTags = VirusTags

    @property
    def ThreatDesc(self):
        return self._ThreatDesc

    @ThreatDesc.setter
    def ThreatDesc(self, ThreatDesc):
        self._ThreatDesc = ThreatDesc

    @property
    def SuggestSolution(self):
        return self._SuggestSolution

    @SuggestSolution.setter
    def SuggestSolution(self, SuggestSolution):
        self._SuggestSolution = SuggestSolution

    @property
    def ReferenceLink(self):
        return self._ReferenceLink

    @ReferenceLink.setter
    def ReferenceLink(self, ReferenceLink):
        self._ReferenceLink = ReferenceLink

    @property
    def HandleStatus(self):
        return self._HandleStatus

    @HandleStatus.setter
    def HandleStatus(self, HandleStatus):
        self._HandleStatus = HandleStatus

    @property
    def OnlineStatus(self):
        return self._OnlineStatus

    @OnlineStatus.setter
    def OnlineStatus(self, OnlineStatus):
        self._OnlineStatus = OnlineStatus

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._EventId = params.get("EventId")
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._WanIp = params.get("WanIp")
        self._ProcessId = params.get("ProcessId")
        self._FilePath = params.get("FilePath")
        self._CmdLine = params.get("CmdLine")
        self._StartTime = params.get("StartTime")
        self._DetectTime = params.get("DetectTime")
        self._VirusName = params.get("VirusName")
        self._CheckPlatform = params.get("CheckPlatform")
        self._VirusTags = params.get("VirusTags")
        self._ThreatDesc = params.get("ThreatDesc")
        self._SuggestSolution = params.get("SuggestSolution")
        self._ReferenceLink = params.get("ReferenceLink")
        self._HandleStatus = params.get("HandleStatus")
        self._OnlineStatus = params.get("OnlineStatus")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RuleInfo(AbstractModel):
    """索引规则

    """

    def __init__(self):
        r"""
        :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`
        """
        self._FullText = None
        self._KeyValue = None
        self._Tag = None

    @property
    def FullText(self):
        return self._FullText

    @FullText.setter
    def FullText(self, FullText):
        self._FullText = FullText

    @property
    def KeyValue(self):
        return self._KeyValue

    @KeyValue.setter
    def KeyValue(self, KeyValue):
        self._KeyValue = KeyValue

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag


    def _deserialize(self, params):
        if params.get("FullText") is not None:
            self._FullText = FullTextInfo()
            self._FullText._deserialize(params.get("FullText"))
        if params.get("KeyValue") is not None:
            self._KeyValue = KeyValueInfo()
            self._KeyValue._deserialize(params.get("KeyValue"))
        if params.get("Tag") is not None:
            self._Tag = KeyValueInfo()
            self._Tag._deserialize(params.get("Tag"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScanAssetRequest(AbstractModel):
    """ScanAsset请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AssetTypeIds: 资产指纹类型id列表
        :type AssetTypeIds: list of int non-negative
        :param _Quuids: Quuid列表
        :type Quuids: list of str
        """
        self._AssetTypeIds = None
        self._Quuids = None

    @property
    def AssetTypeIds(self):
        return self._AssetTypeIds

    @AssetTypeIds.setter
    def AssetTypeIds(self, AssetTypeIds):
        self._AssetTypeIds = AssetTypeIds

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._AssetTypeIds = params.get("AssetTypeIds")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScanAssetResponse(AbstractModel):
    """ScanAsset返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ScanBaselineRequest(AbstractModel):
    """ScanBaseline请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyIdList: 策略id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        :type StrategyIdList: list of int non-negative
        :param _CategoryIdList: 基线id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        :type CategoryIdList: list of int non-negative
        :param _RuleIdList: 检测项id数组(StrategyIdList与CategoryIdList和RuleIdList三选一)
        :type RuleIdList: list of int non-negative
        :param _QuuidList: 选择StrategyIdList时，不需要填写，其他情况必填
        :type QuuidList: list of str
        :param _UuidList: 主机Uuid数组
        :type UuidList: list of str
        """
        self._StrategyIdList = None
        self._CategoryIdList = None
        self._RuleIdList = None
        self._QuuidList = None
        self._UuidList = None

    @property
    def StrategyIdList(self):
        return self._StrategyIdList

    @StrategyIdList.setter
    def StrategyIdList(self, StrategyIdList):
        self._StrategyIdList = StrategyIdList

    @property
    def CategoryIdList(self):
        return self._CategoryIdList

    @CategoryIdList.setter
    def CategoryIdList(self, CategoryIdList):
        self._CategoryIdList = CategoryIdList

    @property
    def RuleIdList(self):
        return self._RuleIdList

    @RuleIdList.setter
    def RuleIdList(self, RuleIdList):
        self._RuleIdList = RuleIdList

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def UuidList(self):
        return self._UuidList

    @UuidList.setter
    def UuidList(self, UuidList):
        self._UuidList = UuidList


    def _deserialize(self, params):
        self._StrategyIdList = params.get("StrategyIdList")
        self._CategoryIdList = params.get("CategoryIdList")
        self._RuleIdList = params.get("RuleIdList")
        self._QuuidList = params.get("QuuidList")
        self._UuidList = params.get("UuidList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScanBaselineResponse(AbstractModel):
    """ScanBaseline返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ScanningQuuids: 正在扫描中的主机Quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanningQuuids: list of str
        :param _TaskId: 任务下发成功返回的TaskId
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ScanningQuuids = None
        self._TaskId = None
        self._RequestId = None

    @property
    def ScanningQuuids(self):
        return self._ScanningQuuids

    @ScanningQuuids.setter
    def ScanningQuuids(self, ScanningQuuids):
        self._ScanningQuuids = ScanningQuuids

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ScanningQuuids = params.get("ScanningQuuids")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ScanTaskAgainRequest(AbstractModel):
    """ScanTaskAgain请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ModuleType: 模块类型 当前提供 Malware 木马 , Vul 漏洞 , Baseline 基线
        :type ModuleType: str
        :param _TaskId: 任务ID
        :type TaskId: int
        :param _QuuidList: 自选服务器时生效，主机quuid的string数组
        :type QuuidList: list of str
        :param _TimeoutPeriod: 扫描超时时长
        :type TimeoutPeriod: int
        """
        self._ModuleType = None
        self._TaskId = None
        self._QuuidList = None
        self._TimeoutPeriod = None

    @property
    def ModuleType(self):
        return self._ModuleType

    @ModuleType.setter
    def ModuleType(self, ModuleType):
        self._ModuleType = ModuleType

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def TimeoutPeriod(self):
        return self._TimeoutPeriod

    @TimeoutPeriod.setter
    def TimeoutPeriod(self, TimeoutPeriod):
        self._TimeoutPeriod = TimeoutPeriod


    def _deserialize(self, params):
        self._ModuleType = params.get("ModuleType")
        self._TaskId = params.get("TaskId")
        self._QuuidList = params.get("QuuidList")
        self._TimeoutPeriod = params.get("TimeoutPeriod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScanTaskAgainResponse(AbstractModel):
    """ScanTaskAgain返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ScanTaskDetails(AbstractModel):
    """扫描任务详情列表信息

    """

    def __init__(self):
        r"""
        :param _HostIp: 服务器IP
        :type HostIp: str
        :param _HostName: 服务器名称
        :type HostName: str
        :param _OsName: 操作系统
        :type OsName: str
        :param _RiskNum: 风险数量
        :type RiskNum: int
        :param _ScanBeginTime: 扫描开始时间
        :type ScanBeginTime: str
        :param _ScanEndTime: 扫描结束时间
        :type ScanEndTime: str
        :param _Uuid: 唯一Uuid
        :type Uuid: str
        :param _Quuid: 唯一Quuid
        :type Quuid: str
        :param _Status: 状态码
        :type Status: str
        :param _Description: 描述
        :type Description: str
        :param _Id: id唯一
        :type Id: int
        :param _FailType: 失败详情
        :type FailType: int
        :param _MachineWanIp: 外网ip
        :type MachineWanIp: str
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._HostIp = None
        self._HostName = None
        self._OsName = None
        self._RiskNum = None
        self._ScanBeginTime = None
        self._ScanEndTime = None
        self._Uuid = None
        self._Quuid = None
        self._Status = None
        self._Description = None
        self._Id = None
        self._FailType = None
        self._MachineWanIp = None
        self._MachineExtraInfo = None

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def OsName(self):
        return self._OsName

    @OsName.setter
    def OsName(self, OsName):
        self._OsName = OsName

    @property
    def RiskNum(self):
        return self._RiskNum

    @RiskNum.setter
    def RiskNum(self, RiskNum):
        self._RiskNum = RiskNum

    @property
    def ScanBeginTime(self):
        return self._ScanBeginTime

    @ScanBeginTime.setter
    def ScanBeginTime(self, ScanBeginTime):
        self._ScanBeginTime = ScanBeginTime

    @property
    def ScanEndTime(self):
        return self._ScanEndTime

    @ScanEndTime.setter
    def ScanEndTime(self, ScanEndTime):
        self._ScanEndTime = ScanEndTime

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def FailType(self):
        return self._FailType

    @FailType.setter
    def FailType(self, FailType):
        self._FailType = FailType

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._HostIp = params.get("HostIp")
        self._HostName = params.get("HostName")
        self._OsName = params.get("OsName")
        self._RiskNum = params.get("RiskNum")
        self._ScanBeginTime = params.get("ScanBeginTime")
        self._ScanEndTime = params.get("ScanEndTime")
        self._Uuid = params.get("Uuid")
        self._Quuid = params.get("Quuid")
        self._Status = params.get("Status")
        self._Description = params.get("Description")
        self._Id = params.get("Id")
        self._FailType = params.get("FailType")
        self._MachineWanIp = params.get("MachineWanIp")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScanVulAgainRequest(AbstractModel):
    """ScanVulAgain请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EventIds: 漏洞事件id串，多个用英文逗号分隔
        :type EventIds: str
        :param _Uuids: 重新检查的机器uuid,多个逗号分隔
        :type Uuids: str
        """
        self._EventIds = None
        self._Uuids = None

    @property
    def EventIds(self):
        return self._EventIds

    @EventIds.setter
    def EventIds(self, EventIds):
        self._EventIds = EventIds

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids


    def _deserialize(self, params):
        self._EventIds = params.get("EventIds")
        self._Uuids = params.get("Uuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScanVulAgainResponse(AbstractModel):
    """ScanVulAgain返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ScanVulRequest(AbstractModel):
    """ScanVul请求参数结构体

    """

    def __init__(self):
        r"""
        :param _VulLevels: 危害等级：1-低危；2-中危；3-高危；4-严重 (多选英文;分隔)
        :type VulLevels: str
        :param _HostType: 服务器分类：1:专业版服务器；2:自选服务器
        :type HostType: int
        :param _VulCategories: 漏洞类型：1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 (多选英文;分隔)
        :type VulCategories: str
        :param _QuuidList: 自选服务器时生效，主机quuid的string数组
        :type QuuidList: list of str
        :param _VulEmergency: 是否是应急漏洞 0 否 1 是
        :type VulEmergency: int
        :param _TimeoutPeriod: 超时时长 单位秒 默认 3600 秒
        :type TimeoutPeriod: int
        :param _VulIds: 需要扫描的漏洞id
        :type VulIds: list of int non-negative
        """
        self._VulLevels = None
        self._HostType = None
        self._VulCategories = None
        self._QuuidList = None
        self._VulEmergency = None
        self._TimeoutPeriod = None
        self._VulIds = None

    @property
    def VulLevels(self):
        return self._VulLevels

    @VulLevels.setter
    def VulLevels(self, VulLevels):
        self._VulLevels = VulLevels

    @property
    def HostType(self):
        return self._HostType

    @HostType.setter
    def HostType(self, HostType):
        self._HostType = HostType

    @property
    def VulCategories(self):
        return self._VulCategories

    @VulCategories.setter
    def VulCategories(self, VulCategories):
        self._VulCategories = VulCategories

    @property
    def QuuidList(self):
        return self._QuuidList

    @QuuidList.setter
    def QuuidList(self, QuuidList):
        self._QuuidList = QuuidList

    @property
    def VulEmergency(self):
        return self._VulEmergency

    @VulEmergency.setter
    def VulEmergency(self, VulEmergency):
        self._VulEmergency = VulEmergency

    @property
    def TimeoutPeriod(self):
        return self._TimeoutPeriod

    @TimeoutPeriod.setter
    def TimeoutPeriod(self, TimeoutPeriod):
        self._TimeoutPeriod = TimeoutPeriod

    @property
    def VulIds(self):
        return self._VulIds

    @VulIds.setter
    def VulIds(self, VulIds):
        self._VulIds = VulIds


    def _deserialize(self, params):
        self._VulLevels = params.get("VulLevels")
        self._HostType = params.get("HostType")
        self._VulCategories = params.get("VulCategories")
        self._QuuidList = params.get("QuuidList")
        self._VulEmergency = params.get("VulEmergency")
        self._TimeoutPeriod = params.get("TimeoutPeriod")
        self._VulIds = params.get("VulIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScanVulResponse(AbstractModel):
    """ScanVul返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务id
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class ScanVulSettingRequest(AbstractModel):
    """ScanVulSetting请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TimerInterval: 定期检测间隔时间（天）
        :type TimerInterval: int
        :param _VulCategories: 漏洞类型：1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞, 以数组方式传参[1,2]
        :type VulCategories: list of int non-negative
        :param _VulLevels: 危害等级：1-低危；2-中危；3-高危；4-严重,以数组方式传参[1,2,3]
        :type VulLevels: list of int non-negative
        :param _TimerTime: 定期检测时间，如：02:10:50
        :type TimerTime: str
        :param _VulEmergency: 是否是应急漏洞 0 否 1 是
        :type VulEmergency: int
        :param _StartTime: 扫描开始时间，如：00:00
        :type StartTime: str
        :param _EndTime: 扫描结束时间，如：08:00
        :type EndTime: str
        :param _EnableScan: 是否开启扫描 1开启 0不开启
        :type EnableScan: int
        :param _Uuids: 为空默认扫描全部专业版、旗舰版、普惠版主机，不为空只扫描选中主机
        :type Uuids: list of str
        """
        self._TimerInterval = None
        self._VulCategories = None
        self._VulLevels = None
        self._TimerTime = None
        self._VulEmergency = None
        self._StartTime = None
        self._EndTime = None
        self._EnableScan = None
        self._Uuids = None

    @property
    def TimerInterval(self):
        return self._TimerInterval

    @TimerInterval.setter
    def TimerInterval(self, TimerInterval):
        self._TimerInterval = TimerInterval

    @property
    def VulCategories(self):
        return self._VulCategories

    @VulCategories.setter
    def VulCategories(self, VulCategories):
        self._VulCategories = VulCategories

    @property
    def VulLevels(self):
        return self._VulLevels

    @VulLevels.setter
    def VulLevels(self, VulLevels):
        self._VulLevels = VulLevels

    @property
    def TimerTime(self):
        return self._TimerTime

    @TimerTime.setter
    def TimerTime(self, TimerTime):
        self._TimerTime = TimerTime

    @property
    def VulEmergency(self):
        return self._VulEmergency

    @VulEmergency.setter
    def VulEmergency(self, VulEmergency):
        self._VulEmergency = VulEmergency

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def EnableScan(self):
        return self._EnableScan

    @EnableScan.setter
    def EnableScan(self, EnableScan):
        self._EnableScan = EnableScan

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids


    def _deserialize(self, params):
        self._TimerInterval = params.get("TimerInterval")
        self._VulCategories = params.get("VulCategories")
        self._VulLevels = params.get("VulLevels")
        self._TimerTime = params.get("TimerTime")
        self._VulEmergency = params.get("VulEmergency")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._EnableScan = params.get("EnableScan")
        self._Uuids = params.get("Uuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScanVulSettingResponse(AbstractModel):
    """ScanVulSetting返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ScreenAttackHotspot(AbstractModel):
    """大屏全网攻击热点

    """

    def __init__(self):
        r"""
        :param _EventName: 事件名
        :type EventName: str
        :param _SrcIp: 攻击者IP
        :type SrcIp: str
        :param _DstIp: 受害者IP
        :type DstIp: str
        :param _Region: 地域
        :type Region: str
        :param _CreatedTime: 时间
        :type CreatedTime: str
        """
        self._EventName = None
        self._SrcIp = None
        self._DstIp = None
        self._Region = None
        self._CreatedTime = None

    @property
    def EventName(self):
        return self._EventName

    @EventName.setter
    def EventName(self, EventName):
        self._EventName = EventName

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def DstIp(self):
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp

    @property
    def Region(self):
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime


    def _deserialize(self, params):
        self._EventName = params.get("EventName")
        self._SrcIp = params.get("SrcIp")
        self._DstIp = params.get("DstIp")
        self._Region = params.get("Region")
        self._CreatedTime = params.get("CreatedTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenBaselineInfo(AbstractModel):
    """大屏基线信息

    """

    def __init__(self):
        r"""
        :param _Name: 基线名
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _Level: 危害等级：1-低危；2-中危；3-高危；4-严重
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _CategoryId: 基线id
注意：此字段可能返回 null，表示取不到有效值。
        :type CategoryId: int
        :param _LastScanTime: 最后检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LastScanTime: str
        :param _BaselineFailCount: 基线风险项
注意：此字段可能返回 null，表示取不到有效值。
        :type BaselineFailCount: int
        :param _Uuid: 主机uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        """
        self._Name = None
        self._Level = None
        self._CategoryId = None
        self._LastScanTime = None
        self._BaselineFailCount = None
        self._Uuid = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CategoryId(self):
        return self._CategoryId

    @CategoryId.setter
    def CategoryId(self, CategoryId):
        self._CategoryId = CategoryId

    @property
    def LastScanTime(self):
        return self._LastScanTime

    @LastScanTime.setter
    def LastScanTime(self, LastScanTime):
        self._LastScanTime = LastScanTime

    @property
    def BaselineFailCount(self):
        return self._BaselineFailCount

    @BaselineFailCount.setter
    def BaselineFailCount(self, BaselineFailCount):
        self._BaselineFailCount = BaselineFailCount

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Level = params.get("Level")
        self._CategoryId = params.get("CategoryId")
        self._LastScanTime = params.get("LastScanTime")
        self._BaselineFailCount = params.get("BaselineFailCount")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenBroadcasts(AbstractModel):
    """大屏可视化安全播报内容

    """

    def __init__(self):
        r"""
        :param _Title: 播报文章标题
        :type Title: str
        :param _Level: 播报文章危险程度  0：无， 1：严重， 2: 高危， 3:中危， 4: 低危
        :type Level: int
        :param _Time: 发布时间
        :type Time: str
        :param _Id: 文章ID
        :type Id: int
        """
        self._Title = None
        self._Level = None
        self._Time = None
        self._Id = None

    @property
    def Title(self):
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Time(self):
        return self._Time

    @Time.setter
    def Time(self, Time):
        self._Time = Time

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Title = params.get("Title")
        self._Level = params.get("Level")
        self._Time = params.get("Time")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenDefendAttackLog(AbstractModel):
    """大屏网络攻击日志

    """

    def __init__(self):
        r"""
        :param _Id: 日志ID
        :type Id: int
        :param _Uuid: 客户端ID
        :type Uuid: str
        :param _SrcIp: 来源IP
        :type SrcIp: str
        :param _SrcPort: 来源端口
        :type SrcPort: int
        :param _HttpMethod: 攻击方式
        :type HttpMethod: str
        :param _VulType: 威胁类型
        :type VulType: str
        :param _CreatedTime: 攻击时间
        :type CreatedTime: str
        :param _DstPort: 目标端口
        :type DstPort: int
        :param _Quuid: 主机 quuid
        :type Quuid: str
        :param _DstIp: 目标IP
        :type DstIp: str
        """
        self._Id = None
        self._Uuid = None
        self._SrcIp = None
        self._SrcPort = None
        self._HttpMethod = None
        self._VulType = None
        self._CreatedTime = None
        self._DstPort = None
        self._Quuid = None
        self._DstIp = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def SrcPort(self):
        return self._SrcPort

    @SrcPort.setter
    def SrcPort(self, SrcPort):
        self._SrcPort = SrcPort

    @property
    def HttpMethod(self):
        return self._HttpMethod

    @HttpMethod.setter
    def HttpMethod(self, HttpMethod):
        self._HttpMethod = HttpMethod

    @property
    def VulType(self):
        return self._VulType

    @VulType.setter
    def VulType(self, VulType):
        self._VulType = VulType

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def DstIp(self):
        return self._DstIp

    @DstIp.setter
    def DstIp(self, DstIp):
        self._DstIp = DstIp


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._SrcIp = params.get("SrcIp")
        self._SrcPort = params.get("SrcPort")
        self._HttpMethod = params.get("HttpMethod")
        self._VulType = params.get("VulType")
        self._CreatedTime = params.get("CreatedTime")
        self._DstPort = params.get("DstPort")
        self._Quuid = params.get("Quuid")
        self._DstIp = params.get("DstIp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenEmergentMsg(AbstractModel):
    """大屏可视化紧急通知

    """

    def __init__(self):
        r"""
        :param _Title: 通知标签/标题
        :type Title: str
        :param _Text: 通知内容
        :type Text: str
        :param _Type: 跳转类型：0=漏洞管理
        :type Type: int
        """
        self._Title = None
        self._Text = None
        self._Type = None

    @property
    def Title(self):
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def Text(self):
        return self._Text

    @Text.setter
    def Text(self, Text):
        self._Text = Text

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._Title = params.get("Title")
        self._Text = params.get("Text")
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenEventsCnt(AbstractModel):
    """统计入侵检测

    """

    def __init__(self):
        r"""
        :param _Title: 展示内容：待处理风险总数，影响资产总数
        :type Title: str
        :param _Total: 事件总数
        :type Total: int
        :param _Category: name 具体展示内容类型： 攻击事件, 潜在风险, 失陷资产, 潜在风险资产
Value: 事件统计数
        :type Category: list of ScreenNameValue
        """
        self._Title = None
        self._Total = None
        self._Category = None

    @property
    def Title(self):
        return self._Title

    @Title.setter
    def Title(self, Title):
        self._Title = Title

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Category(self):
        return self._Category

    @Category.setter
    def Category(self, Category):
        self._Category = Category


    def _deserialize(self, params):
        self._Title = params.get("Title")
        self._Total = params.get("Total")
        if params.get("Category") is not None:
            self._Category = []
            for item in params.get("Category"):
                obj = ScreenNameValue()
                obj._deserialize(item)
                self._Category.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenInvasion(AbstractModel):
    """大屏入侵事件详情

    """

    def __init__(self):
        r"""
        :param _CreatedTime: 入侵时间
        :type CreatedTime: str
        :param _EventType: 事件类型：0：文件查杀，1：异常登录， 2：密码破解，3：恶意请求，4：高危命令，5：本地提权， 6：反弹shell
        :type EventType: int
        :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: str
        :param _Level: 事件统一等级 0：提示，1：低危,  2：中危,  3：高危,  4：严重
        :type Level: int
        :param _LevelZh: 等级中文展示
        :type LevelZh: str
        :param _Id: 事件id
        :type Id: int
        :param _Uuid: 主机uuid
        :type Uuid: str
        """
        self._CreatedTime = None
        self._EventType = None
        self._Content = None
        self._Level = None
        self._LevelZh = None
        self._Id = None
        self._Uuid = None

    @property
    def CreatedTime(self):
        return self._CreatedTime

    @CreatedTime.setter
    def CreatedTime(self, CreatedTime):
        self._CreatedTime = CreatedTime

    @property
    def EventType(self):
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def Content(self):
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def LevelZh(self):
        return self._LevelZh

    @LevelZh.setter
    def LevelZh(self, LevelZh):
        self._LevelZh = LevelZh

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._CreatedTime = params.get("CreatedTime")
        self._EventType = params.get("EventType")
        self._Content = params.get("Content")
        self._Level = params.get("Level")
        self._LevelZh = params.get("LevelZh")
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenMachine(AbstractModel):
    """大屏主机列表数据

    """

    def __init__(self):
        r"""
        :param _MachineName: 主机名称。
        :type MachineName: str
        :param _MachineOs: 主机系统。
        :type MachineOs: str
        :param _Uuid: 云镜客户端唯一Uuid，若客户端长时间不在线将返回空字符。
        :type Uuid: str
        :param _MachineStatus: 大屏主机状态 0：未安装agent，1：离线状态，2:离线-风险，3：离线-严重
4：安装设备-正常，5：安装设备-正常 且是专业版或旗舰版，6：安装设备-风险（网络攻击事件>0） ，
 7：安装设备-风险（网络攻击事件>0 且是专业版或旗舰版，8：安装设备-严重（入侵检测事件>0），
9：安装设备-严重（入侵检测事件>0）且是专业版或旗舰版
        :type MachineStatus: int
        :param _Quuid: CVM或BM机器唯一Uuid。
        :type Quuid: str
        :param _VulNum: 漏洞数。
        :type VulNum: int
        :param _MachineIp: 主机IP。
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP。
        :type MachineWanIp: str
        :param _BaselineNum: 基线风险数。
        :type BaselineNum: int
        :param _CyberAttackNum: 网络风险数。
        :type CyberAttackNum: int
        :param _SecurityStatus: 风险状态。
<li>SAFE：安全</li>
<li>RISK：风险</li>
<li>UNKNOWN：未知</li>
        :type SecurityStatus: str
        :param _InvasionNum: 入侵事件数
        :type InvasionNum: int
        :param _MachineType: 机器所属专区类型 CVM 云服务器, BM 黑石, ECM 边缘计算, LH 轻量应用服务器 ,Other 混合云专区
        :type MachineType: str
        :param _CpuLoad: cpu 负载状态
        :type CpuLoad: str
        :param _CpuSize: cpu 核数
        :type CpuSize: float
        :param _DiskLoad: 硬盘使用率 %
        :type DiskLoad: str
        :param _DiskSize: 硬盘容量GB
        :type DiskSize: float
        :param _MemLoad: 内存负载率%
        :type MemLoad: str
        :param _MemSize: 内存容量 GB
        :type MemSize: float
        :param _CoreVersion: 内核版本
        :type CoreVersion: str
        :param _MachineExtraInfo: 附加信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._MachineName = None
        self._MachineOs = None
        self._Uuid = None
        self._MachineStatus = None
        self._Quuid = None
        self._VulNum = None
        self._MachineIp = None
        self._MachineWanIp = None
        self._BaselineNum = None
        self._CyberAttackNum = None
        self._SecurityStatus = None
        self._InvasionNum = None
        self._MachineType = None
        self._CpuLoad = None
        self._CpuSize = None
        self._DiskLoad = None
        self._DiskSize = None
        self._MemLoad = None
        self._MemSize = None
        self._CoreVersion = None
        self._MachineExtraInfo = None

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineOs(self):
        return self._MachineOs

    @MachineOs.setter
    def MachineOs(self, MachineOs):
        self._MachineOs = MachineOs

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def VulNum(self):
        return self._VulNum

    @VulNum.setter
    def VulNum(self, VulNum):
        self._VulNum = VulNum

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def BaselineNum(self):
        return self._BaselineNum

    @BaselineNum.setter
    def BaselineNum(self, BaselineNum):
        self._BaselineNum = BaselineNum

    @property
    def CyberAttackNum(self):
        return self._CyberAttackNum

    @CyberAttackNum.setter
    def CyberAttackNum(self, CyberAttackNum):
        self._CyberAttackNum = CyberAttackNum

    @property
    def SecurityStatus(self):
        return self._SecurityStatus

    @SecurityStatus.setter
    def SecurityStatus(self, SecurityStatus):
        self._SecurityStatus = SecurityStatus

    @property
    def InvasionNum(self):
        return self._InvasionNum

    @InvasionNum.setter
    def InvasionNum(self, InvasionNum):
        self._InvasionNum = InvasionNum

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def CpuLoad(self):
        return self._CpuLoad

    @CpuLoad.setter
    def CpuLoad(self, CpuLoad):
        self._CpuLoad = CpuLoad

    @property
    def CpuSize(self):
        return self._CpuSize

    @CpuSize.setter
    def CpuSize(self, CpuSize):
        self._CpuSize = CpuSize

    @property
    def DiskLoad(self):
        return self._DiskLoad

    @DiskLoad.setter
    def DiskLoad(self, DiskLoad):
        self._DiskLoad = DiskLoad

    @property
    def DiskSize(self):
        return self._DiskSize

    @DiskSize.setter
    def DiskSize(self, DiskSize):
        self._DiskSize = DiskSize

    @property
    def MemLoad(self):
        return self._MemLoad

    @MemLoad.setter
    def MemLoad(self, MemLoad):
        self._MemLoad = MemLoad

    @property
    def MemSize(self):
        return self._MemSize

    @MemSize.setter
    def MemSize(self, MemSize):
        self._MemSize = MemSize

    @property
    def CoreVersion(self):
        return self._CoreVersion

    @CoreVersion.setter
    def CoreVersion(self, CoreVersion):
        self._CoreVersion = CoreVersion

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._MachineName = params.get("MachineName")
        self._MachineOs = params.get("MachineOs")
        self._Uuid = params.get("Uuid")
        self._MachineStatus = params.get("MachineStatus")
        self._Quuid = params.get("Quuid")
        self._VulNum = params.get("VulNum")
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._BaselineNum = params.get("BaselineNum")
        self._CyberAttackNum = params.get("CyberAttackNum")
        self._SecurityStatus = params.get("SecurityStatus")
        self._InvasionNum = params.get("InvasionNum")
        self._MachineType = params.get("MachineType")
        self._CpuLoad = params.get("CpuLoad")
        self._CpuSize = params.get("CpuSize")
        self._DiskLoad = params.get("DiskLoad")
        self._DiskSize = params.get("DiskSize")
        self._MemLoad = params.get("MemLoad")
        self._MemSize = params.get("MemSize")
        self._CoreVersion = params.get("CoreVersion")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenNameValue(AbstractModel):
    """【云安全预警】大屏可视化数据Name Value 数据

    """

    def __init__(self):
        r"""
        :param _Name: 统计类型 不同接口对应不同的内容
        :type Name: str
        :param _Value: 统计数量
        :type Value: int
        """
        self._Name = None
        self._Value = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Value = params.get("Value")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenProtection(AbstractModel):
    """大屏可视化攻防状态

    """

    def __init__(self):
        r"""
        :param _Name: 类型值：文件查杀，暴力破解，漏洞扫描，基线检测
        :type Name: str
        :param _Status: 文件查杀:  0:从未检测过，或0资产付费情况, 1:已检测，存在恶意文件, 2:已检测，未开启隔离防护, 3:已检测且已开启防护且无风险；
暴力破解: 0:未开启防护（0付费资产情况）1:已开启自动阻断；
漏洞扫描: 0:从未检测过，或0资产付费情况, 1:存在漏洞风险, 2:无风险；
基线检测: 0:从未检测过，或0资产付费情况, 1:存在基线风险,2:无风险；
        :type Status: int
        """
        self._Name = None
        self._Status = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenProtectionCnt(AbstractModel):
    """大屏可视化主机安全返回态势数据

    """

    def __init__(self):
        r"""
        :param _Type: cloud：云查杀引擎，detect：检测引擎，defend：攻击防御，threat：威胁情报，analysis：异常分析，ai：AI引擎
        :type Type: str
        :param _Name: cloud：云查杀引擎，detect：检测引擎，defend：攻击防御，threat：威胁情报，analysis：异常分析，ai：AI引擎
        :type Name: str
        :param _Count: 总数
        :type Count: int
        """
        self._Type = None
        self._Name = None
        self._Count = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Name = params.get("Name")
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenRegionInfo(AbstractModel):
    """地域信息

    """

    def __init__(self):
        r"""
        :param _Region: 地域标志，如 ap-guangzhou，ap-shanghai，ap-beijing
        :type Region: str
        :param _RegionName: 地域中文名，如华南地区（广州），华东地区（上海金融），华北地区（北京）
        :type RegionName: str
        :param _RegionId: 地域ID
        :type RegionId: int
        :param _RegionCode: 地域代码，如 gz，sh，bj
        :type RegionCode: str
        :param _RegionNameEn: 地域英文名
        :type RegionNameEn: str
        """
        self._Region = None
        self._RegionName = None
        self._RegionId = None
        self._RegionCode = None
        self._RegionNameEn = None

    @property
    def Region(self):
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def RegionName(self):
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def RegionId(self):
        return self._RegionId

    @RegionId.setter
    def RegionId(self, RegionId):
        self._RegionId = RegionId

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def RegionNameEn(self):
        return self._RegionNameEn

    @RegionNameEn.setter
    def RegionNameEn(self, RegionNameEn):
        self._RegionNameEn = RegionNameEn


    def _deserialize(self, params):
        self._Region = params.get("Region")
        self._RegionName = params.get("RegionName")
        self._RegionId = params.get("RegionId")
        self._RegionCode = params.get("RegionCode")
        self._RegionNameEn = params.get("RegionNameEn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenRegionMachines(AbstractModel):
    """大屏主机3D图 列表

    """

    def __init__(self):
        r"""
        :param _Region: 所有区域
        :type Region: str
        :param _RegionName: 区域中文描述
        :type RegionName: str
        :param _Machines: 主机列表
        :type Machines: list of ScreenMachine
        :param _TotalCount: 此区域的主机总数
        :type TotalCount: int
        :param _RiskCnt: 风险主机数量
        :type RiskCnt: int
        :param _AttackCnt: 潜在风险主机数
        :type AttackCnt: int
        :param _SafetyCnt: 无风险主机数
        :type SafetyCnt: int
        :param _UnAgentOfflineCnt: 离线/未安装主机数
        :type UnAgentOfflineCnt: int
        :param _IgnoreCnt: 省略展示多少主机，等于0时没有省略展示
        :type IgnoreCnt: int
        """
        self._Region = None
        self._RegionName = None
        self._Machines = None
        self._TotalCount = None
        self._RiskCnt = None
        self._AttackCnt = None
        self._SafetyCnt = None
        self._UnAgentOfflineCnt = None
        self._IgnoreCnt = None

    @property
    def Region(self):
        return self._Region

    @Region.setter
    def Region(self, Region):
        self._Region = Region

    @property
    def RegionName(self):
        return self._RegionName

    @RegionName.setter
    def RegionName(self, RegionName):
        self._RegionName = RegionName

    @property
    def Machines(self):
        return self._Machines

    @Machines.setter
    def Machines(self, Machines):
        self._Machines = Machines

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def RiskCnt(self):
        return self._RiskCnt

    @RiskCnt.setter
    def RiskCnt(self, RiskCnt):
        self._RiskCnt = RiskCnt

    @property
    def AttackCnt(self):
        return self._AttackCnt

    @AttackCnt.setter
    def AttackCnt(self, AttackCnt):
        self._AttackCnt = AttackCnt

    @property
    def SafetyCnt(self):
        return self._SafetyCnt

    @SafetyCnt.setter
    def SafetyCnt(self, SafetyCnt):
        self._SafetyCnt = SafetyCnt

    @property
    def UnAgentOfflineCnt(self):
        return self._UnAgentOfflineCnt

    @UnAgentOfflineCnt.setter
    def UnAgentOfflineCnt(self, UnAgentOfflineCnt):
        self._UnAgentOfflineCnt = UnAgentOfflineCnt

    @property
    def IgnoreCnt(self):
        return self._IgnoreCnt

    @IgnoreCnt.setter
    def IgnoreCnt(self, IgnoreCnt):
        self._IgnoreCnt = IgnoreCnt


    def _deserialize(self, params):
        self._Region = params.get("Region")
        self._RegionName = params.get("RegionName")
        if params.get("Machines") is not None:
            self._Machines = []
            for item in params.get("Machines"):
                obj = ScreenMachine()
                obj._deserialize(item)
                self._Machines.append(obj)
        self._TotalCount = params.get("TotalCount")
        self._RiskCnt = params.get("RiskCnt")
        self._AttackCnt = params.get("AttackCnt")
        self._SafetyCnt = params.get("SafetyCnt")
        self._UnAgentOfflineCnt = params.get("UnAgentOfflineCnt")
        self._IgnoreCnt = params.get("IgnoreCnt")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenTrendsChart(AbstractModel):
    """大屏攻防趋势图

    """

    def __init__(self):
        r"""
        :param _X: X轴 时间
        :type X: str
        :param _Y: Y轴 数值
        :type Y: int
        :param _Type: 统计分类类型 值：防御次数，攻击次数
        :type Type: str
        """
        self._X = None
        self._Y = None
        self._Type = None

    @property
    def X(self):
        return self._X

    @X.setter
    def X(self, X):
        self._X = X

    @property
    def Y(self):
        return self._Y

    @Y.setter
    def Y(self, Y):
        self._Y = Y

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._X = params.get("X")
        self._Y = params.get("Y")
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ScreenVulInfo(AbstractModel):
    """大屏漏洞列表

    """

    def __init__(self):
        r"""
        :param _Id: 漏洞事件id
        :type Id: int
        :param _Name: 漏洞名
        :type Name: str
        :param _VulId: 漏洞id
        :type VulId: int
        :param _LastTime: 最后检测时间
        :type LastTime: str
        :param _Level: 漏洞等级 1:低 2:中 3:高 4:提示
        :type Level: int
        :param _Category: 漏洞类型 1: web-cms漏洞, 2:应用漏洞, 4: Linux软件漏洞, 5: Windows系统漏洞
注意：此字段可能返回 null，表示取不到有效值。
        :type Category: int
        :param _Uuid: 主机UUID
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        """
        self._Id = None
        self._Name = None
        self._VulId = None
        self._LastTime = None
        self._Level = None
        self._Category = None
        self._Uuid = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def LastTime(self):
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Category(self):
        return self._Category

    @Category.setter
    def Category(self, Category):
        self._Category = Category

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        self._VulId = params.get("VulId")
        self._LastTime = params.get("LastTime")
        self._Level = params.get("Level")
        self._Category = params.get("Category")
        self._Uuid = params.get("Uuid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SearchLogRequest(AbstractModel):
    """SearchLog请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StartTime: 要检索分析的日志的起始时间，Unix时间戳（毫秒）
        :type StartTime: int
        :param _EndTime: 要检索分析的日志的结束时间，Unix时间戳（毫秒）
        :type EndTime: int
        :param _QueryString: 检索分析语句，最大长度为12KB
        :type QueryString: str
        :param _Count: 表示单次查询返回的原始日志条数，最大值为1000，获取后续日志需使用Context参数
        :type Count: int
        :param _Sort: 原始日志是否按时间排序返回；可选值：asc(升序)、desc(降序)，默认为 desc
        :type Sort: str
        :param _Context: 透传上次接口返回的Context值，可获取后续更多日志，总计最多可获取1万条原始日志，过期时间1小时
        :type Context: str
        """
        self._StartTime = None
        self._EndTime = None
        self._QueryString = None
        self._Count = None
        self._Sort = None
        self._Context = None

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def QueryString(self):
        return self._QueryString

    @QueryString.setter
    def QueryString(self, QueryString):
        self._QueryString = QueryString

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Sort(self):
        return self._Sort

    @Sort.setter
    def Sort(self, Sort):
        self._Sort = Sort

    @property
    def Context(self):
        return self._Context

    @Context.setter
    def Context(self, Context):
        self._Context = Context


    def _deserialize(self, params):
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._QueryString = params.get("QueryString")
        self._Count = params.get("Count")
        self._Sort = params.get("Sort")
        self._Context = params.get("Context")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SearchLogResponse(AbstractModel):
    """SearchLog返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Count: 匹配检索条件的原始日志的数量
        :type Count: int
        :param _Context: 透传本次接口返回的Context值，可获取后续更多日志，过期时间1小时
        :type Context: str
        :param _ListOver: 符合检索条件的日志是否已全部返回，如未全部返回可使用Context参数获取后续更多日志
        :type ListOver: bool
        :param _Analysis: 返回的是否为统计分析（即SQL）结果
        :type Analysis: bool
        :param _Data: 匹配检索条件的原始日志
        :type Data: list of LogInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Count = None
        self._Context = None
        self._ListOver = None
        self._Analysis = None
        self._Data = None
        self._RequestId = None

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Context(self):
        return self._Context

    @Context.setter
    def Context(self, Context):
        self._Context = Context

    @property
    def ListOver(self):
        return self._ListOver

    @ListOver.setter
    def ListOver(self, ListOver):
        self._ListOver = ListOver

    @property
    def Analysis(self):
        return self._Analysis

    @Analysis.setter
    def Analysis(self, Analysis):
        self._Analysis = Analysis

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Count = params.get("Count")
        self._Context = params.get("Context")
        self._ListOver = params.get("ListOver")
        self._Analysis = params.get("Analysis")
        if params.get("Data") is not None:
            self._Data = []
            for item in params.get("Data"):
                obj = LogInfo()
                obj._deserialize(item)
                self._Data.append(obj)
        self._RequestId = params.get("RequestId")


class SearchTemplate(AbstractModel):
    """快速搜索模板

    """

    def __init__(self):
        r"""
        :param _Name: 检索名称
        :type Name: str
        :param _LogType: 检索索引类型
        :type LogType: str
        :param _Condition: 检索语句
        :type Condition: str
        :param _TimeRange: 时间范围
        :type TimeRange: str
        :param _Query: 转换的检索语句内容
        :type Query: str
        :param _Flag: 检索方式。输入框检索：standard,过滤，检索：simple
        :type Flag: str
        :param _DisplayData: 展示数据
        :type DisplayData: str
        :param _Id: 规则ID
        :type Id: int
        """
        self._Name = None
        self._LogType = None
        self._Condition = None
        self._TimeRange = None
        self._Query = None
        self._Flag = None
        self._DisplayData = None
        self._Id = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def LogType(self):
        return self._LogType

    @LogType.setter
    def LogType(self, LogType):
        self._LogType = LogType

    @property
    def Condition(self):
        return self._Condition

    @Condition.setter
    def Condition(self, Condition):
        self._Condition = Condition

    @property
    def TimeRange(self):
        return self._TimeRange

    @TimeRange.setter
    def TimeRange(self, TimeRange):
        self._TimeRange = TimeRange

    @property
    def Query(self):
        return self._Query

    @Query.setter
    def Query(self, Query):
        self._Query = Query

    @property
    def Flag(self):
        return self._Flag

    @Flag.setter
    def Flag(self, Flag):
        self._Flag = Flag

    @property
    def DisplayData(self):
        return self._DisplayData

    @DisplayData.setter
    def DisplayData(self, DisplayData):
        self._DisplayData = DisplayData

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._LogType = params.get("LogType")
        self._Condition = params.get("Condition")
        self._TimeRange = params.get("TimeRange")
        self._Query = params.get("Query")
        self._Flag = params.get("Flag")
        self._DisplayData = params.get("DisplayData")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityButlerInfo(AbstractModel):
    """安全管家列表信息

    """

    def __init__(self):
        r"""
        :param _Id: 数据id
        :type Id: int
        :param _OrderId: 订单id
        :type OrderId: int
        :param _Quuid: cvm id
        :type Quuid: str
        :param _Status: 服务状态 0-服务中,1-已到期 2已销毁
        :type Status: int
        :param _StartTime: 服务开始时间
        :type StartTime: str
        :param _EndTime: 服务结束时间
        :type EndTime: str
        :param _HostName: 主机名称
        :type HostName: str
        :param _HostIp: 主机Ip
        :type HostIp: str
        :param _Uuid: 主机 uuid
        :type Uuid: str
        :param _RiskCount: 主机风险数
        :type RiskCount: int
        """
        self._Id = None
        self._OrderId = None
        self._Quuid = None
        self._Status = None
        self._StartTime = None
        self._EndTime = None
        self._HostName = None
        self._HostIp = None
        self._Uuid = None
        self._RiskCount = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def RiskCount(self):
        return self._RiskCount

    @RiskCount.setter
    def RiskCount(self, RiskCount):
        self._RiskCount = RiskCount


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._OrderId = params.get("OrderId")
        self._Quuid = params.get("Quuid")
        self._Status = params.get("Status")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._Uuid = params.get("Uuid")
        self._RiskCount = params.get("RiskCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityDynamic(AbstractModel):
    """安全事件消息数据。

    """

    def __init__(self):
        r"""
        :param _Uuid: 主机安全客户端UUID。
        :type Uuid: str
        :param _EventTime: 安全事件发生时间。
        :type EventTime: str
        :param _EventType: 安全事件类型。
<li>MALWARE：木马事件</li>
<li>NON_LOCAL_LOGIN：异地登录</li>
<li>BRUTEATTACK_SUCCESS：密码破解成功</li>
<li>VUL：漏洞</li>
<li>BASELINE：安全基线</li>
        :type EventType: str
        :param _Message: 安全事件消息。
        :type Message: str
        :param _SecurityLevel: 安全事件等级。
<li>RISK: 严重</li>
<li>HIGH: 高危</li>
<li>NORMAL: 中危</li>
<li>LOW: 低危</li>
<li>UNKNOWNED: 可疑</li>
        :type SecurityLevel: str
        """
        self._Uuid = None
        self._EventTime = None
        self._EventType = None
        self._Message = None
        self._SecurityLevel = None

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def EventTime(self):
        return self._EventTime

    @EventTime.setter
    def EventTime(self, EventTime):
        self._EventTime = EventTime

    @property
    def EventType(self):
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def Message(self):
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def SecurityLevel(self):
        return self._SecurityLevel

    @SecurityLevel.setter
    def SecurityLevel(self, SecurityLevel):
        self._SecurityLevel = SecurityLevel


    def _deserialize(self, params):
        self._Uuid = params.get("Uuid")
        self._EventTime = params.get("EventTime")
        self._EventType = params.get("EventType")
        self._Message = params.get("Message")
        self._SecurityLevel = params.get("SecurityLevel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityEventInfo(AbstractModel):
    """安全事件统计列表

    """

    def __init__(self):
        r"""
        :param _EventCnt: 安全事件数
        :type EventCnt: int
        :param _UuidCnt: 受影响机器数
        :type UuidCnt: int
        """
        self._EventCnt = None
        self._UuidCnt = None

    @property
    def EventCnt(self):
        return self._EventCnt

    @EventCnt.setter
    def EventCnt(self, EventCnt):
        self._EventCnt = EventCnt

    @property
    def UuidCnt(self):
        return self._UuidCnt

    @UuidCnt.setter
    def UuidCnt(self, UuidCnt):
        self._UuidCnt = UuidCnt


    def _deserialize(self, params):
        self._EventCnt = params.get("EventCnt")
        self._UuidCnt = params.get("UuidCnt")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SecurityTrend(AbstractModel):
    """安全趋势统计数据。

    """

    def __init__(self):
        r"""
        :param _Date: 事件时间。
        :type Date: str
        :param _EventNum: 事件数量。
        :type EventNum: int
        """
        self._Date = None
        self._EventNum = None

    @property
    def Date(self):
        return self._Date

    @Date.setter
    def Date(self, Date):
        self._Date = Date

    @property
    def EventNum(self):
        return self._EventNum

    @EventNum.setter
    def EventNum(self, EventNum):
        self._EventNum = EventNum


    def _deserialize(self, params):
        self._Date = params.get("Date")
        self._EventNum = params.get("EventNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SeparateMalwaresRequest(AbstractModel):
    """SeparateMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马事件ID数组。(最大100条)
        :type Ids: list of int non-negative
        :param _KillProcess: 是否杀掉进程
        :type KillProcess: bool
        """
        self._Ids = None
        self._KillProcess = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def KillProcess(self):
        return self._KillProcess

    @KillProcess.setter
    def KillProcess(self, KillProcess):
        self._KillProcess = KillProcess


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._KillProcess = params.get("KillProcess")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SeparateMalwaresResponse(AbstractModel):
    """SeparateMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SuccessIds: 隔离成功的id数组，若无则返回空数组
        :type SuccessIds: list of int non-negative
        :param _FailedIds: 隔离失败的id数组，若无则返回空数组
        :type FailedIds: list of int non-negative
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SuccessIds = None
        self._FailedIds = None
        self._RequestId = None

    @property
    def SuccessIds(self):
        return self._SuccessIds

    @SuccessIds.setter
    def SuccessIds(self, SuccessIds):
        self._SuccessIds = SuccessIds

    @property
    def FailedIds(self):
        return self._FailedIds

    @FailedIds.setter
    def FailedIds(self, FailedIds):
        self._FailedIds = FailedIds

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SuccessIds = params.get("SuccessIds")
        self._FailedIds = params.get("FailedIds")
        self._RequestId = params.get("RequestId")


class SetBashEventsStatusRequest(AbstractModel):
    """SetBashEventsStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: ID数组，最大100条。
        :type Ids: list of int non-negative
        :param _Status: 新状态(0-待处理 1-高危 2-正常)
        :type Status: int
        """
        self._Ids = None
        self._Status = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SetBashEventsStatusResponse(AbstractModel):
    """SetBashEventsStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class SetLocalStorageExpireRequest(AbstractModel):
    """SetLocalStorageExpire请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Key: 键
        :type Key: str
        :param _Expire: 过期时间（单位：秒）
        :type Expire: int
        """
        self._Key = None
        self._Expire = None

    @property
    def Key(self):
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Expire(self):
        return self._Expire

    @Expire.setter
    def Expire(self, Expire):
        self._Expire = Expire


    def _deserialize(self, params):
        self._Key = params.get("Key")
        self._Expire = params.get("Expire")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SetLocalStorageExpireResponse(AbstractModel):
    """SetLocalStorageExpire返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class SetLocalStorageItemRequest(AbstractModel):
    """SetLocalStorageItem请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Key: 键
        :type Key: str
        :param _Value: 值
        :type Value: str
        :param _Expire: 失效时间（单位；秒）
        :type Expire: int
        """
        self._Key = None
        self._Value = None
        self._Expire = None

    @property
    def Key(self):
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Expire(self):
        return self._Expire

    @Expire.setter
    def Expire(self, Expire):
        self._Expire = Expire


    def _deserialize(self, params):
        self._Key = params.get("Key")
        self._Value = params.get("Value")
        self._Expire = params.get("Expire")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SetLocalStorageItemResponse(AbstractModel):
    """SetLocalStorageItem返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class StandardModeConfig(AbstractModel):
    """标准模式阻断配置

    """

    def __init__(self):
        r"""
        :param _Ttl: 阻断时长，单位：秒
        :type Ttl: int
        """
        self._Ttl = None

    @property
    def Ttl(self):
        return self._Ttl

    @Ttl.setter
    def Ttl(self, Ttl):
        self._Ttl = Ttl


    def _deserialize(self, params):
        self._Ttl = params.get("Ttl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class StartBaselineDetectRequest(AbstractModel):
    """StartBaselineDetect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Param: 基线检测参数
        :type Param: :class:`tencentcloud.cwp.v20180228.models.BaselineDetectParam`
        """
        self._Param = None

    @property
    def Param(self):
        return self._Param

    @Param.setter
    def Param(self, Param):
        self._Param = Param


    def _deserialize(self, params):
        if params.get("Param") is not None:
            self._Param = BaselineDetectParam()
            self._Param._deserialize(params.get("Param"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class StartBaselineDetectResponse(AbstractModel):
    """StartBaselineDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 扫描任务ID
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaskId = None
        self._RequestId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class StopAssetScanRequest(AbstractModel):
    """StopAssetScan请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskId: 任务Id
        :type TaskId: int
        """
        self._TaskId = None

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId


    def _deserialize(self, params):
        self._TaskId = params.get("TaskId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class StopAssetScanResponse(AbstractModel):
    """StopAssetScan返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class StopBaselineDetectRequest(AbstractModel):
    """StopBaselineDetect请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TaskIds: 取消任务ID集合
        :type TaskIds: list of int
        """
        self._TaskIds = None

    @property
    def TaskIds(self):
        return self._TaskIds

    @TaskIds.setter
    def TaskIds(self, TaskIds):
        self._TaskIds = TaskIds


    def _deserialize(self, params):
        self._TaskIds = params.get("TaskIds")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class StopBaselineDetectResponse(AbstractModel):
    """StopBaselineDetect返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class StopNoticeBanTipsRequest(AbstractModel):
    """StopNoticeBanTips请求参数结构体

    """


class StopNoticeBanTipsResponse(AbstractModel):
    """StopNoticeBanTips返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class Strategy(AbstractModel):
    """基线安全用户策略信息

    """

    def __init__(self):
        r"""
        :param _StrategyName: 策略名
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyName: str
        :param _StrategyId: 策略id
注意：此字段可能返回 null，表示取不到有效值。
        :type StrategyId: int
        :param _RuleCount: 基线检测项总数
注意：此字段可能返回 null，表示取不到有效值。
        :type RuleCount: int
        :param _HostCount: 主机数量
注意：此字段可能返回 null，表示取不到有效值。
        :type HostCount: int
        :param _ScanCycle: 扫描周期
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanCycle: int
        :param _ScanAt: 扫描时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ScanAt: str
        :param _Enabled: 是否可用
注意：此字段可能返回 null，表示取不到有效值。
        :type Enabled: int
        :param _PassRate: 通过率
注意：此字段可能返回 null，表示取不到有效值。
        :type PassRate: int
        :param _CategoryIds: 基线id
注意：此字段可能返回 null，表示取不到有效值。
        :type CategoryIds: str
        :param _IsDefault: 是否默认策略
注意：此字段可能返回 null，表示取不到有效值。
        :type IsDefault: int
        """
        self._StrategyName = None
        self._StrategyId = None
        self._RuleCount = None
        self._HostCount = None
        self._ScanCycle = None
        self._ScanAt = None
        self._Enabled = None
        self._PassRate = None
        self._CategoryIds = None
        self._IsDefault = None

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def RuleCount(self):
        return self._RuleCount

    @RuleCount.setter
    def RuleCount(self, RuleCount):
        self._RuleCount = RuleCount

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def ScanCycle(self):
        return self._ScanCycle

    @ScanCycle.setter
    def ScanCycle(self, ScanCycle):
        self._ScanCycle = ScanCycle

    @property
    def ScanAt(self):
        return self._ScanAt

    @ScanAt.setter
    def ScanAt(self, ScanAt):
        self._ScanAt = ScanAt

    @property
    def Enabled(self):
        return self._Enabled

    @Enabled.setter
    def Enabled(self, Enabled):
        self._Enabled = Enabled

    @property
    def PassRate(self):
        return self._PassRate

    @PassRate.setter
    def PassRate(self, PassRate):
        self._PassRate = PassRate

    @property
    def CategoryIds(self):
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds

    @property
    def IsDefault(self):
        return self._IsDefault

    @IsDefault.setter
    def IsDefault(self, IsDefault):
        self._IsDefault = IsDefault


    def _deserialize(self, params):
        self._StrategyName = params.get("StrategyName")
        self._StrategyId = params.get("StrategyId")
        self._RuleCount = params.get("RuleCount")
        self._HostCount = params.get("HostCount")
        self._ScanCycle = params.get("ScanCycle")
        self._ScanAt = params.get("ScanAt")
        self._Enabled = params.get("Enabled")
        self._PassRate = params.get("PassRate")
        self._CategoryIds = params.get("CategoryIds")
        self._IsDefault = params.get("IsDefault")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SwitchBashRulesRequest(AbstractModel):
    """SwitchBashRules请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则ID
        :type Id: int
        :param _Disabled: 是否禁用
        :type Disabled: int
        """
        self._Id = None
        self._Disabled = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Disabled(self):
        return self._Disabled

    @Disabled.setter
    def Disabled(self, Disabled):
        self._Disabled = Disabled


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Disabled = params.get("Disabled")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SwitchBashRulesResponse(AbstractModel):
    """SwitchBashRules返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class SyncAssetScanRequest(AbstractModel):
    """SyncAssetScan请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Sync: 是否同步：true-是 false-否；默认false
        :type Sync: bool
        """
        self._Sync = None

    @property
    def Sync(self):
        return self._Sync

    @Sync.setter
    def Sync(self, Sync):
        self._Sync = Sync


    def _deserialize(self, params):
        self._Sync = params.get("Sync")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SyncAssetScanResponse(AbstractModel):
    """SyncAssetScan返回参数结构体

    """

    def __init__(self):
        r"""
        :param _State: 枚举值有(大写)：NOTASK（没有同步任务），SYNCING（同步中），FINISHED（同步完成）
        :type State: str
        :param _LatestStartTime: 最新开始同步时间
        :type LatestStartTime: str
        :param _LatestEndTime: 最新结束同步时间
        :type LatestEndTime: str
        :param _TaskId: 任务ID
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._State = None
        self._LatestStartTime = None
        self._LatestEndTime = None
        self._TaskId = None
        self._RequestId = None

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def LatestStartTime(self):
        return self._LatestStartTime

    @LatestStartTime.setter
    def LatestStartTime(self, LatestStartTime):
        self._LatestStartTime = LatestStartTime

    @property
    def LatestEndTime(self):
        return self._LatestEndTime

    @LatestEndTime.setter
    def LatestEndTime(self, LatestEndTime):
        self._LatestEndTime = LatestEndTime

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._State = params.get("State")
        self._LatestStartTime = params.get("LatestStartTime")
        self._LatestEndTime = params.get("LatestEndTime")
        self._TaskId = params.get("TaskId")
        self._RequestId = params.get("RequestId")


class SyncBaselineDetectSummaryRequest(AbstractModel):
    """SyncBaselineDetectSummary请求参数结构体

    """


class SyncBaselineDetectSummaryResponse(AbstractModel):
    """SyncBaselineDetectSummary返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ProgressRate: 处理进度
        :type ProgressRate: int
        :param _NotPassPolicyCount: 未通过策略总数
        :type NotPassPolicyCount: int
        :param _HostCount: 主机总数
        :type HostCount: int
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        :param _WillFirstScan: 1:即将进行首次扫描   0:已经扫描过了
        :type WillFirstScan: int
        :param _DetectingTaskIds: 正在检测的任务ID
        :type DetectingTaskIds: list of int
        :param _LeftMins: 扫描中剩余时间(分钟)
        :type LeftMins: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ProgressRate = None
        self._NotPassPolicyCount = None
        self._HostCount = None
        self._StartTime = None
        self._EndTime = None
        self._WillFirstScan = None
        self._DetectingTaskIds = None
        self._LeftMins = None
        self._RequestId = None

    @property
    def ProgressRate(self):
        return self._ProgressRate

    @ProgressRate.setter
    def ProgressRate(self, ProgressRate):
        self._ProgressRate = ProgressRate

    @property
    def NotPassPolicyCount(self):
        return self._NotPassPolicyCount

    @NotPassPolicyCount.setter
    def NotPassPolicyCount(self, NotPassPolicyCount):
        self._NotPassPolicyCount = NotPassPolicyCount

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def WillFirstScan(self):
        return self._WillFirstScan

    @WillFirstScan.setter
    def WillFirstScan(self, WillFirstScan):
        self._WillFirstScan = WillFirstScan

    @property
    def DetectingTaskIds(self):
        return self._DetectingTaskIds

    @DetectingTaskIds.setter
    def DetectingTaskIds(self, DetectingTaskIds):
        self._DetectingTaskIds = DetectingTaskIds

    @property
    def LeftMins(self):
        return self._LeftMins

    @LeftMins.setter
    def LeftMins(self, LeftMins):
        self._LeftMins = LeftMins

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ProgressRate = params.get("ProgressRate")
        self._NotPassPolicyCount = params.get("NotPassPolicyCount")
        self._HostCount = params.get("HostCount")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._WillFirstScan = params.get("WillFirstScan")
        self._DetectingTaskIds = params.get("DetectingTaskIds")
        self._LeftMins = params.get("LeftMins")
        self._RequestId = params.get("RequestId")


class SyncMachinesRequest(AbstractModel):
    """SyncMachines请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Sync: 是否同步
        :type Sync: bool
        """
        self._Sync = None

    @property
    def Sync(self):
        return self._Sync

    @Sync.setter
    def Sync(self, Sync):
        self._Sync = Sync


    def _deserialize(self, params):
        self._Sync = params.get("Sync")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SyncMachinesResponse(AbstractModel):
    """SyncMachines返回参数结构体

    """

    def __init__(self):
        r"""
        :param _State: 枚举值有(大写)：NOTASK（没有同步任务），SYNCING（同步中），FINISHED（同步完成）
        :type State: str
        :param _LatestStartTime: 最新开始同步时间
        :type LatestStartTime: str
        :param _LatestEndTime: 最新同步结束时间
        :type LatestEndTime: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._State = None
        self._LatestStartTime = None
        self._LatestEndTime = None
        self._RequestId = None

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def LatestStartTime(self):
        return self._LatestStartTime

    @LatestStartTime.setter
    def LatestStartTime(self, LatestStartTime):
        self._LatestStartTime = LatestStartTime

    @property
    def LatestEndTime(self):
        return self._LatestEndTime

    @LatestEndTime.setter
    def LatestEndTime(self, LatestEndTime):
        self._LatestEndTime = LatestEndTime

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._State = params.get("State")
        self._LatestStartTime = params.get("LatestStartTime")
        self._LatestEndTime = params.get("LatestEndTime")
        self._RequestId = params.get("RequestId")


class Tag(AbstractModel):
    """标签信息

    """

    def __init__(self):
        r"""
        :param _Id: 标签ID
        :type Id: int
        :param _Name: 标签名
        :type Name: str
        :param _Count: 服务器数
        :type Count: int
        """
        self._Id = None
        self._Name = None
        self._Count = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TagMachine(AbstractModel):
    """标签相关服务器信息

    """

    def __init__(self):
        r"""
        :param _Id: ID
        :type Id: str
        :param _Quuid: 主机ID
        :type Quuid: str
        :param _MachineName: 主机名称
        :type MachineName: str
        :param _MachineIp: 主机内网IP
        :type MachineIp: str
        :param _MachineWanIp: 主机外网IP
        :type MachineWanIp: str
        :param _MachineRegion: 主机区域
        :type MachineRegion: str
        :param _MachineType: 主机区域类型
        :type MachineType: str
        """
        self._Id = None
        self._Quuid = None
        self._MachineName = None
        self._MachineIp = None
        self._MachineWanIp = None
        self._MachineRegion = None
        self._MachineType = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def MachineName(self):
        return self._MachineName

    @MachineName.setter
    def MachineName(self, MachineName):
        self._MachineName = MachineName

    @property
    def MachineIp(self):
        return self._MachineIp

    @MachineIp.setter
    def MachineIp(self, MachineIp):
        self._MachineIp = MachineIp

    @property
    def MachineWanIp(self):
        return self._MachineWanIp

    @MachineWanIp.setter
    def MachineWanIp(self, MachineWanIp):
        self._MachineWanIp = MachineWanIp

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Quuid = params.get("Quuid")
        self._MachineName = params.get("MachineName")
        self._MachineIp = params.get("MachineIp")
        self._MachineWanIp = params.get("MachineWanIp")
        self._MachineRegion = params.get("MachineRegion")
        self._MachineType = params.get("MachineType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Tags(AbstractModel):
    """平台标签

    """

    def __init__(self):
        r"""
        :param _TagKey: 标签键
        :type TagKey: str
        :param _TagValue: 标签值
        :type TagValue: str
        """
        self._TagKey = None
        self._TagValue = None

    @property
    def TagKey(self):
        return self._TagKey

    @TagKey.setter
    def TagKey(self, TagKey):
        self._TagKey = TagKey

    @property
    def TagValue(self):
        return self._TagValue

    @TagValue.setter
    def TagValue(self, TagValue):
        self._TagValue = TagValue


    def _deserialize(self, params):
        self._TagKey = params.get("TagKey")
        self._TagValue = params.get("TagValue")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TaskStatus(AbstractModel):
    """任务扫描状态列表

    """

    def __init__(self):
        r"""
        :param _Scanning: 扫描中（包含初始化）
        :type Scanning: str
        :param _Ok: 扫描终止（包含终止中）
        :type Ok: str
        :param _Fail: 扫描失败
        :type Fail: str
        :param _Stop: 扫描失败（提示具体原因：扫描超时、客户端版本低、客户端离线）
注意：此字段可能返回 null，表示取不到有效值。
        :type Stop: str
        """
        self._Scanning = None
        self._Ok = None
        self._Fail = None
        self._Stop = None

    @property
    def Scanning(self):
        return self._Scanning

    @Scanning.setter
    def Scanning(self, Scanning):
        self._Scanning = Scanning

    @property
    def Ok(self):
        return self._Ok

    @Ok.setter
    def Ok(self, Ok):
        self._Ok = Ok

    @property
    def Fail(self):
        return self._Fail

    @Fail.setter
    def Fail(self, Fail):
        self._Fail = Fail

    @property
    def Stop(self):
        return self._Stop

    @Stop.setter
    def Stop(self, Stop):
        self._Stop = Stop


    def _deserialize(self, params):
        self._Scanning = params.get("Scanning")
        self._Ok = params.get("Ok")
        self._Fail = params.get("Fail")
        self._Stop = params.get("Stop")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TestWebHookRuleRequest(AbstractModel):
    """TestWebHookRule请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Id: 规则Id
        :type Id: int
        :param _Data: 测试内容
        :type Data: str
        """
        self._Id = None
        self._Data = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Data = params.get("Data")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TestWebHookRuleResponse(AbstractModel):
    """TestWebHookRule返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class TopInfo(AbstractModel):
    """网络攻击top统计数据

    """

    def __init__(self):
        r"""
        :param _Value: top统计数据，如ip、漏洞名等
        :type Value: str
        :param _Count: top统计计数
        :type Count: int
        """
        self._Value = None
        self._Count = None

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        self._Value = params.get("Value")
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TrustMalwaresRequest(AbstractModel):
    """TrustMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马ID数组（单次不超过的最大条数：100）
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TrustMalwaresResponse(AbstractModel):
    """TrustMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UntrustMalwaresRequest(AbstractModel):
    """UntrustMalwares请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Ids: 木马ID数组 (最大100条)
        :type Ids: list of int non-negative
        """
        self._Ids = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UntrustMalwaresResponse(AbstractModel):
    """UntrustMalwares返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UpdateBaselineStrategyRequest(AbstractModel):
    """UpdateBaselineStrategy请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StrategyId: 策略id
        :type StrategyId: int
        :param _StrategyName: 策略名称
        :type StrategyName: str
        :param _ScanCycle: 检测周期
        :type ScanCycle: int
        :param _ScanAt: 定期检测时间，该时间下发扫描
        :type ScanAt: str
        :param _CategoryIds: 该策略下选择的基线id数组
        :type CategoryIds: list of str
        :param _IsGlobal: 扫描范围是否全部服务器, 1:是  0:否, 为1则为全部专业版主机
        :type IsGlobal: int
        :param _MachineType: 云主机类型：
cvm：腾讯云服务器
bm：裸金属
ecm：边缘计算主机
lh:轻量应用服务器
other:混合云机器
        :type MachineType: str
        :param _RegionCode: 主机地域 ap-guangzhou
        :type RegionCode: str
        :param _Quuids: 主机id数组
        :type Quuids: list of str
        """
        self._StrategyId = None
        self._StrategyName = None
        self._ScanCycle = None
        self._ScanAt = None
        self._CategoryIds = None
        self._IsGlobal = None
        self._MachineType = None
        self._RegionCode = None
        self._Quuids = None

    @property
    def StrategyId(self):
        return self._StrategyId

    @StrategyId.setter
    def StrategyId(self, StrategyId):
        self._StrategyId = StrategyId

    @property
    def StrategyName(self):
        return self._StrategyName

    @StrategyName.setter
    def StrategyName(self, StrategyName):
        self._StrategyName = StrategyName

    @property
    def ScanCycle(self):
        return self._ScanCycle

    @ScanCycle.setter
    def ScanCycle(self, ScanCycle):
        self._ScanCycle = ScanCycle

    @property
    def ScanAt(self):
        return self._ScanAt

    @ScanAt.setter
    def ScanAt(self, ScanAt):
        self._ScanAt = ScanAt

    @property
    def CategoryIds(self):
        return self._CategoryIds

    @CategoryIds.setter
    def CategoryIds(self, CategoryIds):
        self._CategoryIds = CategoryIds

    @property
    def IsGlobal(self):
        return self._IsGlobal

    @IsGlobal.setter
    def IsGlobal(self, IsGlobal):
        self._IsGlobal = IsGlobal

    @property
    def MachineType(self):
        return self._MachineType

    @MachineType.setter
    def MachineType(self, MachineType):
        self._MachineType = MachineType

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._StrategyId = params.get("StrategyId")
        self._StrategyName = params.get("StrategyName")
        self._ScanCycle = params.get("ScanCycle")
        self._ScanAt = params.get("ScanAt")
        self._CategoryIds = params.get("CategoryIds")
        self._IsGlobal = params.get("IsGlobal")
        self._MachineType = params.get("MachineType")
        self._RegionCode = params.get("RegionCode")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UpdateBaselineStrategyResponse(AbstractModel):
    """UpdateBaselineStrategy返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UpdateHostLoginWhiteObj(AbstractModel):
    """编辑白名单实体

    """

    def __init__(self):
        r"""
        :param _Places: 地域信息数组
        :type Places: list of Place
        :param _SrcIp: 来源ip
        :type SrcIp: str
        :param _UserName: 用户名
        :type UserName: str
        :param _Remark: 备注信息
        :type Remark: str
        :param _Id: 要更新的数据id
        :type Id: int
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        """
        self._Places = None
        self._SrcIp = None
        self._UserName = None
        self._Remark = None
        self._Id = None
        self._StartTime = None
        self._EndTime = None

    @property
    def Places(self):
        return self._Places

    @Places.setter
    def Places(self, Places):
        self._Places = Places

    @property
    def SrcIp(self):
        return self._SrcIp

    @SrcIp.setter
    def SrcIp(self, SrcIp):
        self._SrcIp = SrcIp

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        if params.get("Places") is not None:
            self._Places = []
            for item in params.get("Places"):
                obj = Place()
                obj._deserialize(item)
                self._Places.append(obj)
        self._SrcIp = params.get("SrcIp")
        self._UserName = params.get("UserName")
        self._Remark = params.get("Remark")
        self._Id = params.get("Id")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UpdateMachineTagsRequest(AbstractModel):
    """UpdateMachineTags请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Quuid: 机器 Quuid
        :type Quuid: str
        :param _TagIds: 标签ID，该操作会覆盖原有的标签列表
        :type TagIds: list of int non-negative
        :param _MachineRegion: 服务器地区 如: ap-guangzhou
        :type MachineRegion: str
        :param _MachineArea: 服务器类型(CVM|BM|ECM|LH|Other)
        :type MachineArea: str
        """
        self._Quuid = None
        self._TagIds = None
        self._MachineRegion = None
        self._MachineArea = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def TagIds(self):
        return self._TagIds

    @TagIds.setter
    def TagIds(self, TagIds):
        self._TagIds = TagIds

    @property
    def MachineRegion(self):
        return self._MachineRegion

    @MachineRegion.setter
    def MachineRegion(self, MachineRegion):
        self._MachineRegion = MachineRegion

    @property
    def MachineArea(self):
        return self._MachineArea

    @MachineArea.setter
    def MachineArea(self, MachineArea):
        self._MachineArea = MachineArea


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._TagIds = params.get("TagIds")
        self._MachineRegion = params.get("MachineRegion")
        self._MachineArea = params.get("MachineArea")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UpdateMachineTagsResponse(AbstractModel):
    """UpdateMachineTags返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UsualPlace(AbstractModel):
    """常用登录地

    """

    def __init__(self):
        r"""
        :param _Id: ID。
        :type Id: int
        :param _Uuid: 主机安全客户端唯一标识UUID。
        :type Uuid: str
        :param _CountryId: 国家 ID。
        :type CountryId: int
        :param _ProvinceId: 省份 ID。
        :type ProvinceId: int
        :param _CityId: 城市 ID。
        :type CityId: int
        """
        self._Id = None
        self._Uuid = None
        self._CountryId = None
        self._ProvinceId = None
        self._CityId = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def CountryId(self):
        return self._CountryId

    @CountryId.setter
    def CountryId(self, CountryId):
        self._CountryId = CountryId

    @property
    def ProvinceId(self):
        return self._ProvinceId

    @ProvinceId.setter
    def ProvinceId(self, ProvinceId):
        self._ProvinceId = ProvinceId

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Uuid = params.get("Uuid")
        self._CountryId = params.get("CountryId")
        self._ProvinceId = params.get("ProvinceId")
        self._CityId = params.get("CityId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ValueInfo(AbstractModel):
    """索引的value描述

    """

    def __init__(self):
        r"""
        :param _Tokenizer: 字段的分词符
        :type Tokenizer: str
        :param _Type: 字段类型
        :type Type: str
        :param _SqlFlag: 字段是否开启分析功能
        :type SqlFlag: bool
        :param _ContainZH: 是否包含中文
        :type ContainZH: bool
        """
        self._Tokenizer = None
        self._Type = None
        self._SqlFlag = None
        self._ContainZH = None

    @property
    def Tokenizer(self):
        return self._Tokenizer

    @Tokenizer.setter
    def Tokenizer(self, Tokenizer):
        self._Tokenizer = Tokenizer

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def SqlFlag(self):
        return self._SqlFlag

    @SqlFlag.setter
    def SqlFlag(self, SqlFlag):
        self._SqlFlag = SqlFlag

    @property
    def ContainZH(self):
        return self._ContainZH

    @ContainZH.setter
    def ContainZH(self, ContainZH):
        self._ContainZH = ContainZH


    def _deserialize(self, params):
        self._Tokenizer = params.get("Tokenizer")
        self._Type = params.get("Type")
        self._SqlFlag = params.get("SqlFlag")
        self._ContainZH = params.get("ContainZH")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VersionWhiteConfig(AbstractModel):
    """授权版本白名单配置信息

    """

    def __init__(self):
        r"""
        :param _Deadline: 到期天数
        :type Deadline: int
        :param _LicenseNum: 授权数量
        :type LicenseNum: int
        :param _IsApplyFor: 是否可申请
        :type IsApplyFor: bool
        :param _SourceType: 类型
        :type SourceType: int
        """
        self._Deadline = None
        self._LicenseNum = None
        self._IsApplyFor = None
        self._SourceType = None

    @property
    def Deadline(self):
        return self._Deadline

    @Deadline.setter
    def Deadline(self, Deadline):
        self._Deadline = Deadline

    @property
    def LicenseNum(self):
        return self._LicenseNum

    @LicenseNum.setter
    def LicenseNum(self, LicenseNum):
        self._LicenseNum = LicenseNum

    @property
    def IsApplyFor(self):
        return self._IsApplyFor

    @IsApplyFor.setter
    def IsApplyFor(self, IsApplyFor):
        self._IsApplyFor = IsApplyFor

    @property
    def SourceType(self):
        return self._SourceType

    @SourceType.setter
    def SourceType(self, SourceType):
        self._SourceType = SourceType


    def _deserialize(self, params):
        self._Deadline = params.get("Deadline")
        self._LicenseNum = params.get("LicenseNum")
        self._IsApplyFor = params.get("IsApplyFor")
        self._SourceType = params.get("SourceType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VertexDetail(AbstractModel):
    """点详细信息

    """

    def __init__(self):
        r"""
        :param _Type: 该节点类型，进程:1；网络:2；文件:3；ssh:4
注意：此字段可能返回 null，表示取不到有效值。
        :type Type: int
        :param _Time: 各节点类型用到的时间，2022-11-29 00:00:00 格式
注意：此字段可能返回 null，表示取不到有效值。
        :type Time: str
        :param _AlarmInfo: 告警信息
注意：此字段可能返回 null，表示取不到有效值。
        :type AlarmInfo: list of AlarmInfo
        :param _ProcName: 进程名，当该节点为进程时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type ProcName: str
        :param _CmdLine: 命令行，当该节点为进程时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type CmdLine: str
        :param _Pid: 进程id，当该节点为进程时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type Pid: str
        :param _FileMd5: 文件md5，当该节点为文件时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type FileMd5: str
        :param _FileContent: 文件写入内容，当该节点为文件时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type FileContent: str
        :param _FilePath: 文件路径，当该节点为文件时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type FilePath: str
        :param _FileCreateTime: 文件创建时间，当该节点为文件时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type FileCreateTime: str
        :param _Address: 请求目的地址，当该节点为网络时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type Address: str
        :param _DstPort: 目标端口，当该节点为网络时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type DstPort: int
        :param _SrcIP: 登录源ip，当该节点为ssh时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type SrcIP: str
        :param _User: 登录用户名用户组，当该节点为ssh时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type User: str
        :param _VulName: 漏洞名称，当该节点为漏洞时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type VulName: str
        :param _VulTime: 漏洞利用时间，当该节点为漏洞时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type VulTime: str
        :param _HttpContent: http请求内容，当该节点为漏洞时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type HttpContent: str
        :param _VulSrcIP: 漏洞利用者来源ip，当该节点为漏洞时生效
注意：此字段可能返回 null，表示取不到有效值。
        :type VulSrcIP: str
        :param _VertexId: 点id
注意：此字段可能返回 null，表示取不到有效值。
        :type VertexId: str
        """
        self._Type = None
        self._Time = None
        self._AlarmInfo = None
        self._ProcName = None
        self._CmdLine = None
        self._Pid = None
        self._FileMd5 = None
        self._FileContent = None
        self._FilePath = None
        self._FileCreateTime = None
        self._Address = None
        self._DstPort = None
        self._SrcIP = None
        self._User = None
        self._VulName = None
        self._VulTime = None
        self._HttpContent = None
        self._VulSrcIP = None
        self._VertexId = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Time(self):
        return self._Time

    @Time.setter
    def Time(self, Time):
        self._Time = Time

    @property
    def AlarmInfo(self):
        return self._AlarmInfo

    @AlarmInfo.setter
    def AlarmInfo(self, AlarmInfo):
        self._AlarmInfo = AlarmInfo

    @property
    def ProcName(self):
        return self._ProcName

    @ProcName.setter
    def ProcName(self, ProcName):
        self._ProcName = ProcName

    @property
    def CmdLine(self):
        return self._CmdLine

    @CmdLine.setter
    def CmdLine(self, CmdLine):
        self._CmdLine = CmdLine

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def FileMd5(self):
        return self._FileMd5

    @FileMd5.setter
    def FileMd5(self, FileMd5):
        self._FileMd5 = FileMd5

    @property
    def FileContent(self):
        return self._FileContent

    @FileContent.setter
    def FileContent(self, FileContent):
        self._FileContent = FileContent

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def FileCreateTime(self):
        return self._FileCreateTime

    @FileCreateTime.setter
    def FileCreateTime(self, FileCreateTime):
        self._FileCreateTime = FileCreateTime

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def DstPort(self):
        return self._DstPort

    @DstPort.setter
    def DstPort(self, DstPort):
        self._DstPort = DstPort

    @property
    def SrcIP(self):
        return self._SrcIP

    @SrcIP.setter
    def SrcIP(self, SrcIP):
        self._SrcIP = SrcIP

    @property
    def User(self):
        return self._User

    @User.setter
    def User(self, User):
        self._User = User

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def VulTime(self):
        return self._VulTime

    @VulTime.setter
    def VulTime(self, VulTime):
        self._VulTime = VulTime

    @property
    def HttpContent(self):
        return self._HttpContent

    @HttpContent.setter
    def HttpContent(self, HttpContent):
        self._HttpContent = HttpContent

    @property
    def VulSrcIP(self):
        return self._VulSrcIP

    @VulSrcIP.setter
    def VulSrcIP(self, VulSrcIP):
        self._VulSrcIP = VulSrcIP

    @property
    def VertexId(self):
        return self._VertexId

    @VertexId.setter
    def VertexId(self, VertexId):
        self._VertexId = VertexId


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Time = params.get("Time")
        if params.get("AlarmInfo") is not None:
            self._AlarmInfo = []
            for item in params.get("AlarmInfo"):
                obj = AlarmInfo()
                obj._deserialize(item)
                self._AlarmInfo.append(obj)
        self._ProcName = params.get("ProcName")
        self._CmdLine = params.get("CmdLine")
        self._Pid = params.get("Pid")
        self._FileMd5 = params.get("FileMd5")
        self._FileContent = params.get("FileContent")
        self._FilePath = params.get("FilePath")
        self._FileCreateTime = params.get("FileCreateTime")
        self._Address = params.get("Address")
        self._DstPort = params.get("DstPort")
        self._SrcIP = params.get("SrcIP")
        self._User = params.get("User")
        self._VulName = params.get("VulName")
        self._VulTime = params.get("VulTime")
        self._HttpContent = params.get("HttpContent")
        self._VulSrcIP = params.get("VulSrcIP")
        self._VertexId = params.get("VertexId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VertexInfo(AbstractModel):
    """攻击溯源节点信息

    """

    def __init__(self):
        r"""
        :param _Type: 该结点类型，进程:1；网络:2；文件:3；ssh:4；
        :type Type: int
        :param _Vid: 该节点包含的vid
        :type Vid: str
        :param _ParentVid: 该节点的父节点vid
        :type ParentVid: str
        :param _IsLeaf: 是否叶子
        :type IsLeaf: bool
        :param _ProcNamePrefix: 进程名，当Type=1时使用
注意：此字段可能返回 null，表示取不到有效值。
        :type ProcNamePrefix: str
        :param _ProcNameMd5: 进程名md5，当Type=1时使用
注意：此字段可能返回 null，表示取不到有效值。
        :type ProcNameMd5: str
        :param _CmdLinePrefix: 命令行，当Type=1时使用
注意：此字段可能返回 null，表示取不到有效值。
        :type CmdLinePrefix: str
        :param _CmdLineMd5: 命令行md5，当Type=1时使用
注意：此字段可能返回 null，表示取不到有效值。
        :type CmdLineMd5: str
        :param _FilePathPrefix: 文件路径，当Type=3时使用
注意：此字段可能返回 null，表示取不到有效值。
        :type FilePathPrefix: str
        :param _AddressPrefix: 请求目的地址，当Type=2时使用
注意：此字段可能返回 null，表示取不到有效值。
        :type AddressPrefix: str
        :param _IsWeDetect: 是否漏洞节点
        :type IsWeDetect: bool
        :param _IsAlarm: 是否告警节点
        :type IsAlarm: bool
        :param _FilePathMd5: 文件路径md5，当Type=3时使用
注意：此字段可能返回 null，表示取不到有效值。
        :type FilePathMd5: str
        :param _AddressMd5: 请求目的地址md5，当Type=2时使用
注意：此字段可能返回 null，表示取不到有效值。
        :type AddressMd5: str
        """
        self._Type = None
        self._Vid = None
        self._ParentVid = None
        self._IsLeaf = None
        self._ProcNamePrefix = None
        self._ProcNameMd5 = None
        self._CmdLinePrefix = None
        self._CmdLineMd5 = None
        self._FilePathPrefix = None
        self._AddressPrefix = None
        self._IsWeDetect = None
        self._IsAlarm = None
        self._FilePathMd5 = None
        self._AddressMd5 = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Vid(self):
        return self._Vid

    @Vid.setter
    def Vid(self, Vid):
        self._Vid = Vid

    @property
    def ParentVid(self):
        return self._ParentVid

    @ParentVid.setter
    def ParentVid(self, ParentVid):
        self._ParentVid = ParentVid

    @property
    def IsLeaf(self):
        return self._IsLeaf

    @IsLeaf.setter
    def IsLeaf(self, IsLeaf):
        self._IsLeaf = IsLeaf

    @property
    def ProcNamePrefix(self):
        return self._ProcNamePrefix

    @ProcNamePrefix.setter
    def ProcNamePrefix(self, ProcNamePrefix):
        self._ProcNamePrefix = ProcNamePrefix

    @property
    def ProcNameMd5(self):
        return self._ProcNameMd5

    @ProcNameMd5.setter
    def ProcNameMd5(self, ProcNameMd5):
        self._ProcNameMd5 = ProcNameMd5

    @property
    def CmdLinePrefix(self):
        return self._CmdLinePrefix

    @CmdLinePrefix.setter
    def CmdLinePrefix(self, CmdLinePrefix):
        self._CmdLinePrefix = CmdLinePrefix

    @property
    def CmdLineMd5(self):
        return self._CmdLineMd5

    @CmdLineMd5.setter
    def CmdLineMd5(self, CmdLineMd5):
        self._CmdLineMd5 = CmdLineMd5

    @property
    def FilePathPrefix(self):
        return self._FilePathPrefix

    @FilePathPrefix.setter
    def FilePathPrefix(self, FilePathPrefix):
        self._FilePathPrefix = FilePathPrefix

    @property
    def AddressPrefix(self):
        return self._AddressPrefix

    @AddressPrefix.setter
    def AddressPrefix(self, AddressPrefix):
        self._AddressPrefix = AddressPrefix

    @property
    def IsWeDetect(self):
        return self._IsWeDetect

    @IsWeDetect.setter
    def IsWeDetect(self, IsWeDetect):
        self._IsWeDetect = IsWeDetect

    @property
    def IsAlarm(self):
        return self._IsAlarm

    @IsAlarm.setter
    def IsAlarm(self, IsAlarm):
        self._IsAlarm = IsAlarm

    @property
    def FilePathMd5(self):
        return self._FilePathMd5

    @FilePathMd5.setter
    def FilePathMd5(self, FilePathMd5):
        self._FilePathMd5 = FilePathMd5

    @property
    def AddressMd5(self):
        return self._AddressMd5

    @AddressMd5.setter
    def AddressMd5(self, AddressMd5):
        self._AddressMd5 = AddressMd5


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Vid = params.get("Vid")
        self._ParentVid = params.get("ParentVid")
        self._IsLeaf = params.get("IsLeaf")
        self._ProcNamePrefix = params.get("ProcNamePrefix")
        self._ProcNameMd5 = params.get("ProcNameMd5")
        self._CmdLinePrefix = params.get("CmdLinePrefix")
        self._CmdLineMd5 = params.get("CmdLineMd5")
        self._FilePathPrefix = params.get("FilePathPrefix")
        self._AddressPrefix = params.get("AddressPrefix")
        self._IsWeDetect = params.get("IsWeDetect")
        self._IsAlarm = params.get("IsAlarm")
        self._FilePathMd5 = params.get("FilePathMd5")
        self._AddressMd5 = params.get("AddressMd5")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulDefenceEvent(AbstractModel):
    """漏洞详细信息

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞ID
        :type VulId: int
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _CveId: cve编号
        :type CveId: str
        :param _Id: 漏洞事件id
        :type Id: int
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _Alias: 主机名
        :type Alias: str
        :param _PrivateIp: 内网ip
        :type PrivateIp: str
        :param _PublicIp: 公网ip
        :type PublicIp: str
        :param _EventType: 0: 尝试攻击(WeDetect) 1:尝试攻击成功(WeDetect) 2:rasp防御事件
        :type EventType: int
        :param _SourceIp: 攻击源ip
        :type SourceIp: str
        :param _City: 攻击源ip地址所在城市
        :type City: str
        :param _SourcePort: 攻击源端口
        :type SourcePort: list of int non-negative
        :param _CreateTime: 创建事件时间
        :type CreateTime: str
        :param _MergeTime: 更新事件时间
        :type MergeTime: str
        :param _Count: 事件发生次数
        :type Count: int
        :param _Status: 状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除
        :type Status: int
        :param _UpgradeType: 0 专业版,1 旗舰版,2 LH普惠版（仅限LH使用）,3  CVM普惠版（仅限CVM使用）
        :type UpgradeType: int
        :param _FixType: 0 不支持修复，1 支持修复
        :type FixType: int
        :param _Uuid: 主机uuid
        :type Uuid: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._VulId = None
        self._VulName = None
        self._CveId = None
        self._Id = None
        self._Quuid = None
        self._Alias = None
        self._PrivateIp = None
        self._PublicIp = None
        self._EventType = None
        self._SourceIp = None
        self._City = None
        self._SourcePort = None
        self._CreateTime = None
        self._MergeTime = None
        self._Count = None
        self._Status = None
        self._UpgradeType = None
        self._FixType = None
        self._Uuid = None
        self._MachineExtraInfo = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def CveId(self):
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def PrivateIp(self):
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def EventType(self):
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def SourceIp(self):
        return self._SourceIp

    @SourceIp.setter
    def SourceIp(self, SourceIp):
        self._SourceIp = SourceIp

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def SourcePort(self):
        return self._SourcePort

    @SourcePort.setter
    def SourcePort(self, SourcePort):
        self._SourcePort = SourcePort

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MergeTime(self):
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def UpgradeType(self):
        return self._UpgradeType

    @UpgradeType.setter
    def UpgradeType(self, UpgradeType):
        self._UpgradeType = UpgradeType

    @property
    def FixType(self):
        return self._FixType

    @FixType.setter
    def FixType(self, FixType):
        self._FixType = FixType

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._VulName = params.get("VulName")
        self._CveId = params.get("CveId")
        self._Id = params.get("Id")
        self._Quuid = params.get("Quuid")
        self._Alias = params.get("Alias")
        self._PrivateIp = params.get("PrivateIp")
        self._PublicIp = params.get("PublicIp")
        self._EventType = params.get("EventType")
        self._SourceIp = params.get("SourceIp")
        self._City = params.get("City")
        self._SourcePort = params.get("SourcePort")
        self._CreateTime = params.get("CreateTime")
        self._MergeTime = params.get("MergeTime")
        self._Count = params.get("Count")
        self._Status = params.get("Status")
        self._UpgradeType = params.get("UpgradeType")
        self._FixType = params.get("FixType")
        self._Uuid = params.get("Uuid")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulDefenceEventDetail(AbstractModel):
    """漏洞详细信息

    """

    def __init__(self):
        r"""
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _CveId: cve编号
        :type CveId: str
        :param _Id: 漏洞事件id
        :type Id: int
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _Alias: 主机名
        :type Alias: str
        :param _PrivateIp: 内网ip
        :type PrivateIp: str
        :param _PublicIp: 公网ip
        :type PublicIp: str
        :param _EventType: 0: 尝试攻击(WeDetect) 1:尝试攻击成功(WeDetect) 2:rasp防御事件
        :type EventType: int
        :param _SourceIp: 攻击源ip
        :type SourceIp: str
        :param _City: 攻击源ip地址所在城市
        :type City: str
        :param _SourcePort: 攻击源端口
注意：此字段可能返回 null，表示取不到有效值。
        :type SourcePort: list of int non-negative
        :param _CreateTime: 创建事件时间
        :type CreateTime: str
        :param _MergeTime: 更新事件时间
        :type MergeTime: str
        :param _Count: 事件发生次数
        :type Count: int
        :param _Status: 状态 0: 待处理 1:已防御 2:已处理 3: 已忽略 4: 已删除
        :type Status: int
        :param _MachineStatus: ONLINE OFFLINE
        :type MachineStatus: str
        :param _Description: 漏洞描述信息
        :type Description: str
        :param _Fix: 修复建议
        :type Fix: str
        :param _NetworkPayload: 攻击payload
        :type NetworkPayload: str
        :param _Pid: 关联进程pid
        :type Pid: int
        :param _MainClass: 关联进程主类名
        :type MainClass: str
        :param _StackTrace: 堆栈信息(rasp特有)
        :type StackTrace: str
        :param _EventDetail: 漏洞ID相关的事件详情(json array格式 rasp特有)
        :type EventDetail: str
        :param _ExceptionPstree: 主机失陷事件进程树(json格式 WeDetect特有)
        :type ExceptionPstree: str
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._VulName = None
        self._CveId = None
        self._Id = None
        self._Quuid = None
        self._Alias = None
        self._PrivateIp = None
        self._PublicIp = None
        self._EventType = None
        self._SourceIp = None
        self._City = None
        self._SourcePort = None
        self._CreateTime = None
        self._MergeTime = None
        self._Count = None
        self._Status = None
        self._MachineStatus = None
        self._Description = None
        self._Fix = None
        self._NetworkPayload = None
        self._Pid = None
        self._MainClass = None
        self._StackTrace = None
        self._EventDetail = None
        self._ExceptionPstree = None
        self._MachineExtraInfo = None

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def CveId(self):
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def PrivateIp(self):
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def EventType(self):
        return self._EventType

    @EventType.setter
    def EventType(self, EventType):
        self._EventType = EventType

    @property
    def SourceIp(self):
        return self._SourceIp

    @SourceIp.setter
    def SourceIp(self, SourceIp):
        self._SourceIp = SourceIp

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def SourcePort(self):
        return self._SourcePort

    @SourcePort.setter
    def SourcePort(self, SourcePort):
        self._SourcePort = SourcePort

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def MergeTime(self):
        return self._MergeTime

    @MergeTime.setter
    def MergeTime(self, MergeTime):
        self._MergeTime = MergeTime

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def MachineStatus(self):
        return self._MachineStatus

    @MachineStatus.setter
    def MachineStatus(self, MachineStatus):
        self._MachineStatus = MachineStatus

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def Fix(self):
        return self._Fix

    @Fix.setter
    def Fix(self, Fix):
        self._Fix = Fix

    @property
    def NetworkPayload(self):
        return self._NetworkPayload

    @NetworkPayload.setter
    def NetworkPayload(self, NetworkPayload):
        self._NetworkPayload = NetworkPayload

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def MainClass(self):
        return self._MainClass

    @MainClass.setter
    def MainClass(self, MainClass):
        self._MainClass = MainClass

    @property
    def StackTrace(self):
        return self._StackTrace

    @StackTrace.setter
    def StackTrace(self, StackTrace):
        self._StackTrace = StackTrace

    @property
    def EventDetail(self):
        return self._EventDetail

    @EventDetail.setter
    def EventDetail(self, EventDetail):
        self._EventDetail = EventDetail

    @property
    def ExceptionPstree(self):
        return self._ExceptionPstree

    @ExceptionPstree.setter
    def ExceptionPstree(self, ExceptionPstree):
        self._ExceptionPstree = ExceptionPstree

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._VulName = params.get("VulName")
        self._CveId = params.get("CveId")
        self._Id = params.get("Id")
        self._Quuid = params.get("Quuid")
        self._Alias = params.get("Alias")
        self._PrivateIp = params.get("PrivateIp")
        self._PublicIp = params.get("PublicIp")
        self._EventType = params.get("EventType")
        self._SourceIp = params.get("SourceIp")
        self._City = params.get("City")
        self._SourcePort = params.get("SourcePort")
        self._CreateTime = params.get("CreateTime")
        self._MergeTime = params.get("MergeTime")
        self._Count = params.get("Count")
        self._Status = params.get("Status")
        self._MachineStatus = params.get("MachineStatus")
        self._Description = params.get("Description")
        self._Fix = params.get("Fix")
        self._NetworkPayload = params.get("NetworkPayload")
        self._Pid = params.get("Pid")
        self._MainClass = params.get("MainClass")
        self._StackTrace = params.get("StackTrace")
        self._EventDetail = params.get("EventDetail")
        self._ExceptionPstree = params.get("ExceptionPstree")
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulDefenceOverview(AbstractModel):
    """漏洞防御趋势页，包括插件状态及攻防趋势，趋势由三个长度相同，元素一一对应的数组保存，如果某天没有数据将会缺失

    """

    def __init__(self):
        r"""
        :param _Enable: 防御开关：0 关闭 1 开启
        :type Enable: int
        :param _DefendHostCount: 已开启防御主机数
        :type DefendHostCount: int
        :param _ExceptionCount: 插件异常数
        :type ExceptionCount: int
        :param _AttackCounts: 每日攻击趋势
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackCounts: list of int
        :param _DefendCounts: 每日防御趋势
注意：此字段可能返回 null，表示取不到有效值。
        :type DefendCounts: list of int
        :param _Date: 日期
注意：此字段可能返回 null，表示取不到有效值。
        :type Date: list of str
        """
        self._Enable = None
        self._DefendHostCount = None
        self._ExceptionCount = None
        self._AttackCounts = None
        self._DefendCounts = None
        self._Date = None

    @property
    def Enable(self):
        return self._Enable

    @Enable.setter
    def Enable(self, Enable):
        self._Enable = Enable

    @property
    def DefendHostCount(self):
        return self._DefendHostCount

    @DefendHostCount.setter
    def DefendHostCount(self, DefendHostCount):
        self._DefendHostCount = DefendHostCount

    @property
    def ExceptionCount(self):
        return self._ExceptionCount

    @ExceptionCount.setter
    def ExceptionCount(self, ExceptionCount):
        self._ExceptionCount = ExceptionCount

    @property
    def AttackCounts(self):
        return self._AttackCounts

    @AttackCounts.setter
    def AttackCounts(self, AttackCounts):
        self._AttackCounts = AttackCounts

    @property
    def DefendCounts(self):
        return self._DefendCounts

    @DefendCounts.setter
    def DefendCounts(self, DefendCounts):
        self._DefendCounts = DefendCounts

    @property
    def Date(self):
        return self._Date

    @Date.setter
    def Date(self, Date):
        self._Date = Date


    def _deserialize(self, params):
        self._Enable = params.get("Enable")
        self._DefendHostCount = params.get("DefendHostCount")
        self._ExceptionCount = params.get("ExceptionCount")
        self._AttackCounts = params.get("AttackCounts")
        self._DefendCounts = params.get("DefendCounts")
        self._Date = params.get("Date")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulDefencePluginDetail(AbstractModel):
    """单个进程漏洞防御插件状态

    """

    def __init__(self):
        r"""
        :param _Pid: 注入进程Pid
        :type Pid: int
        :param _MainClass: 注入进程主类名
        :type MainClass: str
        :param _Status: 插件状态：0: 注入中, 1: 注入成功, 2: 插件超时, 3: 插件退出, 4: 注入失败 5: 软删除
        :type Status: int
        :param _ErrorLog: 错误日志
        :type ErrorLog: str
        :param _InjectLog: 注入日志
        :type InjectLog: str
        """
        self._Pid = None
        self._MainClass = None
        self._Status = None
        self._ErrorLog = None
        self._InjectLog = None

    @property
    def Pid(self):
        return self._Pid

    @Pid.setter
    def Pid(self, Pid):
        self._Pid = Pid

    @property
    def MainClass(self):
        return self._MainClass

    @MainClass.setter
    def MainClass(self, MainClass):
        self._MainClass = MainClass

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ErrorLog(self):
        return self._ErrorLog

    @ErrorLog.setter
    def ErrorLog(self, ErrorLog):
        self._ErrorLog = ErrorLog

    @property
    def InjectLog(self):
        return self._InjectLog

    @InjectLog.setter
    def InjectLog(self, InjectLog):
        self._InjectLog = InjectLog


    def _deserialize(self, params):
        self._Pid = params.get("Pid")
        self._MainClass = params.get("MainClass")
        self._Status = params.get("Status")
        self._ErrorLog = params.get("ErrorLog")
        self._InjectLog = params.get("InjectLog")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulDefencePluginStatus(AbstractModel):
    """主机漏洞防御插件信息

    """

    def __init__(self):
        r"""
        :param _Quuid: 主机quuid
        :type Quuid: str
        :param _Alias: 主机别名
        :type Alias: str
        :param _PrivateIp: 内网ip
        :type PrivateIp: str
        :param _PublicIp: 公网ip
        :type PublicIp: str
        :param _Exception: 插件状态：0 正常，1 异常
        :type Exception: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _ModifyTime: 最后跟新时间
        :type ModifyTime: str
        """
        self._Quuid = None
        self._Alias = None
        self._PrivateIp = None
        self._PublicIp = None
        self._Exception = None
        self._CreateTime = None
        self._ModifyTime = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Alias(self):
        return self._Alias

    @Alias.setter
    def Alias(self, Alias):
        self._Alias = Alias

    @property
    def PrivateIp(self):
        return self._PrivateIp

    @PrivateIp.setter
    def PrivateIp(self, PrivateIp):
        self._PrivateIp = PrivateIp

    @property
    def PublicIp(self):
        return self._PublicIp

    @PublicIp.setter
    def PublicIp(self, PublicIp):
        self._PublicIp = PublicIp

    @property
    def Exception(self):
        return self._Exception

    @Exception.setter
    def Exception(self, Exception):
        self._Exception = Exception

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._Alias = params.get("Alias")
        self._PrivateIp = params.get("PrivateIp")
        self._PublicIp = params.get("PublicIp")
        self._Exception = params.get("Exception")
        self._CreateTime = params.get("CreateTime")
        self._ModifyTime = params.get("ModifyTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulDefenceRangeDetail(AbstractModel):
    """漏洞防御范围详情

    """

    def __init__(self):
        r"""
        :param _VulName: 漏洞名称
        :type VulName: str
        :param _Label: 标签
        :type Label: str
        :param _Level: 漏洞级别：  1低危 2中危 3高危 4严重
        :type Level: int
        :param _CvssScore: cvss 分数
        :type CvssScore: float
        :param _CveId: cve id
        :type CveId: str
        :param _PublishTime: 发布时间
        :type PublishTime: str
        :param _VulId: 漏洞id
        :type VulId: int
        """
        self._VulName = None
        self._Label = None
        self._Level = None
        self._CvssScore = None
        self._CveId = None
        self._PublishTime = None
        self._VulId = None

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def Label(self):
        return self._Label

    @Label.setter
    def Label(self, Label):
        self._Label = Label

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def CvssScore(self):
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def CveId(self):
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def PublishTime(self):
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId


    def _deserialize(self, params):
        self._VulName = params.get("VulName")
        self._Label = params.get("Label")
        self._Level = params.get("Level")
        self._CvssScore = params.get("CvssScore")
        self._CveId = params.get("CveId")
        self._PublishTime = params.get("PublishTime")
        self._VulId = params.get("VulId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulDetailInfo(AbstractModel):
    """漏洞详细信息

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞ID
        :type VulId: int
        :param _Level: 漏洞级别
        :type Level: int
        :param _Name: 漏洞名称
        :type Name: str
        :param _CveId: cve编号
        :type CveId: str
        :param _VulCategory: 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 0= 应急漏洞
        :type VulCategory: int
        :param _Descript: 漏洞描述
        :type Descript: str
        :param _Fix: 修复建议
        :type Fix: str
        :param _Reference: 参考链接
        :type Reference: str
        :param _CvssScore: CVSS评分
        :type CvssScore: float
        :param _Cvss: CVSS详情
        :type Cvss: str
        :param _PublishTime: 发布时间
        :type PublishTime: str
        """
        self._VulId = None
        self._Level = None
        self._Name = None
        self._CveId = None
        self._VulCategory = None
        self._Descript = None
        self._Fix = None
        self._Reference = None
        self._CvssScore = None
        self._Cvss = None
        self._PublishTime = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def CveId(self):
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def VulCategory(self):
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def Descript(self):
        return self._Descript

    @Descript.setter
    def Descript(self, Descript):
        self._Descript = Descript

    @property
    def Fix(self):
        return self._Fix

    @Fix.setter
    def Fix(self, Fix):
        self._Fix = Fix

    @property
    def Reference(self):
        return self._Reference

    @Reference.setter
    def Reference(self, Reference):
        self._Reference = Reference

    @property
    def CvssScore(self):
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def Cvss(self):
        return self._Cvss

    @Cvss.setter
    def Cvss(self, Cvss):
        self._Cvss = Cvss

    @property
    def PublishTime(self):
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._Level = params.get("Level")
        self._Name = params.get("Name")
        self._CveId = params.get("CveId")
        self._VulCategory = params.get("VulCategory")
        self._Descript = params.get("Descript")
        self._Fix = params.get("Fix")
        self._Reference = params.get("Reference")
        self._CvssScore = params.get("CvssScore")
        self._Cvss = params.get("Cvss")
        self._PublishTime = params.get("PublishTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulEffectHostList(AbstractModel):
    """漏洞影响主机列表

    """

    def __init__(self):
        r"""
        :param _EventId: 事件id
注意：此字段可能返回 null，表示取不到有效值。
        :type EventId: int
        :param _Status: 状态：0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中 7: 回滚中 8:修复失败
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _LastTime: 最后检测时间
注意：此字段可能返回 null，表示取不到有效值。
        :type LastTime: str
        :param _Level: 危害等级：1-低危；2-中危；3-高危；4-严重
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _Quuid: 主机Quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _Uuid: 主机Uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _HostIp: 主机HostIp
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIp: str
        :param _AliasName: 主机别名
注意：此字段可能返回 null，表示取不到有效值。
        :type AliasName: str
        :param _Tags: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tags: list of str
        :param _Description: 说明
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _HostVersion: 版本信息：0-基础版 1-专业版 2-旗舰版 3-普惠版
注意：此字段可能返回 null，表示取不到有效值。
        :type HostVersion: int
        :param _IsSupportAutoFix: 是否能自动修复 0 :漏洞不可自动修复，  1：可自动修复， 2：客户端已离线， 3：主机不是旗舰版只能手动修复， 4：机型不允许 ，5：修复中 ，6：已修复， 7：检测中  9:修复失败，10:已忽略 11:漏洞只支持linux不支持Windows 12：漏洞只支持Windows不支持linux，13:修复失败但此时主机已离线，14:修复失败但此时主机不是旗舰版， 15:已手动修复
注意：此字段可能返回 null，表示取不到有效值。
        :type IsSupportAutoFix: int
        :param _FixStatusMsg: 失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type FixStatusMsg: str
        :param _FirstDiscoveryTime: 首次发现时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FirstDiscoveryTime: str
        :param _InstanceState: 实例状态："PENDING"-创建中 "LAUNCH_FAILED"-创建失败 "RUNNING"-运行中 "STOPPED"-关机 "STARTING"-表示开机中 "STOPPING"-表示关机中 "REBOOTING"-重启中 "SHUTDOWN"-表示停止待销毁 "TERMINATING"-表示销毁中 "
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceState: str
        :param _PublicIpAddresses: 外网ip
注意：此字段可能返回 null，表示取不到有效值。
        :type PublicIpAddresses: str
        :param _CloudTags: 云标签信息
注意：此字段可能返回 null，表示取不到有效值。
        :type CloudTags: list of Tags
        :param _MachineExtraInfo: 主机额外信息
注意：此字段可能返回 null，表示取不到有效值。
        :type MachineExtraInfo: :class:`tencentcloud.cwp.v20180228.models.MachineExtraInfo`
        """
        self._EventId = None
        self._Status = None
        self._LastTime = None
        self._Level = None
        self._Quuid = None
        self._Uuid = None
        self._HostIp = None
        self._AliasName = None
        self._Tags = None
        self._Description = None
        self._HostVersion = None
        self._IsSupportAutoFix = None
        self._FixStatusMsg = None
        self._FirstDiscoveryTime = None
        self._InstanceState = None
        self._PublicIpAddresses = None
        self._CloudTags = None
        self._MachineExtraInfo = None

    @property
    def EventId(self):
        return self._EventId

    @EventId.setter
    def EventId(self, EventId):
        self._EventId = EventId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def LastTime(self):
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def AliasName(self):
        return self._AliasName

    @AliasName.setter
    def AliasName(self, AliasName):
        self._AliasName = AliasName

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def HostVersion(self):
        return self._HostVersion

    @HostVersion.setter
    def HostVersion(self, HostVersion):
        self._HostVersion = HostVersion

    @property
    def IsSupportAutoFix(self):
        return self._IsSupportAutoFix

    @IsSupportAutoFix.setter
    def IsSupportAutoFix(self, IsSupportAutoFix):
        self._IsSupportAutoFix = IsSupportAutoFix

    @property
    def FixStatusMsg(self):
        return self._FixStatusMsg

    @FixStatusMsg.setter
    def FixStatusMsg(self, FixStatusMsg):
        self._FixStatusMsg = FixStatusMsg

    @property
    def FirstDiscoveryTime(self):
        return self._FirstDiscoveryTime

    @FirstDiscoveryTime.setter
    def FirstDiscoveryTime(self, FirstDiscoveryTime):
        self._FirstDiscoveryTime = FirstDiscoveryTime

    @property
    def InstanceState(self):
        return self._InstanceState

    @InstanceState.setter
    def InstanceState(self, InstanceState):
        self._InstanceState = InstanceState

    @property
    def PublicIpAddresses(self):
        return self._PublicIpAddresses

    @PublicIpAddresses.setter
    def PublicIpAddresses(self, PublicIpAddresses):
        self._PublicIpAddresses = PublicIpAddresses

    @property
    def CloudTags(self):
        return self._CloudTags

    @CloudTags.setter
    def CloudTags(self, CloudTags):
        self._CloudTags = CloudTags

    @property
    def MachineExtraInfo(self):
        return self._MachineExtraInfo

    @MachineExtraInfo.setter
    def MachineExtraInfo(self, MachineExtraInfo):
        self._MachineExtraInfo = MachineExtraInfo


    def _deserialize(self, params):
        self._EventId = params.get("EventId")
        self._Status = params.get("Status")
        self._LastTime = params.get("LastTime")
        self._Level = params.get("Level")
        self._Quuid = params.get("Quuid")
        self._Uuid = params.get("Uuid")
        self._HostIp = params.get("HostIp")
        self._AliasName = params.get("AliasName")
        self._Tags = params.get("Tags")
        self._Description = params.get("Description")
        self._HostVersion = params.get("HostVersion")
        self._IsSupportAutoFix = params.get("IsSupportAutoFix")
        self._FixStatusMsg = params.get("FixStatusMsg")
        self._FirstDiscoveryTime = params.get("FirstDiscoveryTime")
        self._InstanceState = params.get("InstanceState")
        self._PublicIpAddresses = params.get("PublicIpAddresses")
        if params.get("CloudTags") is not None:
            self._CloudTags = []
            for item in params.get("CloudTags"):
                obj = Tags()
                obj._deserialize(item)
                self._CloudTags.append(obj)
        if params.get("MachineExtraInfo") is not None:
            self._MachineExtraInfo = MachineExtraInfo()
            self._MachineExtraInfo._deserialize(params.get("MachineExtraInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulEffectModuleInfo(AbstractModel):
    """漏洞影响组件详情

    """

    def __init__(self):
        r"""
        :param _Name: 组件名
        :type Name: str
        :param _Uuids: 影响的主机uuid
        :type Uuids: list of str
        :param _Rule: 组件影响版本
        :type Rule: str
        :param _Path: 组件路径
        :type Path: str
        :param _Version: 组件版本
        :type Version: str
        :param _FixCmd: 修复命令
        :type FixCmd: str
        :param _Quuids: 影响的主机quuid
        :type Quuids: list of str
        """
        self._Name = None
        self._Uuids = None
        self._Rule = None
        self._Path = None
        self._Version = None
        self._FixCmd = None
        self._Quuids = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Uuids(self):
        return self._Uuids

    @Uuids.setter
    def Uuids(self, Uuids):
        self._Uuids = Uuids

    @property
    def Rule(self):
        return self._Rule

    @Rule.setter
    def Rule(self, Rule):
        self._Rule = Rule

    @property
    def Path(self):
        return self._Path

    @Path.setter
    def Path(self, Path):
        self._Path = Path

    @property
    def Version(self):
        return self._Version

    @Version.setter
    def Version(self, Version):
        self._Version = Version

    @property
    def FixCmd(self):
        return self._FixCmd

    @FixCmd.setter
    def FixCmd(self, FixCmd):
        self._FixCmd = FixCmd

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._Uuids = params.get("Uuids")
        self._Rule = params.get("Rule")
        self._Path = params.get("Path")
        self._Version = params.get("Version")
        self._FixCmd = params.get("FixCmd")
        self._Quuids = params.get("Quuids")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulEmergentMsgInfo(AbstractModel):
    """紧急通知实体

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _PublishTime: 漏洞纰漏时间
        :type PublishTime: str
        :param _Name: 漏洞名
        :type Name: str
        """
        self._VulId = None
        self._PublishTime = None
        self._Name = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def PublishTime(self):
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._PublishTime = params.get("PublishTime")
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulFixStatusHostInfo(AbstractModel):
    """查看漏洞修复详情 每台主机每个漏洞修复状态

    """

    def __init__(self):
        r"""
        :param _HostName: 主机名称
        :type HostName: str
        :param _HostIp: 主机ip
        :type HostIp: str
        :param _Quuid: 主机的quuid
        :type Quuid: str
        :param _Status: 状态：0-初始状态；1-已下发任务（修复中）2-完成（成功）；3-修复失败（失败）4-快照创建失败 导致修复失败（未修复）；
        :type Status: int
        :param _ModifyTime: 修复时间
        :type ModifyTime: str
        :param _FailReason: 修复失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        """
        self._HostName = None
        self._HostIp = None
        self._Quuid = None
        self._Status = None
        self._ModifyTime = None
        self._FailReason = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._Quuid = params.get("Quuid")
        self._Status = params.get("Status")
        self._ModifyTime = params.get("ModifyTime")
        self._FailReason = params.get("FailReason")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulFixStatusInfo(AbstractModel):
    """查看漏洞修复详情

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
注意：此字段可能返回 null，表示取不到有效值。
        :type VulId: int
        :param _VulName: 漏洞名称
注意：此字段可能返回 null，表示取不到有效值。
        :type VulName: str
        :param _Progress: 漏洞修复进度 1-100；
        :type Progress: int
        :param _HostList: 漏洞对应主机修复状态
注意：此字段可能返回 null，表示取不到有效值。
        :type HostList: list of VulFixStatusHostInfo
        :param _FailCnt: 漏洞修复失败主机数量
注意：此字段可能返回 null，表示取不到有效值。
        :type FailCnt: int
        :param _FixSuccessCnt: 修复成功的数量
注意：此字段可能返回 null，表示取不到有效值。
        :type FixSuccessCnt: int
        """
        self._VulId = None
        self._VulName = None
        self._Progress = None
        self._HostList = None
        self._FailCnt = None
        self._FixSuccessCnt = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def Progress(self):
        return self._Progress

    @Progress.setter
    def Progress(self, Progress):
        self._Progress = Progress

    @property
    def HostList(self):
        return self._HostList

    @HostList.setter
    def HostList(self, HostList):
        self._HostList = HostList

    @property
    def FailCnt(self):
        return self._FailCnt

    @FailCnt.setter
    def FailCnt(self, FailCnt):
        self._FailCnt = FailCnt

    @property
    def FixSuccessCnt(self):
        return self._FixSuccessCnt

    @FixSuccessCnt.setter
    def FixSuccessCnt(self, FixSuccessCnt):
        self._FixSuccessCnt = FixSuccessCnt


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._VulName = params.get("VulName")
        self._Progress = params.get("Progress")
        if params.get("HostList") is not None:
            self._HostList = []
            for item in params.get("HostList"):
                obj = VulFixStatusHostInfo()
                obj._deserialize(item)
                self._HostList.append(obj)
        self._FailCnt = params.get("FailCnt")
        self._FixSuccessCnt = params.get("FixSuccessCnt")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulFixStatusSnapshotInfo(AbstractModel):
    """机器快照信息

    """

    def __init__(self):
        r"""
        :param _Quuid: cvm id
        :type Quuid: str
        :param _HostName: 主机名称
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        :param _HostIp: 主机ip
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIp: str
        :param _SnapshotName: 快照名称
注意：此字段可能返回 null，表示取不到有效值。
        :type SnapshotName: str
        :param _ModifyTime: 快照创建时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ModifyTime: str
        :param _SnapshotId: 快照id
注意：此字段可能返回 null，表示取不到有效值。
        :type SnapshotId: str
        :param _Id: 记录唯一id
        :type Id: int
        :param _Status: 快照状态 0-初始状态1-快照创建成功；2-快照创建失败；
        :type Status: int
        :param _FailReason: 快照创建失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        """
        self._Quuid = None
        self._HostName = None
        self._HostIp = None
        self._SnapshotName = None
        self._ModifyTime = None
        self._SnapshotId = None
        self._Id = None
        self._Status = None
        self._FailReason = None

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def SnapshotName(self):
        return self._SnapshotName

    @SnapshotName.setter
    def SnapshotName(self, SnapshotName):
        self._SnapshotName = SnapshotName

    @property
    def ModifyTime(self):
        return self._ModifyTime

    @ModifyTime.setter
    def ModifyTime(self, ModifyTime):
        self._ModifyTime = ModifyTime

    @property
    def SnapshotId(self):
        return self._SnapshotId

    @SnapshotId.setter
    def SnapshotId(self, SnapshotId):
        self._SnapshotId = SnapshotId

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason


    def _deserialize(self, params):
        self._Quuid = params.get("Quuid")
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._SnapshotName = params.get("SnapshotName")
        self._ModifyTime = params.get("ModifyTime")
        self._SnapshotId = params.get("SnapshotId")
        self._Id = params.get("Id")
        self._Status = params.get("Status")
        self._FailReason = params.get("FailReason")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulHostTopInfo(AbstractModel):
    """服务器风险top5实体

    """

    def __init__(self):
        r"""
        :param _HostName: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        :param _VulLevelList: 漏洞等级与数量统计列表
注意：此字段可能返回 null，表示取不到有效值。
        :type VulLevelList: list of VulLevelCountInfo
        :param _Quuid: 主机Quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _Score: top评分
注意：此字段可能返回 null，表示取不到有效值。
        :type Score: int
        """
        self._HostName = None
        self._VulLevelList = None
        self._Quuid = None
        self._Score = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def VulLevelList(self):
        return self._VulLevelList

    @VulLevelList.setter
    def VulLevelList(self, VulLevelList):
        self._VulLevelList = VulLevelList

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def Score(self):
        return self._Score

    @Score.setter
    def Score(self, Score):
        self._Score = Score


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        if params.get("VulLevelList") is not None:
            self._VulLevelList = []
            for item in params.get("VulLevelList"):
                obj = VulLevelCountInfo()
                obj._deserialize(item)
                self._VulLevelList.append(obj)
        self._Quuid = params.get("Quuid")
        self._Score = params.get("Score")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulInfoByCveId(AbstractModel):
    """根据cve_id查询漏洞详情

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞id
        :type VulId: int
        :param _FixSwitch: 修复支持情况：0-windows/linux均不支持修复 ;1-windows/linux 均支持修复 ;2-仅linux支持修复;3-仅windows支持修复
        :type FixSwitch: int
        """
        self._VulId = None
        self._FixSwitch = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def FixSwitch(self):
        return self._FixSwitch

    @FixSwitch.setter
    def FixSwitch(self, FixSwitch):
        self._FixSwitch = FixSwitch


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._FixSwitch = params.get("FixSwitch")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulInfoHostInfo(AbstractModel):
    """批量修复漏洞二次弹窗

    """

    def __init__(self):
        r"""
        :param _HostName: 主机名
注意：此字段可能返回 null，表示取不到有效值。
        :type HostName: str
        :param _HostIp: 主机ip
注意：此字段可能返回 null，表示取不到有效值。
        :type HostIp: str
        :param _Tags: 主机标签
注意：此字段可能返回 null，表示取不到有效值。
        :type Tags: list of str
        :param _Quuid: 主机quuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuid: str
        :param _IsSupportAutoFix: 0 :漏洞不可自动修复，  1：可自动修复， 2：客户端已离线， 3：主机不是旗舰版只能手动修复， 4：机型不允许 ，5：修复中 ，6：已修复， 7：检测中, 9:修复失败, 10:已忽略 ,11:漏洞只支持linux不支持Windows, 12：漏洞只支持Windows不支持linux
注意：此字段可能返回 null，表示取不到有效值。
        :type IsSupportAutoFix: int
        :param _Uuid: 主机uuid
注意：此字段可能返回 null，表示取不到有效值。
        :type Uuid: str
        :param _InstanceId: 主机InstanceId
注意：此字段可能返回 null，表示取不到有效值。
        :type InstanceId: str
        """
        self._HostName = None
        self._HostIp = None
        self._Tags = None
        self._Quuid = None
        self._IsSupportAutoFix = None
        self._Uuid = None
        self._InstanceId = None

    @property
    def HostName(self):
        return self._HostName

    @HostName.setter
    def HostName(self, HostName):
        self._HostName = HostName

    @property
    def HostIp(self):
        return self._HostIp

    @HostIp.setter
    def HostIp(self, HostIp):
        self._HostIp = HostIp

    @property
    def Tags(self):
        return self._Tags

    @Tags.setter
    def Tags(self, Tags):
        self._Tags = Tags

    @property
    def Quuid(self):
        return self._Quuid

    @Quuid.setter
    def Quuid(self, Quuid):
        self._Quuid = Quuid

    @property
    def IsSupportAutoFix(self):
        return self._IsSupportAutoFix

    @IsSupportAutoFix.setter
    def IsSupportAutoFix(self, IsSupportAutoFix):
        self._IsSupportAutoFix = IsSupportAutoFix

    @property
    def Uuid(self):
        return self._Uuid

    @Uuid.setter
    def Uuid(self, Uuid):
        self._Uuid = Uuid

    @property
    def InstanceId(self):
        return self._InstanceId

    @InstanceId.setter
    def InstanceId(self, InstanceId):
        self._InstanceId = InstanceId


    def _deserialize(self, params):
        self._HostName = params.get("HostName")
        self._HostIp = params.get("HostIp")
        self._Tags = params.get("Tags")
        self._Quuid = params.get("Quuid")
        self._IsSupportAutoFix = params.get("IsSupportAutoFix")
        self._Uuid = params.get("Uuid")
        self._InstanceId = params.get("InstanceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulInfoList(AbstractModel):
    """主机安全-漏洞管理-漏洞列表

    """

    def __init__(self):
        r"""
        :param _Ids: 漏洞包含的事件id串，多个用“,”分割
        :type Ids: str
        :param _Name: 漏洞名
        :type Name: str
        :param _Status: 0: 待处理 1:忽略  3:已修复  5:检测中 6:修复中  8:修复失败
        :type Status: int
        :param _VulId: 漏洞id
        :type VulId: int
        :param _PublishTime: 漏洞披露事件
        :type PublishTime: str
        :param _LastTime: 最后检测时间
        :type LastTime: str
        :param _HostCount: 影响主机数
        :type HostCount: int
        :param _Level: 漏洞等级 1:低 2:中 3:高 4:严重
        :type Level: int
        :param _From: 废弃字段
注意：此字段可能返回 null，表示取不到有效值。
        :type From: int
        :param _Descript: 描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Descript: str
        :param _PublishTimeWisteria: 废弃字段
注意：此字段可能返回 null，表示取不到有效值。
        :type PublishTimeWisteria: str
        :param _NameWisteria: 废弃字段
注意：此字段可能返回 null，表示取不到有效值。
        :type NameWisteria: str
        :param _DescriptWisteria: 废弃字段
注意：此字段可能返回 null，表示取不到有效值。
        :type DescriptWisteria: str
        :param _StatusStr: 聚合后事件状态串
注意：此字段可能返回 null，表示取不到有效值。
        :type StatusStr: str
        :param _CveId: cve编号
注意：此字段可能返回 null，表示取不到有效值。
        :type CveId: str
        :param _CvssScore: CVSS评分
注意：此字段可能返回 null，表示取不到有效值。
        :type CvssScore: float
        :param _Labels: 漏洞标签 多个逗号分割
注意：此字段可能返回 null，表示取不到有效值。
        :type Labels: str
        :param _FixSwitch: 是否能自动修复且包含能自动修复的主机， 0=否  1=是
注意：此字段可能返回 null，表示取不到有效值。
        :type FixSwitch: int
        :param _TaskId: 最后扫描任务的id
注意：此字段可能返回 null，表示取不到有效值。
        :type TaskId: int
        :param _IsSupportDefense: 是否支持防御， 0:不支持 1:支持
注意：此字段可能返回 null，表示取不到有效值。
        :type IsSupportDefense: int
        :param _DefenseAttackCount: 已防御的攻击次数
注意：此字段可能返回 null，表示取不到有效值。
        :type DefenseAttackCount: int
        :param _FirstAppearTime: 首次出现时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FirstAppearTime: str
        :param _VulCategory: 漏洞类别 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞
注意：此字段可能返回 null，表示取不到有效值。
        :type VulCategory: int
        :param _AttackLevel: 攻击热度级别
注意：此字段可能返回 null，表示取不到有效值。
        :type AttackLevel: int
        :param _FixNoNeedRestart: 漏洞修复后是否需要重启
注意：此字段可能返回 null，表示取不到有效值。
        :type FixNoNeedRestart: bool
        :param _Method: 检测方式0 - 版本比对, 1 - POC验证
注意：此字段可能返回 null，表示取不到有效值。
        :type Method: int
        """
        self._Ids = None
        self._Name = None
        self._Status = None
        self._VulId = None
        self._PublishTime = None
        self._LastTime = None
        self._HostCount = None
        self._Level = None
        self._From = None
        self._Descript = None
        self._PublishTimeWisteria = None
        self._NameWisteria = None
        self._DescriptWisteria = None
        self._StatusStr = None
        self._CveId = None
        self._CvssScore = None
        self._Labels = None
        self._FixSwitch = None
        self._TaskId = None
        self._IsSupportDefense = None
        self._DefenseAttackCount = None
        self._FirstAppearTime = None
        self._VulCategory = None
        self._AttackLevel = None
        self._FixNoNeedRestart = None
        self._Method = None

    @property
    def Ids(self):
        return self._Ids

    @Ids.setter
    def Ids(self, Ids):
        self._Ids = Ids

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def PublishTime(self):
        return self._PublishTime

    @PublishTime.setter
    def PublishTime(self, PublishTime):
        self._PublishTime = PublishTime

    @property
    def LastTime(self):
        return self._LastTime

    @LastTime.setter
    def LastTime(self, LastTime):
        self._LastTime = LastTime

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def From(self):
        return self._From

    @From.setter
    def From(self, From):
        self._From = From

    @property
    def Descript(self):
        return self._Descript

    @Descript.setter
    def Descript(self, Descript):
        self._Descript = Descript

    @property
    def PublishTimeWisteria(self):
        return self._PublishTimeWisteria

    @PublishTimeWisteria.setter
    def PublishTimeWisteria(self, PublishTimeWisteria):
        self._PublishTimeWisteria = PublishTimeWisteria

    @property
    def NameWisteria(self):
        return self._NameWisteria

    @NameWisteria.setter
    def NameWisteria(self, NameWisteria):
        self._NameWisteria = NameWisteria

    @property
    def DescriptWisteria(self):
        return self._DescriptWisteria

    @DescriptWisteria.setter
    def DescriptWisteria(self, DescriptWisteria):
        self._DescriptWisteria = DescriptWisteria

    @property
    def StatusStr(self):
        return self._StatusStr

    @StatusStr.setter
    def StatusStr(self, StatusStr):
        self._StatusStr = StatusStr

    @property
    def CveId(self):
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def CvssScore(self):
        return self._CvssScore

    @CvssScore.setter
    def CvssScore(self, CvssScore):
        self._CvssScore = CvssScore

    @property
    def Labels(self):
        return self._Labels

    @Labels.setter
    def Labels(self, Labels):
        self._Labels = Labels

    @property
    def FixSwitch(self):
        return self._FixSwitch

    @FixSwitch.setter
    def FixSwitch(self, FixSwitch):
        self._FixSwitch = FixSwitch

    @property
    def TaskId(self):
        return self._TaskId

    @TaskId.setter
    def TaskId(self, TaskId):
        self._TaskId = TaskId

    @property
    def IsSupportDefense(self):
        return self._IsSupportDefense

    @IsSupportDefense.setter
    def IsSupportDefense(self, IsSupportDefense):
        self._IsSupportDefense = IsSupportDefense

    @property
    def DefenseAttackCount(self):
        return self._DefenseAttackCount

    @DefenseAttackCount.setter
    def DefenseAttackCount(self, DefenseAttackCount):
        self._DefenseAttackCount = DefenseAttackCount

    @property
    def FirstAppearTime(self):
        return self._FirstAppearTime

    @FirstAppearTime.setter
    def FirstAppearTime(self, FirstAppearTime):
        self._FirstAppearTime = FirstAppearTime

    @property
    def VulCategory(self):
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def AttackLevel(self):
        return self._AttackLevel

    @AttackLevel.setter
    def AttackLevel(self, AttackLevel):
        self._AttackLevel = AttackLevel

    @property
    def FixNoNeedRestart(self):
        return self._FixNoNeedRestart

    @FixNoNeedRestart.setter
    def FixNoNeedRestart(self, FixNoNeedRestart):
        self._FixNoNeedRestart = FixNoNeedRestart

    @property
    def Method(self):
        return self._Method

    @Method.setter
    def Method(self, Method):
        self._Method = Method


    def _deserialize(self, params):
        self._Ids = params.get("Ids")
        self._Name = params.get("Name")
        self._Status = params.get("Status")
        self._VulId = params.get("VulId")
        self._PublishTime = params.get("PublishTime")
        self._LastTime = params.get("LastTime")
        self._HostCount = params.get("HostCount")
        self._Level = params.get("Level")
        self._From = params.get("From")
        self._Descript = params.get("Descript")
        self._PublishTimeWisteria = params.get("PublishTimeWisteria")
        self._NameWisteria = params.get("NameWisteria")
        self._DescriptWisteria = params.get("DescriptWisteria")
        self._StatusStr = params.get("StatusStr")
        self._CveId = params.get("CveId")
        self._CvssScore = params.get("CvssScore")
        self._Labels = params.get("Labels")
        self._FixSwitch = params.get("FixSwitch")
        self._TaskId = params.get("TaskId")
        self._IsSupportDefense = params.get("IsSupportDefense")
        self._DefenseAttackCount = params.get("DefenseAttackCount")
        self._FirstAppearTime = params.get("FirstAppearTime")
        self._VulCategory = params.get("VulCategory")
        self._AttackLevel = params.get("AttackLevel")
        self._FixNoNeedRestart = params.get("FixNoNeedRestart")
        self._Method = params.get("Method")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulLevelCountInfo(AbstractModel):
    """漏洞等级数量实体

    """

    def __init__(self):
        r"""
        :param _VulLevel: 漏洞等级
        :type VulLevel: int
        :param _VulCount: 漏洞数量
        :type VulCount: int
        """
        self._VulLevel = None
        self._VulCount = None

    @property
    def VulLevel(self):
        return self._VulLevel

    @VulLevel.setter
    def VulLevel(self, VulLevel):
        self._VulLevel = VulLevel

    @property
    def VulCount(self):
        return self._VulCount

    @VulCount.setter
    def VulCount(self, VulCount):
        self._VulCount = VulCount


    def _deserialize(self, params):
        self._VulLevel = params.get("VulLevel")
        self._VulCount = params.get("VulCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulLevelInfo(AbstractModel):
    """漏洞数量按等级分布统计结果实体

    """

    def __init__(self):
        r"""
        :param _VulLevel: // 危害等级：1-低危；2-中危；3-高危；4-严重
        :type VulLevel: int
        :param _Count: 数量
        :type Count: int
        """
        self._VulLevel = None
        self._Count = None

    @property
    def VulLevel(self):
        return self._VulLevel

    @VulLevel.setter
    def VulLevel(self, VulLevel):
        self._VulLevel = VulLevel

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        self._VulLevel = params.get("VulLevel")
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulOverview(AbstractModel):
    """漏洞概览

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总数
        :type TotalCount: int
        :param _TodayCount: 今日新增数量
        :type TodayCount: int
        """
        self._TotalCount = None
        self._TodayCount = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def TodayCount(self):
        return self._TodayCount

    @TodayCount.setter
    def TodayCount(self, TodayCount):
        self._TodayCount = TodayCount


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        self._TodayCount = params.get("TodayCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulStoreListInfo(AbstractModel):
    """漏洞仓库列表信息

    """

    def __init__(self):
        r"""
        :param _VulId: 漏洞ID
        :type VulId: int
        :param _Level: 漏洞级别
        :type Level: int
        :param _Name: 漏洞名称
        :type Name: str
        :param _CveId: cve编号
        :type CveId: str
        :param _VulCategory: 1: web-cms漏洞 2:应用漏洞  4: Linux软件漏洞 5: Windows系统漏洞 0= 应急漏洞
        :type VulCategory: int
        :param _PublishDate: 发布时间
        :type PublishDate: str
        :param _Method: 漏洞检测方法 0 - 版本比对, 1 - POC验证
        :type Method: int
        :param _AttackLevel: 漏洞攻击热度
        :type AttackLevel: int
        :param _FixSwitch: 漏洞是否支持自动修复
0-windows/linux均关闭; 1-windows/linux均打开; 2-仅linux; 3-仅windows
        :type FixSwitch: int
        :param _SupportDefense: 漏洞是否支持防御
0:不支持 1:支持
        :type SupportDefense: int
        """
        self._VulId = None
        self._Level = None
        self._Name = None
        self._CveId = None
        self._VulCategory = None
        self._PublishDate = None
        self._Method = None
        self._AttackLevel = None
        self._FixSwitch = None
        self._SupportDefense = None

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def CveId(self):
        return self._CveId

    @CveId.setter
    def CveId(self, CveId):
        self._CveId = CveId

    @property
    def VulCategory(self):
        return self._VulCategory

    @VulCategory.setter
    def VulCategory(self, VulCategory):
        self._VulCategory = VulCategory

    @property
    def PublishDate(self):
        return self._PublishDate

    @PublishDate.setter
    def PublishDate(self, PublishDate):
        self._PublishDate = PublishDate

    @property
    def Method(self):
        return self._Method

    @Method.setter
    def Method(self, Method):
        self._Method = Method

    @property
    def AttackLevel(self):
        return self._AttackLevel

    @AttackLevel.setter
    def AttackLevel(self, AttackLevel):
        self._AttackLevel = AttackLevel

    @property
    def FixSwitch(self):
        return self._FixSwitch

    @FixSwitch.setter
    def FixSwitch(self, FixSwitch):
        self._FixSwitch = FixSwitch

    @property
    def SupportDefense(self):
        return self._SupportDefense

    @SupportDefense.setter
    def SupportDefense(self, SupportDefense):
        self._SupportDefense = SupportDefense


    def _deserialize(self, params):
        self._VulId = params.get("VulId")
        self._Level = params.get("Level")
        self._Name = params.get("Name")
        self._CveId = params.get("CveId")
        self._VulCategory = params.get("VulCategory")
        self._PublishDate = params.get("PublishDate")
        self._Method = params.get("Method")
        self._AttackLevel = params.get("AttackLevel")
        self._FixSwitch = params.get("FixSwitch")
        self._SupportDefense = params.get("SupportDefense")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VulTopInfo(AbstractModel):
    """漏洞top统计实体

    """

    def __init__(self):
        r"""
        :param _VulName: 漏洞 名
注意：此字段可能返回 null，表示取不到有效值。
        :type VulName: str
        :param _VulLevel: 危害等级：1-低危；2-中危；3-高危；4-严重
注意：此字段可能返回 null，表示取不到有效值。
        :type VulLevel: int
        :param _VulCount: 漏洞数量
注意：此字段可能返回 null，表示取不到有效值。
        :type VulCount: int
        :param _VulId: 漏洞id
注意：此字段可能返回 null，表示取不到有效值。
        :type VulId: int
        """
        self._VulName = None
        self._VulLevel = None
        self._VulCount = None
        self._VulId = None

    @property
    def VulName(self):
        return self._VulName

    @VulName.setter
    def VulName(self, VulName):
        self._VulName = VulName

    @property
    def VulLevel(self):
        return self._VulLevel

    @VulLevel.setter
    def VulLevel(self, VulLevel):
        self._VulLevel = VulLevel

    @property
    def VulCount(self):
        return self._VulCount

    @VulCount.setter
    def VulCount(self, VulCount):
        self._VulCount = VulCount

    @property
    def VulId(self):
        return self._VulId

    @VulId.setter
    def VulId(self, VulId):
        self._VulId = VulId


    def _deserialize(self, params):
        self._VulName = params.get("VulName")
        self._VulLevel = params.get("VulLevel")
        self._VulCount = params.get("VulCount")
        self._VulId = params.get("VulId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WarningInfoObj(AbstractModel):
    """告警设置列表

    """

    def __init__(self):
        r"""
        :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: int
        :param _DisablePhoneWarning: 1: 关闭告警 0: 开启告警
        :type DisablePhoneWarning: int
        :param _BeginTime: 开始时间，格式: HH:mm
        :type BeginTime: str
        :param _EndTime: 结束时间，格式: HH:mm
        :type EndTime: str
        :param _TimeZone: 时区信息
        :type TimeZone: str
        :param _ControlBit: 漏洞等级控制位（对应DB的十进制存储）
        :type ControlBit: int
        :param _ControlBits: 漏洞等级控制位二进制，每一位对应页面漏洞等级的开启关闭：低中高（0:关闭；1：开启），例如：101 → 同时勾选低+高
        :type ControlBits: str
        :param _HostRange: 告警主机范围类型，0:全部主机，1:按所属项目选，2:按腾讯云标签选，3:按主机安全标签选，4:自选主机
注意：此字段可能返回 null，表示取不到有效值。
        :type HostRange: int
        :param _Count: 配置的告警范围主机个数，前端用此判断展示提示信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Count: int
        """
        self._Type = None
        self._DisablePhoneWarning = None
        self._BeginTime = None
        self._EndTime = None
        self._TimeZone = None
        self._ControlBit = None
        self._ControlBits = None
        self._HostRange = None
        self._Count = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def DisablePhoneWarning(self):
        return self._DisablePhoneWarning

    @DisablePhoneWarning.setter
    def DisablePhoneWarning(self, DisablePhoneWarning):
        self._DisablePhoneWarning = DisablePhoneWarning

    @property
    def BeginTime(self):
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def TimeZone(self):
        return self._TimeZone

    @TimeZone.setter
    def TimeZone(self, TimeZone):
        self._TimeZone = TimeZone

    @property
    def ControlBit(self):
        return self._ControlBit

    @ControlBit.setter
    def ControlBit(self, ControlBit):
        self._ControlBit = ControlBit

    @property
    def ControlBits(self):
        return self._ControlBits

    @ControlBits.setter
    def ControlBits(self, ControlBits):
        self._ControlBits = ControlBits

    @property
    def HostRange(self):
        return self._HostRange

    @HostRange.setter
    def HostRange(self, HostRange):
        self._HostRange = HostRange

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._DisablePhoneWarning = params.get("DisablePhoneWarning")
        self._BeginTime = params.get("BeginTime")
        self._EndTime = params.get("EndTime")
        self._TimeZone = params.get("TimeZone")
        self._ControlBit = params.get("ControlBit")
        self._ControlBits = params.get("ControlBits")
        self._HostRange = params.get("HostRange")
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WarningObject(AbstractModel):
    """告警更新或插入的参数

    """

    def __init__(self):
        r"""
        :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: int
        :param _DisablePhoneWarning: 1: 关闭告警 0: 开启告警
        :type DisablePhoneWarning: int
        :param _BeginTime: 开始时间，格式: HH:mm
        :type BeginTime: str
        :param _EndTime: 结束时间，格式: HH:mm
        :type EndTime: str
        :param _ControlBits: 漏洞等级控制位二进制，每一位对应页面漏洞等级的开启关闭：低中高（0:关闭；1：开启），例如：101 → 同时勾选低+高；01→(登录审计)疑似不告警，高危告警
        :type ControlBits: str
        :param _HostRange: 告警主机范围类型，0:全部主机，1:按所属项目选，2:按腾讯云标签选，3:按主机安全标签选，4:自选主机
        :type HostRange: int
        """
        self._Type = None
        self._DisablePhoneWarning = None
        self._BeginTime = None
        self._EndTime = None
        self._ControlBits = None
        self._HostRange = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def DisablePhoneWarning(self):
        return self._DisablePhoneWarning

    @DisablePhoneWarning.setter
    def DisablePhoneWarning(self, DisablePhoneWarning):
        self._DisablePhoneWarning = DisablePhoneWarning

    @property
    def BeginTime(self):
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def ControlBits(self):
        return self._ControlBits

    @ControlBits.setter
    def ControlBits(self, ControlBits):
        self._ControlBits = ControlBits

    @property
    def HostRange(self):
        return self._HostRange

    @HostRange.setter
    def HostRange(self, HostRange):
        self._HostRange = HostRange


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._DisablePhoneWarning = params.get("DisablePhoneWarning")
        self._BeginTime = params.get("BeginTime")
        self._EndTime = params.get("EndTime")
        self._ControlBits = params.get("ControlBits")
        self._HostRange = params.get("HostRange")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WebHookCustomField(AbstractModel):
    """自定义透传字段结构

    """

    def __init__(self):
        r"""
        :param _Key: key
注意：此字段可能返回 null，表示取不到有效值。
        :type Key: str
        :param _Value: value
注意：此字段可能返回 null，表示取不到有效值。
        :type Value: str
        """
        self._Key = None
        self._Value = None

    @property
    def Key(self):
        return self._Key

    @Key.setter
    def Key(self, Key):
        self._Key = Key

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value


    def _deserialize(self, params):
        self._Key = params.get("Key")
        self._Value = params.get("Value")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WebHookEventKv(AbstractModel):
    """企微机器人事件类型

    """

    def __init__(self):
        r"""
        :param _Type: 事件类型
        :type Type: int
        :param _ControlBit: 事件内容
        :type ControlBit: str
        """
        self._Type = None
        self._ControlBit = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def ControlBit(self):
        return self._ControlBit

    @ControlBit.setter
    def ControlBit(self, ControlBit):
        self._ControlBit = ControlBit


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._ControlBit = params.get("ControlBit")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WebHookHostLabel(AbstractModel):
    """企微机器人主机范围

    """

    def __init__(self):
        r"""
        :param _Type: 主机范围[1:所属项目|2:腾讯云标签|3:主机安全标签|4:自选]空数组为全部
        :type Type: int
        :param _Values: 主机项目或标签内容
        :type Values: list of str
        """
        self._Type = None
        self._Values = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Values(self):
        return self._Values

    @Values.setter
    def Values(self, Values):
        self._Values = Values


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Values = params.get("Values")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WebHookPolicy(AbstractModel):
    """策略

    """

    def __init__(self):
        r"""
        :param _Id: id
注意：此字段可能返回 null，表示取不到有效值。
        :type Id: int
        :param _Name: 策略名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _Events: 事件类型
注意：此字段可能返回 null，表示取不到有效值。
        :type Events: list of WebHookEventKv
        :param _HostLabels: 主机范围
注意：此字段可能返回 null，表示取不到有效值。
        :type HostLabels: list of WebHookHostLabel
        :param _Receivers: 接收人
注意：此字段可能返回 null，表示取不到有效值。
        :type Receivers: list of WebHookReceiver
        :param _Format: 格式 0text 1json
注意：此字段可能返回 null，表示取不到有效值。
        :type Format: int
        :param _CustomFields: 自定义透传字段
注意：此字段可能返回 null，表示取不到有效值。
        :type CustomFields: list of WebHookCustomField
        :param _IsDisabled: 是否启用[1:禁用|0:启用]
注意：此字段可能返回 null，表示取不到有效值。
        :type IsDisabled: int
        :param _Quuids: 主机列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Quuids: list of str
        :param _HostCount: 主机数目
注意：此字段可能返回 null，表示取不到有效值。
        :type HostCount: int
        """
        self._Id = None
        self._Name = None
        self._Events = None
        self._HostLabels = None
        self._Receivers = None
        self._Format = None
        self._CustomFields = None
        self._IsDisabled = None
        self._Quuids = None
        self._HostCount = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Events(self):
        return self._Events

    @Events.setter
    def Events(self, Events):
        self._Events = Events

    @property
    def HostLabels(self):
        return self._HostLabels

    @HostLabels.setter
    def HostLabels(self, HostLabels):
        self._HostLabels = HostLabels

    @property
    def Receivers(self):
        return self._Receivers

    @Receivers.setter
    def Receivers(self, Receivers):
        self._Receivers = Receivers

    @property
    def Format(self):
        return self._Format

    @Format.setter
    def Format(self, Format):
        self._Format = Format

    @property
    def CustomFields(self):
        return self._CustomFields

    @CustomFields.setter
    def CustomFields(self, CustomFields):
        self._CustomFields = CustomFields

    @property
    def IsDisabled(self):
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled

    @property
    def Quuids(self):
        return self._Quuids

    @Quuids.setter
    def Quuids(self, Quuids):
        self._Quuids = Quuids

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        if params.get("Events") is not None:
            self._Events = []
            for item in params.get("Events"):
                obj = WebHookEventKv()
                obj._deserialize(item)
                self._Events.append(obj)
        if params.get("HostLabels") is not None:
            self._HostLabels = []
            for item in params.get("HostLabels"):
                obj = WebHookHostLabel()
                obj._deserialize(item)
                self._HostLabels.append(obj)
        if params.get("Receivers") is not None:
            self._Receivers = []
            for item in params.get("Receivers"):
                obj = WebHookReceiver()
                obj._deserialize(item)
                self._Receivers.append(obj)
        self._Format = params.get("Format")
        if params.get("CustomFields") is not None:
            self._CustomFields = []
            for item in params.get("CustomFields"):
                obj = WebHookCustomField()
                obj._deserialize(item)
                self._CustomFields.append(obj)
        self._IsDisabled = params.get("IsDisabled")
        self._Quuids = params.get("Quuids")
        self._HostCount = params.get("HostCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WebHookReceiver(AbstractModel):
    """告警接收人

    """

    def __init__(self):
        r"""
        :param _Id: id
注意：此字段可能返回 null，表示取不到有效值。
        :type Id: int
        :param _Name: 接收人名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _Addr: webhook地址
注意：此字段可能返回 null，表示取不到有效值。
        :type Addr: str
        """
        self._Id = None
        self._Name = None
        self._Addr = None

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Addr(self):
        return self._Addr

    @Addr.setter
    def Addr(self, Addr):
        self._Addr = Addr


    def _deserialize(self, params):
        self._Id = params.get("Id")
        self._Name = params.get("Name")
        self._Addr = params.get("Addr")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WebHookReceiverUsage(AbstractModel):
    """告警接收人的关联策略使用信息

    """

    def __init__(self):
        r"""
        :param _ReceiverId: 接收人id
注意：此字段可能返回 null，表示取不到有效值。
        :type ReceiverId: int
        :param _ReceiverName: 接收人名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ReceiverName: str
        :param _PolicyName: 策略名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PolicyName: str
        """
        self._ReceiverId = None
        self._ReceiverName = None
        self._PolicyName = None

    @property
    def ReceiverId(self):
        return self._ReceiverId

    @ReceiverId.setter
    def ReceiverId(self, ReceiverId):
        self._ReceiverId = ReceiverId

    @property
    def ReceiverName(self):
        return self._ReceiverName

    @ReceiverName.setter
    def ReceiverName(self, ReceiverName):
        self._ReceiverName = ReceiverName

    @property
    def PolicyName(self):
        return self._PolicyName

    @PolicyName.setter
    def PolicyName(self, PolicyName):
        self._PolicyName = PolicyName


    def _deserialize(self, params):
        self._ReceiverId = params.get("ReceiverId")
        self._ReceiverName = params.get("ReceiverName")
        self._PolicyName = params.get("PolicyName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WebHookRuleDetail(AbstractModel):
    """企微机器人规则详情

    """

    def __init__(self):
        r"""
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _HookAddr: 机器人地址
        :type HookAddr: str
        :param _RuleItems: 事件类型
        :type RuleItems: list of WebHookEventKv
        :param _RuleId: 规则Id
        :type RuleId: int
        :param _RuleRemark: 备注信息
        :type RuleRemark: str
        :param _HostLabels: 主机范围
        :type HostLabels: list of WebHookHostLabel
        :param _HostIds: 主机Id列表
        :type HostIds: list of str
        :param _IsDisabled: 是否启用[1:禁用|0:启用]
        :type IsDisabled: int
        """
        self._RuleName = None
        self._HookAddr = None
        self._RuleItems = None
        self._RuleId = None
        self._RuleRemark = None
        self._HostLabels = None
        self._HostIds = None
        self._IsDisabled = None

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def HookAddr(self):
        return self._HookAddr

    @HookAddr.setter
    def HookAddr(self, HookAddr):
        self._HookAddr = HookAddr

    @property
    def RuleItems(self):
        return self._RuleItems

    @RuleItems.setter
    def RuleItems(self, RuleItems):
        self._RuleItems = RuleItems

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleRemark(self):
        return self._RuleRemark

    @RuleRemark.setter
    def RuleRemark(self, RuleRemark):
        self._RuleRemark = RuleRemark

    @property
    def HostLabels(self):
        return self._HostLabels

    @HostLabels.setter
    def HostLabels(self, HostLabels):
        self._HostLabels = HostLabels

    @property
    def HostIds(self):
        return self._HostIds

    @HostIds.setter
    def HostIds(self, HostIds):
        self._HostIds = HostIds

    @property
    def IsDisabled(self):
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled


    def _deserialize(self, params):
        self._RuleName = params.get("RuleName")
        self._HookAddr = params.get("HookAddr")
        if params.get("RuleItems") is not None:
            self._RuleItems = []
            for item in params.get("RuleItems"):
                obj = WebHookEventKv()
                obj._deserialize(item)
                self._RuleItems.append(obj)
        self._RuleId = params.get("RuleId")
        self._RuleRemark = params.get("RuleRemark")
        if params.get("HostLabels") is not None:
            self._HostLabels = []
            for item in params.get("HostLabels"):
                obj = WebHookHostLabel()
                obj._deserialize(item)
                self._HostLabels.append(obj)
        self._HostIds = params.get("HostIds")
        self._IsDisabled = params.get("IsDisabled")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WebHookRuleSummary(AbstractModel):
    """企微机器人规则概要

    """

    def __init__(self):
        r"""
        :param _RuleId: 规则Id
        :type RuleId: int
        :param _RuleName: 规则名称
        :type RuleName: str
        :param _HookAddr: 机器人地址
        :type HookAddr: str
        :param _RuleRemark: 备注信息
        :type RuleRemark: str
        :param _RuleItems: 事件类型
        :type RuleItems: list of WebHookEventKv
        :param _HostLabels: 主机范围
        :type HostLabels: list of WebHookHostLabel
        :param _IsDisabled: 是否启用[1:禁用|0:启用]
        :type IsDisabled: int
        :param _CreateTime: 创建时间
        :type CreateTime: str
        :param _UpdateTime: 更新时间
        :type UpdateTime: str
        :param _HostCount: 主机数目
        :type HostCount: int
        """
        self._RuleId = None
        self._RuleName = None
        self._HookAddr = None
        self._RuleRemark = None
        self._RuleItems = None
        self._HostLabels = None
        self._IsDisabled = None
        self._CreateTime = None
        self._UpdateTime = None
        self._HostCount = None

    @property
    def RuleId(self):
        return self._RuleId

    @RuleId.setter
    def RuleId(self, RuleId):
        self._RuleId = RuleId

    @property
    def RuleName(self):
        return self._RuleName

    @RuleName.setter
    def RuleName(self, RuleName):
        self._RuleName = RuleName

    @property
    def HookAddr(self):
        return self._HookAddr

    @HookAddr.setter
    def HookAddr(self, HookAddr):
        self._HookAddr = HookAddr

    @property
    def RuleRemark(self):
        return self._RuleRemark

    @RuleRemark.setter
    def RuleRemark(self, RuleRemark):
        self._RuleRemark = RuleRemark

    @property
    def RuleItems(self):
        return self._RuleItems

    @RuleItems.setter
    def RuleItems(self, RuleItems):
        self._RuleItems = RuleItems

    @property
    def HostLabels(self):
        return self._HostLabels

    @HostLabels.setter
    def HostLabels(self, HostLabels):
        self._HostLabels = HostLabels

    @property
    def IsDisabled(self):
        return self._IsDisabled

    @IsDisabled.setter
    def IsDisabled(self, IsDisabled):
        self._IsDisabled = IsDisabled

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def HostCount(self):
        return self._HostCount

    @HostCount.setter
    def HostCount(self, HostCount):
        self._HostCount = HostCount


    def _deserialize(self, params):
        self._RuleId = params.get("RuleId")
        self._RuleName = params.get("RuleName")
        self._HookAddr = params.get("HookAddr")
        self._RuleRemark = params.get("RuleRemark")
        if params.get("RuleItems") is not None:
            self._RuleItems = []
            for item in params.get("RuleItems"):
                obj = WebHookEventKv()
                obj._deserialize(item)
                self._RuleItems.append(obj)
        if params.get("HostLabels") is not None:
            self._HostLabels = []
            for item in params.get("HostLabels"):
                obj = WebHookHostLabel()
                obj._deserialize(item)
                self._HostLabels.append(obj)
        self._IsDisabled = params.get("IsDisabled")
        self._CreateTime = params.get("CreateTime")
        self._UpdateTime = params.get("UpdateTime")
        self._HostCount = params.get("HostCount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ZoneInfo(AbstractModel):
    """可用区信息

    """

    def __init__(self):
        r"""
        :param _ZoneName: 可用区名称
        :type ZoneName: str
        """
        self._ZoneName = None

    @property
    def ZoneName(self):
        return self._ZoneName

    @ZoneName.setter
    def ZoneName(self, ZoneName):
        self._ZoneName = ZoneName


    def _deserialize(self, params):
        self._ZoneName = params.get("ZoneName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        